edit field utilities
type Msg
= Set (Form.Prop Model attr String) String
init =
{ name = "field" |> Field.init signature attribute ""
}
update msg model =
case msg of
Set prop value -> model |> Form.set prop value
name_ = Form.prop .name (\v m -> { m | name = v })
view model =
let
form =
{ name = model.name |> Form.init name_
}
in
H.input
[ form.name.field |> Field.value |> A.value
, form.name.prop |> Set |> E.onInput
] []
{ field : Getto.Field.Model attr a
, prop : Prop form attr a
}
field and prop
{ gteq : Model form attr a
, lteq : Model form attr a
}
gteq Model and lteq Model
getter and setter
init : Prop form attr a -> Getto.Field.Model attr a -> Model form attr a
construct Model
form = field |> Form.init name_
prop : Getter form attr a -> Setter form attr a -> Prop form attr a
construct Prop
name_ = Form.prop .name (\v m -> { m | name = v })
at : Prop form attr a -> form -> Getto.Field.Model attr a
get field from model
form |> Form.at name_
set : Prop form attr a -> a -> form -> form
set value
form |> Form.set name_ "value"
setIf : Prop form attr a -> Maybe a -> form -> form
set value if value is present
form |> Form.setIf name_ (Just "value")
-- set "value"
form |> Form.setIf name_ Nothing
-- do nothing
toggle : Prop form attr (Set comparable) -> comparable -> form -> form
toggle set
form |> Form.toggle roles_ "admin"
setAttribute : Prop form attr value -> attr -> form -> form
set attribute
form |> Form.setAttribute name_ attr