edit field utilities
fields =
{ name = "name" |> Conflict.init signature ""
}
form = fields |> Edit.form
name_ = Form.prop .name (\v m -> { m | name = v })
get_name = .name
blank = Validate.blank "blank"
(isStatic,options) =
{ error = "conflict"
, form = form
, last = http.get.response
, isConflict = http.put.isConflict
, isDifferent = response.isDifferentResponse
}
|> Edit.options
view a =
{ name = a
}
( isStatic
, Conflict.compose view
( options |> ( ( name_, get_name ) |> Conflict.single [ fields.name |> V.blank ] ) )
)
|> Edit.view
{ data = "data"
}
{-
{ isStatic = True
, state = HasError
, data =
{ data = "data"
}
, form =
{ name =
( "name"
, { field = model.name
, prop = name_
}
, { errors = [ "blank" ] -- model.name |> blank
, isModified = True
}
)
}
}
-}
edit/static state and fields
{ isStatic : Basics.Bool
, state : AggregateState
, data : data
, form : model
}
isStatic, state (HasError, HasModified) and form
fields HasError or HasModified or Same
form : fields -> Form response fields
construct form
{ name = "name" |> Conflict.init signature ""
}
|> Edit.form
options : Options response fields -> ( Basics.Bool, Getto.Field.Conflict.Options (Form response fields) response )
construct Conflict.Options
{ error = "conflict"
, form = form
, last = http.get.response
, isConflict = http.put.isConflict
, isDifferent = response.isDifferentResponse
}
|> Edit.options
-- ( isStatic, options )
view : data -> ( Basics.Bool, Getto.Field.Conflict.View model ) -> View data model
construct Conflict.Options
let
fields = form |> Edit.fields
in
( isStatic
, Conflict.compose view
( options |> ( ( name_, get_name ) |> Conflict.single [ fields.name |> V.blank ] ) )
)
|> Edit.view
fields : Form response fields -> fields
form fields
update : (fields -> fields) -> Form response fields -> Form response fields
update fields
edit : (response -> Form response fields -> Form response fields) -> Maybe response -> Form response fields -> Form response fields
to edit state
cancel : Form response fields -> Form response fields
to static state
commit : Form response fields -> Form response fields
to commit state
change : Form response fields -> Form response fields
to changed state
encode : (response -> Json.Encode.Value) -> (fields -> Json.Encode.Value) -> Form response fields -> Json.Encode.Value
encode fields
decode : Json.Decode.Decoder response -> (Json.Decode.Value -> Form response fields -> Form response fields) -> Json.Decode.Value -> Form response fields -> Form response fields
decode fields