templating/ui/components.go
2025-09-29 23:53:04 +02:00

68 lines
1.3 KiB
Go

package ui
import "github.com/gofiber/fiber/v2"
type InputField struct {
ID string
Legend string
Type string
Placeholder string
Name string
Value string
Endpoint string
Trigger string
Hint string
InputClass string
}
func NewInputField(id, name, legend, placeholder, endpoint string) InputField {
return InputField{
ID: id,
Legend: legend,
Type: "text",
Placeholder: placeholder,
Name: name,
Value: "",
Endpoint: endpoint,
Trigger: "blur",
Hint: "",
InputClass: "",
}
}
func (f InputField) ToMap() fiber.Map {
return fiber.Map{
"ID": f.ID,
"Legend": f.Legend,
"Type": f.Type,
"Placeholder": f.Placeholder,
"Name": f.Name,
"Value": f.Value,
"Endpoint": f.Endpoint,
"Trigger": f.Trigger,
"Hint": f.Hint,
"InputClass": f.InputClass,
}
}
func (f InputField) WithValue(value string) InputField {
f.Value = value
return f
}
func (f InputField) WithError(hint string) InputField {
f.Hint = hint
f.InputClass = "input-error text-error"
return f
}
func (f InputField) WithType(inputType string) InputField {
f.Type = inputType
return f
}
func (f InputField) WithTrigger(trigger string) InputField {
f.Trigger = trigger
return f
}