@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/cjs/FormReact.js
CHANGED
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.makeField = exports.make = exports.forField = void 0;
|
|
7
7
|
var _jsxRuntime = /*#__PURE__*/require("react/jsx-runtime");
|
|
8
8
|
var _atomReact = /*#__PURE__*/require("@effect-atom/atom-react");
|
|
9
|
+
var Atom = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-atom/atom/Atom"));
|
|
9
10
|
var _effectForm = /*#__PURE__*/require("@lucas-barake/effect-form");
|
|
10
11
|
var _Path = /*#__PURE__*/require("@lucas-barake/effect-form/Path");
|
|
11
12
|
var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
|
|
13
|
+
var Layer = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Layer"));
|
|
12
14
|
var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
|
|
13
15
|
var ParseResult = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ParseResult"));
|
|
16
|
+
var Predicate = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Predicate"));
|
|
14
17
|
var AST = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/SchemaAST"));
|
|
15
18
|
var _react = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("react"));
|
|
16
19
|
var React = _react;
|
|
@@ -35,22 +38,22 @@ function _interopRequireWildcard(e, t) {
|
|
|
35
38
|
return f;
|
|
36
39
|
})(e, t);
|
|
37
40
|
}
|
|
41
|
+
const isFieldBundle = x => Predicate.isTagged(x, "FieldBundle");
|
|
38
42
|
const ArrayItemContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
39
43
|
const AutoSubmitContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
40
|
-
const makeFieldComponent = (fieldKey, fieldDef,
|
|
44
|
+
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
41
45
|
const FieldComponent = extraProps => {
|
|
42
46
|
const arrayCtx = (0, _react.useContext)(ArrayItemContext);
|
|
43
47
|
const autoSubmitOnBlur = (0, _react.useContext)(AutoSubmitContext);
|
|
44
48
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
45
49
|
const {
|
|
46
|
-
|
|
50
|
+
errorAtom,
|
|
47
51
|
touchedAtom,
|
|
48
52
|
valueAtom
|
|
49
53
|
} = React.useMemo(() => getOrCreateFieldAtoms(fieldPath), [fieldPath]);
|
|
50
54
|
const [value, setValue] = (0, _atomReact.useAtom)(valueAtom);
|
|
51
55
|
const [isTouched, setTouched] = (0, _atomReact.useAtom)(touchedAtom);
|
|
52
|
-
const
|
|
53
|
-
const setCrossFieldErrors = (0, _atomReact.useAtomSet)(crossFieldErrorsAtom);
|
|
56
|
+
const storedError = (0, _atomReact.useAtomValue)(errorAtom);
|
|
54
57
|
const submitCount = (0, _atomReact.useAtomValue)(submitCountAtom);
|
|
55
58
|
const validationAtom = React.useMemo(() => getOrCreateValidationAtom(fieldPath, fieldDef.schema), [fieldPath]);
|
|
56
59
|
const validationResult = (0, _atomReact.useAtomValue)(validationAtom);
|
|
@@ -63,12 +66,12 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
63
66
|
return;
|
|
64
67
|
}
|
|
65
68
|
prevValueRef.current = value;
|
|
66
|
-
const shouldValidate = parsedMode.validation === "onChange" || parsedMode.validation === "onBlur" && isTouched;
|
|
69
|
+
const shouldValidate = parsedMode.validation === "onChange" || parsedMode.validation === "onBlur" && isTouched || parsedMode.validation === "onSubmit" && submitCount > 0;
|
|
67
70
|
if (shouldValidate) {
|
|
68
71
|
validate(value);
|
|
69
72
|
}
|
|
70
|
-
}, [value, isTouched, validate]);
|
|
71
|
-
const
|
|
73
|
+
}, [value, isTouched, submitCount, validate]);
|
|
74
|
+
const livePerFieldError = React.useMemo(() => {
|
|
72
75
|
if (validationResult._tag === "Failure") {
|
|
73
76
|
const parseError = Cause.failureOption(validationResult.cause);
|
|
74
77
|
if (Option.isSome(parseError) && ParseResult.isParseError(parseError.value)) {
|
|
@@ -77,22 +80,25 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
77
80
|
}
|
|
78
81
|
return Option.none();
|
|
79
82
|
}, [validationResult]);
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
const isValidating = validationResult.waiting;
|
|
84
|
+
const validationError = React.useMemo(() => {
|
|
85
|
+
if (Option.isSome(livePerFieldError)) {
|
|
86
|
+
return livePerFieldError;
|
|
87
|
+
}
|
|
88
|
+
if (Option.isSome(storedError)) {
|
|
89
|
+
// Hide field-sourced errors when validation passes or is pending (async gap).
|
|
90
|
+
// Refinement errors persist until re-submit - they can't be cleared by typing.
|
|
91
|
+
const shouldHideStoredError = storedError.value.source === "field" && (validationResult._tag === "Success" || isValidating);
|
|
92
|
+
if (shouldHideStoredError) {
|
|
93
|
+
return Option.none();
|
|
89
94
|
}
|
|
90
|
-
return
|
|
91
|
-
});
|
|
92
|
-
if (parsedMode.validation === "onChange") {
|
|
93
|
-
validate(newValue);
|
|
95
|
+
return Option.some(storedError.value.message);
|
|
94
96
|
}
|
|
95
|
-
|
|
97
|
+
return Option.none();
|
|
98
|
+
}, [livePerFieldError, storedError, validationResult, isValidating]);
|
|
99
|
+
const onChange = React.useCallback(newValue => {
|
|
100
|
+
setValue(newValue);
|
|
101
|
+
}, [setValue]);
|
|
96
102
|
const onBlur = React.useCallback(() => {
|
|
97
103
|
setTouched(true);
|
|
98
104
|
if (parsedMode.validation === "onBlur") {
|
|
@@ -102,8 +108,7 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
102
108
|
}, [setTouched, validate, value, autoSubmitOnBlur]);
|
|
103
109
|
const dirtyFields = (0, _atomReact.useAtomValue)(dirtyFieldsAtom);
|
|
104
110
|
const isDirty = React.useMemo(() => (0, _Path.isPathOrParentDirty)(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
105
|
-
const
|
|
106
|
-
const shouldShowError = isTouched || submitCount > 0;
|
|
111
|
+
const shouldShowError = parsedMode.validation === "onChange" ? isDirty || submitCount > 0 : parsedMode.validation === "onBlur" ? isTouched || submitCount > 0 : submitCount > 0;
|
|
107
112
|
const fieldState = React.useMemo(() => ({
|
|
108
113
|
value,
|
|
109
114
|
onChange,
|
|
@@ -120,7 +125,7 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
120
125
|
};
|
|
121
126
|
return React.memo(FieldComponent);
|
|
122
127
|
};
|
|
123
|
-
const makeArrayFieldComponent = (fieldKey, def, stateAtom,
|
|
128
|
+
const makeArrayFieldComponent = (fieldKey, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
124
129
|
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast);
|
|
125
130
|
const ArrayWrapper = ({
|
|
126
131
|
children
|
|
@@ -198,14 +203,13 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom,
|
|
|
198
203
|
};
|
|
199
204
|
const itemDef = _effectForm.Field.makeField(itemKey, itemSchema);
|
|
200
205
|
const itemComponent = componentMap[itemKey];
|
|
201
|
-
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef,
|
|
206
|
+
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, itemComponent);
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
const properties = {
|
|
205
210
|
Item: ItemWrapper,
|
|
206
211
|
...itemFieldComponents
|
|
207
212
|
};
|
|
208
|
-
// Proxy enables <Form.items.Item> and <Form.items.name> syntax
|
|
209
213
|
return new Proxy(ArrayWrapper, {
|
|
210
214
|
get(target, prop) {
|
|
211
215
|
if (prop in properties) {
|
|
@@ -215,48 +219,45 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom,
|
|
|
215
219
|
}
|
|
216
220
|
});
|
|
217
221
|
};
|
|
218
|
-
const makeFieldComponents = (fields, stateAtom,
|
|
222
|
+
const makeFieldComponents = (fields, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
219
223
|
const components = {};
|
|
220
224
|
for (const [key, def] of Object.entries(fields)) {
|
|
221
225
|
if (_effectForm.Field.isArrayFieldDef(def)) {
|
|
222
226
|
const arrayComponentMap = componentMap[key];
|
|
223
|
-
components[key] = makeArrayFieldComponent(key, def, stateAtom,
|
|
227
|
+
components[key] = makeArrayFieldComponent(key, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, arrayComponentMap);
|
|
224
228
|
} else if (_effectForm.Field.isFieldDef(def)) {
|
|
225
|
-
const
|
|
226
|
-
|
|
229
|
+
const componentOrBundle = componentMap[key];
|
|
230
|
+
const fieldComponent = isFieldBundle(componentOrBundle) ? componentOrBundle.component : componentOrBundle;
|
|
231
|
+
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, fieldComponent);
|
|
227
232
|
}
|
|
228
233
|
}
|
|
229
234
|
return components;
|
|
230
235
|
};
|
|
231
236
|
/**
|
|
232
|
-
*
|
|
237
|
+
* Creates a React form from a FormBuilder.
|
|
233
238
|
*
|
|
234
239
|
* @example
|
|
235
240
|
* ```tsx
|
|
236
241
|
* import { FormBuilder } from "@lucas-barake/effect-form"
|
|
237
242
|
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
238
243
|
* import { useAtomValue, useAtomSet } from "@effect-atom/atom-react"
|
|
239
|
-
* import * as Atom from "@effect-atom/atom/Atom"
|
|
240
244
|
* import * as Schema from "effect/Schema"
|
|
241
|
-
* import * as Layer from "effect/Layer"
|
|
242
|
-
*
|
|
243
|
-
* const runtime = Atom.runtime(Layer.empty)
|
|
244
245
|
*
|
|
245
|
-
* const
|
|
246
|
+
* const loginFormBuilder = FormBuilder.empty
|
|
246
247
|
* .addField("email", Schema.String)
|
|
247
248
|
* .addField("password", Schema.String)
|
|
248
249
|
*
|
|
249
|
-
*
|
|
250
|
-
*
|
|
250
|
+
* // Runtime is optional for forms without service requirements
|
|
251
|
+
* const loginForm = FormReact.make(loginFormBuilder, {
|
|
251
252
|
* fields: { email: TextInput, password: PasswordInput },
|
|
252
|
-
* onSubmit: (
|
|
253
|
+
* onSubmit: (_, { decoded }) => Effect.log(`Login: ${decoded.email}`),
|
|
253
254
|
* })
|
|
254
255
|
*
|
|
255
256
|
* // Subscribe to atoms anywhere in the tree
|
|
256
257
|
* function SubmitButton() {
|
|
257
|
-
* const isDirty = useAtomValue(
|
|
258
|
-
* const submit = useAtomValue(
|
|
259
|
-
* const callSubmit = useAtomSet(
|
|
258
|
+
* const isDirty = useAtomValue(loginForm.isDirty)
|
|
259
|
+
* const submit = useAtomValue(loginForm.submit)
|
|
260
|
+
* const callSubmit = useAtomSet(loginForm.submit)
|
|
260
261
|
* return (
|
|
261
262
|
* <button onClick={() => callSubmit()} disabled={!isDirty || submit.waiting}>
|
|
262
263
|
* {submit.waiting ? "Validating..." : "Login"}
|
|
@@ -264,26 +265,27 @@ const makeFieldComponents = (fields, stateAtom, crossFieldErrorsAtom, submitCoun
|
|
|
264
265
|
* )
|
|
265
266
|
* }
|
|
266
267
|
*
|
|
267
|
-
* function
|
|
268
|
+
* function LoginPage() {
|
|
268
269
|
* return (
|
|
269
|
-
* <
|
|
270
|
-
* <
|
|
271
|
-
* <
|
|
270
|
+
* <loginForm.Initialize defaultValues={{ email: "", password: "" }}>
|
|
271
|
+
* <loginForm.email />
|
|
272
|
+
* <loginForm.password />
|
|
272
273
|
* <SubmitButton />
|
|
273
|
-
* </
|
|
274
|
+
* </loginForm.Initialize>
|
|
274
275
|
* )
|
|
275
276
|
* }
|
|
276
277
|
* ```
|
|
277
278
|
*
|
|
278
279
|
* @category Constructors
|
|
279
280
|
*/
|
|
280
|
-
const
|
|
281
|
+
const make = (self, options) => {
|
|
281
282
|
const {
|
|
282
283
|
fields: components,
|
|
283
284
|
mode,
|
|
284
285
|
onSubmit,
|
|
285
|
-
runtime
|
|
286
|
+
runtime: providedRuntime
|
|
286
287
|
} = options;
|
|
288
|
+
const runtime = providedRuntime ?? Atom.runtime(Layer.empty);
|
|
287
289
|
const parsedMode = _effectForm.Mode.parse(mode);
|
|
288
290
|
const {
|
|
289
291
|
fields
|
|
@@ -295,18 +297,21 @@ const build = (self, options) => {
|
|
|
295
297
|
});
|
|
296
298
|
const {
|
|
297
299
|
combinedSchema,
|
|
298
|
-
crossFieldErrorsAtom,
|
|
299
300
|
dirtyFieldsAtom,
|
|
301
|
+
errorsAtom,
|
|
300
302
|
fieldRefs,
|
|
301
303
|
getFieldAtom,
|
|
302
304
|
getOrCreateFieldAtoms,
|
|
303
305
|
getOrCreateValidationAtom,
|
|
304
306
|
hasChangedSinceSubmitAtom,
|
|
305
307
|
isDirtyAtom,
|
|
308
|
+
keepAliveActiveAtom,
|
|
306
309
|
lastSubmittedValuesAtom,
|
|
310
|
+
mountAtom,
|
|
307
311
|
operations,
|
|
308
312
|
resetAtom,
|
|
309
313
|
revertToLastSubmitAtom,
|
|
314
|
+
rootErrorAtom,
|
|
310
315
|
setValue,
|
|
311
316
|
setValuesAtom,
|
|
312
317
|
stateAtom,
|
|
@@ -324,49 +329,102 @@ const build = (self, options) => {
|
|
|
324
329
|
const callSubmit = (0, _atomReact.useAtomSet)(submitAtom);
|
|
325
330
|
const isInitializedRef = React.useRef(false);
|
|
326
331
|
React.useEffect(() => {
|
|
327
|
-
|
|
332
|
+
const isKeptAlive = registry.get(keepAliveActiveAtom);
|
|
333
|
+
const currentState = registry.get(stateAtom);
|
|
334
|
+
if (!isKeptAlive) {
|
|
335
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
336
|
+
} else if (Option.isNone(currentState)) {
|
|
337
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
338
|
+
}
|
|
328
339
|
isInitializedRef.current = true;
|
|
329
340
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- mount-only
|
|
330
|
-
}, []);
|
|
341
|
+
}, [registry]);
|
|
331
342
|
const debouncedAutoSubmit = (0, _useDebounced.useDebounced)(() => {
|
|
332
343
|
const stateOption = registry.get(stateAtom);
|
|
333
344
|
if (Option.isNone(stateOption)) return;
|
|
334
345
|
callSubmit(undefined);
|
|
335
346
|
}, parsedMode.autoSubmit && parsedMode.validation === "onChange" ? parsedMode.debounce : null);
|
|
347
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
348
|
+
// Auto-Submit Coordination
|
|
349
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
350
|
+
// Two-subscription model to avoid infinite loop:
|
|
351
|
+
// - Stream 1 reacts to value changes (reference equality), triggers or queues submit
|
|
352
|
+
// - Stream 2 reacts to submit completion, flushes queued changes
|
|
353
|
+
//
|
|
354
|
+
// Single subscription to stateAtom cannot distinguish value changes from submit
|
|
355
|
+
// metadata updates (submitCount, lastSubmittedValues).
|
|
356
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
357
|
+
const lastValuesRef = React.useRef(null);
|
|
358
|
+
const pendingChangesRef = React.useRef(false);
|
|
359
|
+
const wasSubmittingRef = React.useRef(false);
|
|
336
360
|
(0, _atomReact.useAtomSubscribe)(stateAtom, React.useCallback(() => {
|
|
337
361
|
if (!isInitializedRef.current) return;
|
|
338
|
-
|
|
362
|
+
const state = registry.get(stateAtom);
|
|
363
|
+
if (Option.isNone(state)) return;
|
|
364
|
+
const currentValues = state.value.values;
|
|
365
|
+
// Reference equality filters out submit metadata changes.
|
|
366
|
+
// Works because setFieldValue creates new values object (immutable update).
|
|
367
|
+
if (currentValues === lastValuesRef.current) return;
|
|
368
|
+
lastValuesRef.current = currentValues;
|
|
369
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
370
|
+
const submitResult = registry.get(submitAtom);
|
|
371
|
+
if (submitResult.waiting) {
|
|
372
|
+
pendingChangesRef.current = true;
|
|
373
|
+
} else {
|
|
339
374
|
debouncedAutoSubmit();
|
|
340
375
|
}
|
|
376
|
+
}, [debouncedAutoSubmit, registry]), {
|
|
377
|
+
immediate: false
|
|
378
|
+
});
|
|
379
|
+
(0, _atomReact.useAtomSubscribe)(submitAtom, React.useCallback(result => {
|
|
380
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
381
|
+
const isSubmitting = result.waiting;
|
|
382
|
+
const wasSubmitting = wasSubmittingRef.current;
|
|
383
|
+
wasSubmittingRef.current = isSubmitting;
|
|
384
|
+
// Flush queued changes when submit completes
|
|
385
|
+
if (wasSubmitting && !isSubmitting) {
|
|
386
|
+
if (pendingChangesRef.current) {
|
|
387
|
+
pendingChangesRef.current = false;
|
|
388
|
+
debouncedAutoSubmit();
|
|
389
|
+
}
|
|
390
|
+
}
|
|
341
391
|
}, [debouncedAutoSubmit]), {
|
|
342
392
|
immediate: false
|
|
343
393
|
});
|
|
344
394
|
const onBlurAutoSubmit = React.useCallback(() => {
|
|
345
|
-
if (parsedMode.autoSubmit
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
395
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onBlur") return;
|
|
396
|
+
const stateOption = registry.get(stateAtom);
|
|
397
|
+
if (Option.isNone(stateOption)) return;
|
|
398
|
+
const {
|
|
399
|
+
lastSubmittedValues,
|
|
400
|
+
values
|
|
401
|
+
} = stateOption.value;
|
|
402
|
+
if (Option.isSome(lastSubmittedValues) && values === lastSubmittedValues.value.encoded) return;
|
|
403
|
+
callSubmit(undefined);
|
|
350
404
|
}, [registry, callSubmit]);
|
|
351
405
|
if (Option.isNone(state)) return null;
|
|
352
406
|
return (0, _jsxRuntime.jsx)(AutoSubmitContext.Provider, {
|
|
353
407
|
value: onBlurAutoSubmit,
|
|
354
|
-
children:
|
|
355
|
-
onSubmit: e => {
|
|
356
|
-
e.preventDefault();
|
|
357
|
-
e.stopPropagation();
|
|
358
|
-
},
|
|
359
|
-
children: children
|
|
360
|
-
})
|
|
408
|
+
children: children
|
|
361
409
|
});
|
|
362
410
|
};
|
|
363
|
-
const fieldComponents = makeFieldComponents(fields, stateAtom,
|
|
411
|
+
const fieldComponents = makeFieldComponents(fields, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, components);
|
|
412
|
+
const KeepAlive = () => {
|
|
413
|
+
const setKeepAliveActive = (0, _atomReact.useAtomSet)(keepAliveActiveAtom);
|
|
414
|
+
React.useLayoutEffect(() => {
|
|
415
|
+
setKeepAliveActive(true);
|
|
416
|
+
return () => setKeepAliveActive(false);
|
|
417
|
+
}, [setKeepAliveActive]);
|
|
418
|
+
(0, _atomReact.useAtomMount)(mountAtom);
|
|
419
|
+
return null;
|
|
420
|
+
};
|
|
364
421
|
return {
|
|
365
422
|
values: valuesAtom,
|
|
366
423
|
isDirty: isDirtyAtom,
|
|
367
424
|
hasChangedSinceSubmit: hasChangedSinceSubmitAtom,
|
|
368
425
|
lastSubmittedValues: lastSubmittedValuesAtom,
|
|
369
426
|
submitCount: submitCountAtom,
|
|
427
|
+
rootError: rootErrorAtom,
|
|
370
428
|
schema: combinedSchema,
|
|
371
429
|
fields: fieldRefs,
|
|
372
430
|
Initialize: InitializeComponent,
|
|
@@ -376,37 +434,102 @@ const build = (self, options) => {
|
|
|
376
434
|
setValues: setValuesAtom,
|
|
377
435
|
setValue,
|
|
378
436
|
getFieldAtom,
|
|
437
|
+
mount: mountAtom,
|
|
438
|
+
KeepAlive,
|
|
379
439
|
...fieldComponents
|
|
380
440
|
};
|
|
381
441
|
};
|
|
382
442
|
/**
|
|
383
|
-
* A curried helper that infers the schema type from a field definition
|
|
443
|
+
* A curried helper that infers the schema type from a field definition.
|
|
384
444
|
* Provides ergonomic type inference when defining field components.
|
|
385
445
|
*
|
|
386
446
|
* @example
|
|
387
447
|
* ```tsx
|
|
388
|
-
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
448
|
+
* import { Field, FormReact } from "@lucas-barake/effect-form-react"
|
|
389
449
|
*
|
|
390
|
-
* // Using a FieldRef from the built form
|
|
391
|
-
* const TextInput = FormReact.forField(form.fields.email)(({ field }) => (
|
|
392
|
-
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
393
|
-
* ))
|
|
394
|
-
*
|
|
395
|
-
* // Using a FieldDef (for reusable fields)
|
|
396
450
|
* const EmailField = Field.makeField("email", Schema.String)
|
|
397
451
|
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
398
452
|
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
399
453
|
* ))
|
|
400
454
|
*
|
|
401
455
|
* // With extra props - just specify the props type
|
|
402
|
-
* const TextInput = FormReact.forField(
|
|
456
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
403
457
|
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
404
458
|
* ))
|
|
405
459
|
* ```
|
|
406
460
|
*
|
|
407
461
|
* @category Constructors
|
|
408
462
|
*/
|
|
409
|
-
exports.
|
|
463
|
+
exports.make = make;
|
|
410
464
|
const forField = _field => component => component;
|
|
465
|
+
/**
|
|
466
|
+
* Creates a bundled field definition + component for reusable form fields.
|
|
467
|
+
* Reduces boilerplate when you need both a field and its component together.
|
|
468
|
+
*
|
|
469
|
+
* Uses a curried API for better type inference - the schema type is captured
|
|
470
|
+
* first, so you only need to specify the extra props type (if any).
|
|
471
|
+
*
|
|
472
|
+
* @example
|
|
473
|
+
* ```tsx
|
|
474
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
475
|
+
* import * as Schema from "effect/Schema"
|
|
476
|
+
*
|
|
477
|
+
* // Define field + component in one place (no extra props)
|
|
478
|
+
* const NameInput = FormReact.makeField({
|
|
479
|
+
* key: "name",
|
|
480
|
+
* schema: Schema.String.pipe(Schema.nonEmptyString()),
|
|
481
|
+
* })(({ field }) => (
|
|
482
|
+
* <input
|
|
483
|
+
* value={field.value}
|
|
484
|
+
* onChange={(e) => field.onChange(e.target.value)}
|
|
485
|
+
* onBlur={field.onBlur}
|
|
486
|
+
* />
|
|
487
|
+
* ))
|
|
488
|
+
*
|
|
489
|
+
* // With extra props - specify only the props type
|
|
490
|
+
* const EmailInput = FormReact.makeField({
|
|
491
|
+
* key: "email",
|
|
492
|
+
* schema: Schema.String,
|
|
493
|
+
* })<{ placeholder: string }>(({ field, props }) => (
|
|
494
|
+
* <input
|
|
495
|
+
* value={field.value}
|
|
496
|
+
* onChange={(e) => field.onChange(e.target.value)}
|
|
497
|
+
* placeholder={props.placeholder}
|
|
498
|
+
* />
|
|
499
|
+
* ))
|
|
500
|
+
*
|
|
501
|
+
* // Use in form builder
|
|
502
|
+
* const formBuilder = FormBuilder.empty.addField(NameInput.field)
|
|
503
|
+
*
|
|
504
|
+
* // Use in make()
|
|
505
|
+
* const form = FormReact.make(formBuilder, {
|
|
506
|
+
* runtime,
|
|
507
|
+
* fields: { name: NameInput },
|
|
508
|
+
* onSubmit: (_, { decoded }) => Effect.log(decoded.name),
|
|
509
|
+
* })
|
|
510
|
+
* ```
|
|
511
|
+
*
|
|
512
|
+
* @category Constructors
|
|
513
|
+
*/
|
|
411
514
|
exports.forField = forField;
|
|
515
|
+
const makeField = options => {
|
|
516
|
+
const field = _effectForm.Field.makeField(options.key, options.schema);
|
|
517
|
+
return component => {
|
|
518
|
+
if (!component.displayName) {
|
|
519
|
+
const displayName = `${options.key.charAt(0).toUpperCase()}${options.key.slice(1)}Field`;
|
|
520
|
+
try {
|
|
521
|
+
;
|
|
522
|
+
component.displayName = displayName;
|
|
523
|
+
} catch {
|
|
524
|
+
// Ignore - some environments freeze function properties
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return {
|
|
528
|
+
_tag: "FieldBundle",
|
|
529
|
+
field,
|
|
530
|
+
component
|
|
531
|
+
};
|
|
532
|
+
};
|
|
533
|
+
};
|
|
534
|
+
exports.makeField = makeField;
|
|
412
535
|
//# sourceMappingURL=FormReact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["_atomReact","require","_effectForm","_Path","Cause","_interopRequireWildcard","Option","ParseResult","AST","_react","React","_useDebounced","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ArrayItemContext","createContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","crossFieldErrorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","useContext","autoSubmitOnBlur","fieldPath","parentPath","crossFieldErrorAtom","touchedAtom","valueAtom","useMemo","value","setValue","useAtom","isTouched","setTouched","crossFieldError","useAtomValue","setCrossFieldErrors","useAtomSet","submitCount","validationAtom","schema","validationResult","validateImmediate","shouldDebounceValidation","validation","debounce","autoSubmit","validate","useDebounced","prevValueRef","useRef","useEffect","current","shouldValidate","perFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","Validation","extractFirstError","none","validationError","onChange","useCallback","newValue","prev","next","Map","errorPath","message","isPathUnderRoot","size","onBlur","dirtyFields","isDirty","isPathOrParentDirty","isValidating","waiting","shouldShowError","fieldState","error","_jsxRuntime","jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","getNestedValue","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","Field","makeField","itemComponent","properties","Item","Proxy","target","Reflect","makeFieldComponents","fields","components","key","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","build","self","options","mode","onSubmit","runtime","Mode","parse","formAtoms","FormAtoms","make","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","resetAtom","revertToLastSubmitAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","RegistryContext","state","callSubmit","isInitializedRef","createInitialState","debouncedAutoSubmit","stateOption","undefined","useAtomSubscribe","immediate","onBlurAutoSubmit","preventDefault","stopPropagation","fieldComponents","hasChangedSinceSubmit","lastSubmittedValues","Initialize","submit","reset","revertToLastSubmit","setValues","exports","forField","_field","component"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["_atomReact","require","Atom","_interopRequireWildcard","_effectForm","_Path","Cause","Layer","Option","ParseResult","Predicate","AST","_react","React","_useDebounced","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isFieldBundle","x","isTagged","ArrayItemContext","createContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","useContext","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","touchedAtom","valueAtom","useMemo","value","setValue","useAtom","isTouched","setTouched","storedError","useAtomValue","submitCount","validationAtom","schema","validationResult","validateImmediate","useAtomSet","shouldDebounceValidation","validation","debounce","autoSubmit","validate","useDebounced","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","Validation","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","dirtyFields","isDirty","isPathOrParentDirty","shouldShowError","fieldState","error","_jsxRuntime","jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","getNestedValue","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","Field","makeField","itemComponent","properties","Item","Proxy","target","Reflect","makeFieldComponents","fields","components","key","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","componentOrBundle","fieldComponent","component","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","Mode","parse","formAtoms","FormAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","RegistryContext","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","useAtomSubscribe","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","useAtomMount","hasChangedSinceSubmit","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount","exports","forField","_field","displayName","charAt","toUpperCase","slice"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|