@lucas-barake/effect-form-react 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/FormReact.js +200 -77
- package/dist/cjs/FormReact.js.map +1 -1
- package/dist/dts/FormReact.d.ts +109 -44
- package/dist/dts/FormReact.d.ts.map +1 -1
- package/dist/esm/FormReact.js +199 -77
- package/dist/esm/FormReact.js.map +1 -1
- package/package.json +2 -2
- package/src/FormReact.tsx +325 -126
package/dist/esm/FormReact.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { RegistryContext, useAtom, useAtomSet, useAtomSubscribe, useAtomValue } from "@effect-atom/atom-react";
|
|
2
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomSubscribe, useAtomValue } from "@effect-atom/atom-react";
|
|
3
|
+
import * as Atom from "@effect-atom/atom/Atom";
|
|
3
4
|
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form";
|
|
4
|
-
import { getNestedValue, isPathOrParentDirty
|
|
5
|
+
import { getNestedValue, isPathOrParentDirty } from "@lucas-barake/effect-form/Path";
|
|
5
6
|
import * as Cause from "effect/Cause";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
6
8
|
import * as Option from "effect/Option";
|
|
7
9
|
import * as ParseResult from "effect/ParseResult";
|
|
10
|
+
import * as Predicate from "effect/Predicate";
|
|
8
11
|
import * as AST from "effect/SchemaAST";
|
|
9
12
|
import * as React from "react";
|
|
10
13
|
import { createContext, useContext } from "react";
|
|
11
14
|
import { useDebounced } from "./internal/use-debounced.js";
|
|
15
|
+
const isFieldBundle = x => Predicate.isTagged(x, "FieldBundle");
|
|
12
16
|
const ArrayItemContext = /*#__PURE__*/createContext(null);
|
|
13
17
|
const AutoSubmitContext = /*#__PURE__*/createContext(null);
|
|
14
|
-
const makeFieldComponent = (fieldKey, fieldDef,
|
|
18
|
+
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
15
19
|
const FieldComponent = extraProps => {
|
|
16
20
|
const arrayCtx = useContext(ArrayItemContext);
|
|
17
21
|
const autoSubmitOnBlur = useContext(AutoSubmitContext);
|
|
18
22
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
19
23
|
const {
|
|
20
|
-
|
|
24
|
+
errorAtom,
|
|
21
25
|
touchedAtom,
|
|
22
26
|
valueAtom
|
|
23
27
|
} = React.useMemo(() => getOrCreateFieldAtoms(fieldPath), [fieldPath]);
|
|
24
28
|
const [value, setValue] = useAtom(valueAtom);
|
|
25
29
|
const [isTouched, setTouched] = useAtom(touchedAtom);
|
|
26
|
-
const
|
|
27
|
-
const setCrossFieldErrors = useAtomSet(crossFieldErrorsAtom);
|
|
30
|
+
const storedError = useAtomValue(errorAtom);
|
|
28
31
|
const submitCount = useAtomValue(submitCountAtom);
|
|
29
32
|
const validationAtom = React.useMemo(() => getOrCreateValidationAtom(fieldPath, fieldDef.schema), [fieldPath]);
|
|
30
33
|
const validationResult = useAtomValue(validationAtom);
|
|
@@ -37,12 +40,12 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
37
40
|
return;
|
|
38
41
|
}
|
|
39
42
|
prevValueRef.current = value;
|
|
40
|
-
const shouldValidate = parsedMode.validation === "onChange" || parsedMode.validation === "onBlur" && isTouched;
|
|
43
|
+
const shouldValidate = parsedMode.validation === "onChange" || parsedMode.validation === "onBlur" && isTouched || parsedMode.validation === "onSubmit" && submitCount > 0;
|
|
41
44
|
if (shouldValidate) {
|
|
42
45
|
validate(value);
|
|
43
46
|
}
|
|
44
|
-
}, [value, isTouched, validate]);
|
|
45
|
-
const
|
|
47
|
+
}, [value, isTouched, submitCount, validate]);
|
|
48
|
+
const livePerFieldError = React.useMemo(() => {
|
|
46
49
|
if (validationResult._tag === "Failure") {
|
|
47
50
|
const parseError = Cause.failureOption(validationResult.cause);
|
|
48
51
|
if (Option.isSome(parseError) && ParseResult.isParseError(parseError.value)) {
|
|
@@ -51,22 +54,25 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
51
54
|
}
|
|
52
55
|
return Option.none();
|
|
53
56
|
}, [validationResult]);
|
|
54
|
-
const
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
const isValidating = validationResult.waiting;
|
|
58
|
+
const validationError = React.useMemo(() => {
|
|
59
|
+
if (Option.isSome(livePerFieldError)) {
|
|
60
|
+
return livePerFieldError;
|
|
61
|
+
}
|
|
62
|
+
if (Option.isSome(storedError)) {
|
|
63
|
+
// Hide field-sourced errors when validation passes or is pending (async gap).
|
|
64
|
+
// Refinement errors persist until re-submit - they can't be cleared by typing.
|
|
65
|
+
const shouldHideStoredError = storedError.value.source === "field" && (validationResult._tag === "Success" || isValidating);
|
|
66
|
+
if (shouldHideStoredError) {
|
|
67
|
+
return Option.none();
|
|
63
68
|
}
|
|
64
|
-
return
|
|
65
|
-
});
|
|
66
|
-
if (parsedMode.validation === "onChange") {
|
|
67
|
-
validate(newValue);
|
|
69
|
+
return Option.some(storedError.value.message);
|
|
68
70
|
}
|
|
69
|
-
|
|
71
|
+
return Option.none();
|
|
72
|
+
}, [livePerFieldError, storedError, validationResult, isValidating]);
|
|
73
|
+
const onChange = React.useCallback(newValue => {
|
|
74
|
+
setValue(newValue);
|
|
75
|
+
}, [setValue]);
|
|
70
76
|
const onBlur = React.useCallback(() => {
|
|
71
77
|
setTouched(true);
|
|
72
78
|
if (parsedMode.validation === "onBlur") {
|
|
@@ -76,8 +82,7 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
76
82
|
}, [setTouched, validate, value, autoSubmitOnBlur]);
|
|
77
83
|
const dirtyFields = useAtomValue(dirtyFieldsAtom);
|
|
78
84
|
const isDirty = React.useMemo(() => isPathOrParentDirty(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
79
|
-
const
|
|
80
|
-
const shouldShowError = isTouched || submitCount > 0;
|
|
85
|
+
const shouldShowError = parsedMode.validation === "onChange" ? isDirty || submitCount > 0 : parsedMode.validation === "onBlur" ? isTouched || submitCount > 0 : submitCount > 0;
|
|
81
86
|
const fieldState = React.useMemo(() => ({
|
|
82
87
|
value,
|
|
83
88
|
onChange,
|
|
@@ -94,7 +99,7 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
94
99
|
};
|
|
95
100
|
return React.memo(FieldComponent);
|
|
96
101
|
};
|
|
97
|
-
const makeArrayFieldComponent = (fieldKey, def, stateAtom,
|
|
102
|
+
const makeArrayFieldComponent = (fieldKey, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
98
103
|
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast);
|
|
99
104
|
const ArrayWrapper = ({
|
|
100
105
|
children
|
|
@@ -172,14 +177,13 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom,
|
|
|
172
177
|
};
|
|
173
178
|
const itemDef = Field.makeField(itemKey, itemSchema);
|
|
174
179
|
const itemComponent = componentMap[itemKey];
|
|
175
|
-
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef,
|
|
180
|
+
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, itemComponent);
|
|
176
181
|
}
|
|
177
182
|
}
|
|
178
183
|
const properties = {
|
|
179
184
|
Item: ItemWrapper,
|
|
180
185
|
...itemFieldComponents
|
|
181
186
|
};
|
|
182
|
-
// Proxy enables <Form.items.Item> and <Form.items.name> syntax
|
|
183
187
|
return new Proxy(ArrayWrapper, {
|
|
184
188
|
get(target, prop) {
|
|
185
189
|
if (prop in properties) {
|
|
@@ -189,48 +193,45 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom,
|
|
|
189
193
|
}
|
|
190
194
|
});
|
|
191
195
|
};
|
|
192
|
-
const makeFieldComponents = (fields, stateAtom,
|
|
196
|
+
const makeFieldComponents = (fields, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
193
197
|
const components = {};
|
|
194
198
|
for (const [key, def] of Object.entries(fields)) {
|
|
195
199
|
if (Field.isArrayFieldDef(def)) {
|
|
196
200
|
const arrayComponentMap = componentMap[key];
|
|
197
|
-
components[key] = makeArrayFieldComponent(key, def, stateAtom,
|
|
201
|
+
components[key] = makeArrayFieldComponent(key, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, arrayComponentMap);
|
|
198
202
|
} else if (Field.isFieldDef(def)) {
|
|
199
|
-
const
|
|
200
|
-
|
|
203
|
+
const componentOrBundle = componentMap[key];
|
|
204
|
+
const fieldComponent = isFieldBundle(componentOrBundle) ? componentOrBundle.component : componentOrBundle;
|
|
205
|
+
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, fieldComponent);
|
|
201
206
|
}
|
|
202
207
|
}
|
|
203
208
|
return components;
|
|
204
209
|
};
|
|
205
210
|
/**
|
|
206
|
-
*
|
|
211
|
+
* Creates a React form from a FormBuilder.
|
|
207
212
|
*
|
|
208
213
|
* @example
|
|
209
214
|
* ```tsx
|
|
210
215
|
* import { FormBuilder } from "@lucas-barake/effect-form"
|
|
211
216
|
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
212
217
|
* import { useAtomValue, useAtomSet } from "@effect-atom/atom-react"
|
|
213
|
-
* import * as Atom from "@effect-atom/atom/Atom"
|
|
214
218
|
* import * as Schema from "effect/Schema"
|
|
215
|
-
* import * as Layer from "effect/Layer"
|
|
216
|
-
*
|
|
217
|
-
* const runtime = Atom.runtime(Layer.empty)
|
|
218
219
|
*
|
|
219
|
-
* const
|
|
220
|
+
* const loginFormBuilder = FormBuilder.empty
|
|
220
221
|
* .addField("email", Schema.String)
|
|
221
222
|
* .addField("password", Schema.String)
|
|
222
223
|
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
224
|
+
* // Runtime is optional for forms without service requirements
|
|
225
|
+
* const loginForm = FormReact.make(loginFormBuilder, {
|
|
225
226
|
* fields: { email: TextInput, password: PasswordInput },
|
|
226
|
-
* onSubmit: (
|
|
227
|
+
* onSubmit: (_, { decoded }) => Effect.log(`Login: ${decoded.email}`),
|
|
227
228
|
* })
|
|
228
229
|
*
|
|
229
230
|
* // Subscribe to atoms anywhere in the tree
|
|
230
231
|
* function SubmitButton() {
|
|
231
|
-
* const isDirty = useAtomValue(
|
|
232
|
-
* const submit = useAtomValue(
|
|
233
|
-
* const callSubmit = useAtomSet(
|
|
232
|
+
* const isDirty = useAtomValue(loginForm.isDirty)
|
|
233
|
+
* const submit = useAtomValue(loginForm.submit)
|
|
234
|
+
* const callSubmit = useAtomSet(loginForm.submit)
|
|
234
235
|
* return (
|
|
235
236
|
* <button onClick={() => callSubmit()} disabled={!isDirty || submit.waiting}>
|
|
236
237
|
* {submit.waiting ? "Validating..." : "Login"}
|
|
@@ -238,26 +239,27 @@ const makeFieldComponents = (fields, stateAtom, crossFieldErrorsAtom, submitCoun
|
|
|
238
239
|
* )
|
|
239
240
|
* }
|
|
240
241
|
*
|
|
241
|
-
* function
|
|
242
|
+
* function LoginPage() {
|
|
242
243
|
* return (
|
|
243
|
-
* <
|
|
244
|
-
* <
|
|
245
|
-
* <
|
|
244
|
+
* <loginForm.Initialize defaultValues={{ email: "", password: "" }}>
|
|
245
|
+
* <loginForm.email />
|
|
246
|
+
* <loginForm.password />
|
|
246
247
|
* <SubmitButton />
|
|
247
|
-
* </
|
|
248
|
+
* </loginForm.Initialize>
|
|
248
249
|
* )
|
|
249
250
|
* }
|
|
250
251
|
* ```
|
|
251
252
|
*
|
|
252
253
|
* @category Constructors
|
|
253
254
|
*/
|
|
254
|
-
export const
|
|
255
|
+
export const make = (self, options) => {
|
|
255
256
|
const {
|
|
256
257
|
fields: components,
|
|
257
258
|
mode,
|
|
258
259
|
onSubmit,
|
|
259
|
-
runtime
|
|
260
|
+
runtime: providedRuntime
|
|
260
261
|
} = options;
|
|
262
|
+
const runtime = providedRuntime ?? Atom.runtime(Layer.empty);
|
|
261
263
|
const parsedMode = Mode.parse(mode);
|
|
262
264
|
const {
|
|
263
265
|
fields
|
|
@@ -269,18 +271,21 @@ export const build = (self, options) => {
|
|
|
269
271
|
});
|
|
270
272
|
const {
|
|
271
273
|
combinedSchema,
|
|
272
|
-
crossFieldErrorsAtom,
|
|
273
274
|
dirtyFieldsAtom,
|
|
275
|
+
errorsAtom,
|
|
274
276
|
fieldRefs,
|
|
275
277
|
getFieldAtom,
|
|
276
278
|
getOrCreateFieldAtoms,
|
|
277
279
|
getOrCreateValidationAtom,
|
|
278
280
|
hasChangedSinceSubmitAtom,
|
|
279
281
|
isDirtyAtom,
|
|
282
|
+
keepAliveActiveAtom,
|
|
280
283
|
lastSubmittedValuesAtom,
|
|
284
|
+
mountAtom,
|
|
281
285
|
operations,
|
|
282
286
|
resetAtom,
|
|
283
287
|
revertToLastSubmitAtom,
|
|
288
|
+
rootErrorAtom,
|
|
284
289
|
setValue,
|
|
285
290
|
setValuesAtom,
|
|
286
291
|
stateAtom,
|
|
@@ -298,49 +303,102 @@ export const build = (self, options) => {
|
|
|
298
303
|
const callSubmit = useAtomSet(submitAtom);
|
|
299
304
|
const isInitializedRef = React.useRef(false);
|
|
300
305
|
React.useEffect(() => {
|
|
301
|
-
|
|
306
|
+
const isKeptAlive = registry.get(keepAliveActiveAtom);
|
|
307
|
+
const currentState = registry.get(stateAtom);
|
|
308
|
+
if (!isKeptAlive) {
|
|
309
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
310
|
+
} else if (Option.isNone(currentState)) {
|
|
311
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
312
|
+
}
|
|
302
313
|
isInitializedRef.current = true;
|
|
303
314
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- mount-only
|
|
304
|
-
}, []);
|
|
315
|
+
}, [registry]);
|
|
305
316
|
const debouncedAutoSubmit = useDebounced(() => {
|
|
306
317
|
const stateOption = registry.get(stateAtom);
|
|
307
318
|
if (Option.isNone(stateOption)) return;
|
|
308
319
|
callSubmit(undefined);
|
|
309
320
|
}, parsedMode.autoSubmit && parsedMode.validation === "onChange" ? parsedMode.debounce : null);
|
|
321
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
322
|
+
// Auto-Submit Coordination
|
|
323
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
324
|
+
// Two-subscription model to avoid infinite loop:
|
|
325
|
+
// - Stream 1 reacts to value changes (reference equality), triggers or queues submit
|
|
326
|
+
// - Stream 2 reacts to submit completion, flushes queued changes
|
|
327
|
+
//
|
|
328
|
+
// Single subscription to stateAtom cannot distinguish value changes from submit
|
|
329
|
+
// metadata updates (submitCount, lastSubmittedValues).
|
|
330
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
331
|
+
const lastValuesRef = React.useRef(null);
|
|
332
|
+
const pendingChangesRef = React.useRef(false);
|
|
333
|
+
const wasSubmittingRef = React.useRef(false);
|
|
310
334
|
useAtomSubscribe(stateAtom, React.useCallback(() => {
|
|
311
335
|
if (!isInitializedRef.current) return;
|
|
312
|
-
|
|
336
|
+
const state = registry.get(stateAtom);
|
|
337
|
+
if (Option.isNone(state)) return;
|
|
338
|
+
const currentValues = state.value.values;
|
|
339
|
+
// Reference equality filters out submit metadata changes.
|
|
340
|
+
// Works because setFieldValue creates new values object (immutable update).
|
|
341
|
+
if (currentValues === lastValuesRef.current) return;
|
|
342
|
+
lastValuesRef.current = currentValues;
|
|
343
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
344
|
+
const submitResult = registry.get(submitAtom);
|
|
345
|
+
if (submitResult.waiting) {
|
|
346
|
+
pendingChangesRef.current = true;
|
|
347
|
+
} else {
|
|
313
348
|
debouncedAutoSubmit();
|
|
314
349
|
}
|
|
350
|
+
}, [debouncedAutoSubmit, registry]), {
|
|
351
|
+
immediate: false
|
|
352
|
+
});
|
|
353
|
+
useAtomSubscribe(submitAtom, React.useCallback(result => {
|
|
354
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
355
|
+
const isSubmitting = result.waiting;
|
|
356
|
+
const wasSubmitting = wasSubmittingRef.current;
|
|
357
|
+
wasSubmittingRef.current = isSubmitting;
|
|
358
|
+
// Flush queued changes when submit completes
|
|
359
|
+
if (wasSubmitting && !isSubmitting) {
|
|
360
|
+
if (pendingChangesRef.current) {
|
|
361
|
+
pendingChangesRef.current = false;
|
|
362
|
+
debouncedAutoSubmit();
|
|
363
|
+
}
|
|
364
|
+
}
|
|
315
365
|
}, [debouncedAutoSubmit]), {
|
|
316
366
|
immediate: false
|
|
317
367
|
});
|
|
318
368
|
const onBlurAutoSubmit = React.useCallback(() => {
|
|
319
|
-
if (parsedMode.autoSubmit
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
369
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onBlur") return;
|
|
370
|
+
const stateOption = registry.get(stateAtom);
|
|
371
|
+
if (Option.isNone(stateOption)) return;
|
|
372
|
+
const {
|
|
373
|
+
lastSubmittedValues,
|
|
374
|
+
values
|
|
375
|
+
} = stateOption.value;
|
|
376
|
+
if (Option.isSome(lastSubmittedValues) && values === lastSubmittedValues.value.encoded) return;
|
|
377
|
+
callSubmit(undefined);
|
|
324
378
|
}, [registry, callSubmit]);
|
|
325
379
|
if (Option.isNone(state)) return null;
|
|
326
380
|
return _jsx(AutoSubmitContext.Provider, {
|
|
327
381
|
value: onBlurAutoSubmit,
|
|
328
|
-
children:
|
|
329
|
-
onSubmit: e => {
|
|
330
|
-
e.preventDefault();
|
|
331
|
-
e.stopPropagation();
|
|
332
|
-
},
|
|
333
|
-
children: children
|
|
334
|
-
})
|
|
382
|
+
children: children
|
|
335
383
|
});
|
|
336
384
|
};
|
|
337
|
-
const fieldComponents = makeFieldComponents(fields, stateAtom,
|
|
385
|
+
const fieldComponents = makeFieldComponents(fields, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, components);
|
|
386
|
+
const KeepAlive = () => {
|
|
387
|
+
const setKeepAliveActive = useAtomSet(keepAliveActiveAtom);
|
|
388
|
+
React.useLayoutEffect(() => {
|
|
389
|
+
setKeepAliveActive(true);
|
|
390
|
+
return () => setKeepAliveActive(false);
|
|
391
|
+
}, [setKeepAliveActive]);
|
|
392
|
+
useAtomMount(mountAtom);
|
|
393
|
+
return null;
|
|
394
|
+
};
|
|
338
395
|
return {
|
|
339
396
|
values: valuesAtom,
|
|
340
397
|
isDirty: isDirtyAtom,
|
|
341
398
|
hasChangedSinceSubmit: hasChangedSinceSubmitAtom,
|
|
342
399
|
lastSubmittedValues: lastSubmittedValuesAtom,
|
|
343
400
|
submitCount: submitCountAtom,
|
|
401
|
+
rootError: rootErrorAtom,
|
|
344
402
|
schema: combinedSchema,
|
|
345
403
|
fields: fieldRefs,
|
|
346
404
|
Initialize: InitializeComponent,
|
|
@@ -350,30 +408,26 @@ export const build = (self, options) => {
|
|
|
350
408
|
setValues: setValuesAtom,
|
|
351
409
|
setValue,
|
|
352
410
|
getFieldAtom,
|
|
411
|
+
mount: mountAtom,
|
|
412
|
+
KeepAlive,
|
|
353
413
|
...fieldComponents
|
|
354
414
|
};
|
|
355
415
|
};
|
|
356
416
|
/**
|
|
357
|
-
* A curried helper that infers the schema type from a field definition
|
|
417
|
+
* A curried helper that infers the schema type from a field definition.
|
|
358
418
|
* Provides ergonomic type inference when defining field components.
|
|
359
419
|
*
|
|
360
420
|
* @example
|
|
361
421
|
* ```tsx
|
|
362
|
-
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
422
|
+
* import { Field, FormReact } from "@lucas-barake/effect-form-react"
|
|
363
423
|
*
|
|
364
|
-
* // Using a FieldRef from the built form
|
|
365
|
-
* const TextInput = FormReact.forField(form.fields.email)(({ field }) => (
|
|
366
|
-
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
367
|
-
* ))
|
|
368
|
-
*
|
|
369
|
-
* // Using a FieldDef (for reusable fields)
|
|
370
424
|
* const EmailField = Field.makeField("email", Schema.String)
|
|
371
425
|
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
372
426
|
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
373
427
|
* ))
|
|
374
428
|
*
|
|
375
429
|
* // With extra props - just specify the props type
|
|
376
|
-
* const TextInput = FormReact.forField(
|
|
430
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
377
431
|
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
378
432
|
* ))
|
|
379
433
|
* ```
|
|
@@ -381,4 +435,72 @@ export const build = (self, options) => {
|
|
|
381
435
|
* @category Constructors
|
|
382
436
|
*/
|
|
383
437
|
export const forField = _field => component => component;
|
|
438
|
+
/**
|
|
439
|
+
* Creates a bundled field definition + component for reusable form fields.
|
|
440
|
+
* Reduces boilerplate when you need both a field and its component together.
|
|
441
|
+
*
|
|
442
|
+
* Uses a curried API for better type inference - the schema type is captured
|
|
443
|
+
* first, so you only need to specify the extra props type (if any).
|
|
444
|
+
*
|
|
445
|
+
* @example
|
|
446
|
+
* ```tsx
|
|
447
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
448
|
+
* import * as Schema from "effect/Schema"
|
|
449
|
+
*
|
|
450
|
+
* // Define field + component in one place (no extra props)
|
|
451
|
+
* const NameInput = FormReact.makeField({
|
|
452
|
+
* key: "name",
|
|
453
|
+
* schema: Schema.String.pipe(Schema.nonEmptyString()),
|
|
454
|
+
* })(({ field }) => (
|
|
455
|
+
* <input
|
|
456
|
+
* value={field.value}
|
|
457
|
+
* onChange={(e) => field.onChange(e.target.value)}
|
|
458
|
+
* onBlur={field.onBlur}
|
|
459
|
+
* />
|
|
460
|
+
* ))
|
|
461
|
+
*
|
|
462
|
+
* // With extra props - specify only the props type
|
|
463
|
+
* const EmailInput = FormReact.makeField({
|
|
464
|
+
* key: "email",
|
|
465
|
+
* schema: Schema.String,
|
|
466
|
+
* })<{ placeholder: string }>(({ field, props }) => (
|
|
467
|
+
* <input
|
|
468
|
+
* value={field.value}
|
|
469
|
+
* onChange={(e) => field.onChange(e.target.value)}
|
|
470
|
+
* placeholder={props.placeholder}
|
|
471
|
+
* />
|
|
472
|
+
* ))
|
|
473
|
+
*
|
|
474
|
+
* // Use in form builder
|
|
475
|
+
* const formBuilder = FormBuilder.empty.addField(NameInput.field)
|
|
476
|
+
*
|
|
477
|
+
* // Use in make()
|
|
478
|
+
* const form = FormReact.make(formBuilder, {
|
|
479
|
+
* runtime,
|
|
480
|
+
* fields: { name: NameInput },
|
|
481
|
+
* onSubmit: (_, { decoded }) => Effect.log(decoded.name),
|
|
482
|
+
* })
|
|
483
|
+
* ```
|
|
484
|
+
*
|
|
485
|
+
* @category Constructors
|
|
486
|
+
*/
|
|
487
|
+
export const makeField = options => {
|
|
488
|
+
const field = Field.makeField(options.key, options.schema);
|
|
489
|
+
return component => {
|
|
490
|
+
if (!component.displayName) {
|
|
491
|
+
const displayName = `${options.key.charAt(0).toUpperCase()}${options.key.slice(1)}Field`;
|
|
492
|
+
try {
|
|
493
|
+
;
|
|
494
|
+
component.displayName = displayName;
|
|
495
|
+
} catch {
|
|
496
|
+
// Ignore - some environments freeze function properties
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
return {
|
|
500
|
+
_tag: "FieldBundle",
|
|
501
|
+
field,
|
|
502
|
+
component
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
};
|
|
384
506
|
//# sourceMappingURL=FormReact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomSet","useAtomSubscribe","useAtomValue","Field","FormAtoms","Mode","Validation","getNestedValue","isPathOrParentDirty","isPathUnderRoot","Cause","Option","ParseResult","AST","React","createContext","useContext","useDebounced","ArrayItemContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","crossFieldErrorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","autoSubmitOnBlur","fieldPath","parentPath","crossFieldErrorAtom","touchedAtom","valueAtom","useMemo","value","setValue","isTouched","setTouched","crossFieldError","setCrossFieldErrors","submitCount","validationAtom","schema","validationResult","validateImmediate","shouldDebounceValidation","validation","debounce","autoSubmit","validate","prevValueRef","useRef","useEffect","current","shouldValidate","perFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","extractFirstError","none","validationError","onChange","useCallback","newValue","prev","next","Map","errorPath","message","set","size","onBlur","dirtyFields","isDirty","isValidating","waiting","shouldShowError","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","isNone","some","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","makeField","itemComponent","properties","Item","Proxy","get","target","Reflect","makeFieldComponents","fields","components","key","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","build","self","options","mode","onSubmit","runtime","parse","formAtoms","make","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","resetAtom","revertToLastSubmitAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","state","callSubmit","isInitializedRef","createInitialState","debouncedAutoSubmit","stateOption","undefined","immediate","onBlurAutoSubmit","e","preventDefault","stopPropagation","fieldComponents","hasChangedSinceSubmit","lastSubmittedValues","Initialize","submit","reset","revertToLastSubmit","setValues","forField","_field","component"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomSubscribe","useAtomValue","Atom","Field","FormAtoms","Mode","Validation","getNestedValue","isPathOrParentDirty","Cause","Layer","Option","ParseResult","Predicate","AST","React","createContext","useContext","useDebounced","isFieldBundle","x","isTagged","ArrayItemContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","touchedAtom","valueAtom","useMemo","value","setValue","isTouched","setTouched","storedError","submitCount","validationAtom","schema","validationResult","validateImmediate","shouldDebounceValidation","validation","debounce","autoSubmit","validate","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","dirtyFields","isDirty","shouldShowError","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","makeField","itemComponent","properties","Item","Proxy","get","target","Reflect","makeFieldComponents","fields","components","key","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","componentOrBundle","fieldComponent","component","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","parse","formAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount","forField","_field","displayName","charAt","toUpperCase","slice"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucas-barake/effect-form-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "React bindings for @lucas-barake/effect-form",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"author": "Lucas Barake",
|
|
12
12
|
"homepage": "https://github.com/lucas-barake/effect-form",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@lucas-barake/effect-form": "^0.
|
|
14
|
+
"@lucas-barake/effect-form": "^0.12.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@effect-atom/atom": "^0.4.8",
|