package component
import (
"errors"
"forge.cadoles.com/wpetit/clearcase/internal/http/form"
)
templ FormField(form *form.Form, id string, name string, label string) {
{{ field := form.Field(name) }}
if field != nil {
{{ err, hasErr := form.Error(name) }}
if hasErr {
{ err.Message() }
}
}
}
templ FormTextarea(form *form.Form, id string, name string, label string) {
{{ field := form.Field(name) }}
if field != nil {
{{ err, hasErr := form.Error(name) }}
{{ value, hasValue := field.Get("value") }}
if hasErr {
{ err.Message() }
}
}
}
templ FormSelect(form *form.Form, id string, name string, label string, kvOptions ...string) {
{{ field := form.Field(name) }}
if field != nil {
{{ err, hasErr := form.Error(name) }}
if hasErr {
{ err.Message() }
}
}
}
type SelectOption struct {
Value string
Label string
}
func keyValuesToOptions(kv []string) []SelectOption {
if len(kv)%2 != 0 {
panic(errors.New("expected pair number of key/values"))
}
options := make([]SelectOption, 0)
var key string
for idx := range kv {
if idx%2 == 0 {
key = kv[idx]
continue
}
options = append(options, SelectOption{
Value: kv[idx],
Label: key,
})
}
return options
}