Skip to content

Commit 131bf5a

Browse files
committed
More generic useForm' (using FormBuilder')
1 parent ba1c0ec commit 131bf5a

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/Lumi/Components/Form.purs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -248,23 +248,25 @@ useForm
248248
, validated :: Maybe result
249249
, form :: JSX
250250
}
251-
useForm editor props = React.do
251+
useForm editor props = Hooks.do
252252
let
253253
renderer = defaultRenderForm
254254
{ readonly: props.readonly
255255
, inlineTable: props.inlineTable
256256
, forceTopLabels: props.forceTopLabels
257257
}
258258

259-
useForm' editor props renderer
259+
f <- useForm' editor props
260+
pure f { form = renderer f.form }
260261

261262

262263
-- | Like `useForm`, but allows an alternative render implementation
263264
-- | to be provided as an additional argument.
264265
useForm'
265-
:: forall props unvalidated result
266+
:: forall ui props unvalidated result
266267
. Mapping ModifyValidated unvalidated unvalidated
267-
=> FormBuilder
268+
=> FormBuilder'
269+
ui
268270
{ initialState :: unvalidated
269271
| props
270272
}
@@ -273,29 +275,28 @@ useForm'
273275
-> { initialState :: unvalidated
274276
| props
275277
}
276-
-> (Forest -> JSX)
277278
-> Hooks.Hook (Hooks.UseState unvalidated)
278279
{ formData :: unvalidated
279280
, setFormData :: (unvalidated -> unvalidated) -> Effect Unit
280281
, setModified :: Effect Unit
281282
, reset :: Effect Unit
282283
, validated :: Maybe result
283-
, form :: JSX
284+
, form :: ui
284285
}
285-
useForm' editor props renderer = Hooks.do
286+
useForm' editor props = Hooks.do
286287
formData /\ setFormData <- Hooks.useState props.initialState
287288

288289
let
289290
{ edit, validate: validated } = un FormBuilder editor props formData
290-
forest = Array.mapMaybe pruneTree $ edit setFormData
291+
ui = edit setFormData
291292

292293
pure
293294
{ formData
294295
, setFormData
295296
, setModified: setFormData setModified
296297
, reset: setFormData \_ -> props.initialState
297298
, validated
298-
, form: renderer forest
299+
, form: ui
299300
}
300301

301302

0 commit comments

Comments
 (0)