@lucas-barake/effect-form-react 0.3.0 → 0.5.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 +45 -13
- package/dist/cjs/FormReact.js.map +1 -1
- package/dist/cjs/index.js +36 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/FormReact.d.ts +69 -21
- package/dist/dts/FormReact.d.ts.map +1 -1
- package/dist/dts/index.d.ts +12 -1
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/FormReact.js +43 -12
- package/dist/esm/FormReact.js.map +1 -1
- package/dist/esm/index.js +12 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/FormReact.tsx +156 -58
- package/src/index.ts +12 -0
package/dist/cjs/FormReact.js
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.build = void 0;
|
|
6
|
+
exports.forField = exports.build = void 0;
|
|
7
7
|
var _jsxRuntime = /*#__PURE__*/require("react/jsx-runtime");
|
|
8
8
|
var _atomReact = /*#__PURE__*/require("@effect-atom/atom-react");
|
|
9
9
|
var Atom = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@effect-atom/atom/Atom"));
|
|
10
10
|
var _effectForm = /*#__PURE__*/require("@lucas-barake/effect-form");
|
|
11
11
|
var _path = /*#__PURE__*/require("@lucas-barake/effect-form/internal/path");
|
|
12
12
|
var Cause = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Cause"));
|
|
13
|
+
var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
|
|
13
14
|
var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
|
|
14
15
|
var ParseResult = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/ParseResult"));
|
|
15
16
|
var AST = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/SchemaAST"));
|
|
@@ -43,7 +44,7 @@ function _interopRequireWildcard(e, t) {
|
|
|
43
44
|
const ArrayItemContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
44
45
|
const AutoSubmitContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
45
46
|
const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
46
|
-
const FieldComponent =
|
|
47
|
+
const FieldComponent = extraProps => {
|
|
47
48
|
const arrayCtx = (0, _react.useContext)(ArrayItemContext);
|
|
48
49
|
const autoSubmitOnBlur = (0, _react.useContext)(AutoSubmitContext);
|
|
49
50
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
@@ -108,17 +109,21 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
108
109
|
const isDirty = React.useMemo(() => (0, _path.isPathOrParentDirty)(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
109
110
|
const isValidating = validationResult.waiting;
|
|
110
111
|
const shouldShowError = isTouched || submitCount > 0;
|
|
111
|
-
|
|
112
|
-
value
|
|
113
|
-
onChange
|
|
114
|
-
onBlur
|
|
112
|
+
const fieldState = React.useMemo(() => ({
|
|
113
|
+
value,
|
|
114
|
+
onChange,
|
|
115
|
+
onBlur,
|
|
115
116
|
error: shouldShowError ? validationError : Option.none(),
|
|
116
|
-
isTouched
|
|
117
|
-
isValidating
|
|
118
|
-
isDirty
|
|
117
|
+
isTouched,
|
|
118
|
+
isValidating,
|
|
119
|
+
isDirty
|
|
120
|
+
}), [value, onChange, onBlur, shouldShowError, validationError, isTouched, isValidating, isDirty]);
|
|
121
|
+
return (0, _jsxRuntime.jsx)(Component, {
|
|
122
|
+
field: fieldState,
|
|
123
|
+
props: extraProps
|
|
119
124
|
});
|
|
120
|
-
}
|
|
121
|
-
return FieldComponent;
|
|
125
|
+
};
|
|
126
|
+
return React.memo(FieldComponent);
|
|
122
127
|
};
|
|
123
128
|
const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
124
129
|
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast);
|
|
@@ -241,7 +246,7 @@ const makeFieldComponents = (fields, stateAtom, crossFieldErrorsAtom, submitCoun
|
|
|
241
246
|
*
|
|
242
247
|
* const runtime = Atom.runtime(Layer.empty)
|
|
243
248
|
*
|
|
244
|
-
* const loginForm =
|
|
249
|
+
* const loginForm = FormBuilder.empty
|
|
245
250
|
* .addField("email", Schema.String)
|
|
246
251
|
* .addField("password", Schema.String)
|
|
247
252
|
*
|
|
@@ -480,7 +485,10 @@ const build = (self, options) => {
|
|
|
480
485
|
})
|
|
481
486
|
});
|
|
482
487
|
};
|
|
483
|
-
const submitHelper = fn => runtime.fn()(
|
|
488
|
+
const submitHelper = fn => runtime.fn()((values, get) => {
|
|
489
|
+
const result = fn(values, get);
|
|
490
|
+
return Effect.isEffect(result) ? result : Effect.succeed(result);
|
|
491
|
+
});
|
|
484
492
|
const fieldComponents = makeFieldComponents(fields, stateAtom, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, components);
|
|
485
493
|
return {
|
|
486
494
|
atom: stateAtom,
|
|
@@ -493,5 +501,29 @@ const build = (self, options) => {
|
|
|
493
501
|
...fieldComponents
|
|
494
502
|
};
|
|
495
503
|
};
|
|
504
|
+
/**
|
|
505
|
+
* A curried helper that infers the schema type from the field definition.
|
|
506
|
+
* Provides ergonomic type inference when defining field components.
|
|
507
|
+
*
|
|
508
|
+
* @example
|
|
509
|
+
* ```tsx
|
|
510
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
511
|
+
*
|
|
512
|
+
* // Without extra props - schema inferred from field
|
|
513
|
+
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
514
|
+
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
515
|
+
* ))
|
|
516
|
+
*
|
|
517
|
+
* // With extra props - just specify the props type
|
|
518
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
519
|
+
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
520
|
+
* ))
|
|
521
|
+
* ```
|
|
522
|
+
*
|
|
523
|
+
* @since 1.0.0
|
|
524
|
+
* @category Constructors
|
|
525
|
+
*/
|
|
496
526
|
exports.build = build;
|
|
527
|
+
const forField = _field => component => component;
|
|
528
|
+
exports.forField = forField;
|
|
497
529
|
//# sourceMappingURL=FormReact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["_atomReact","require","Atom","_interopRequireWildcard","_effectForm","_path","Cause","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","memo","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","delete","onBlur","dirtyFields","isDirty","isPathOrParentDirty","isValidating","waiting","shouldShowError","_jsxRuntime","jsx","error","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","runtime","Mode","parse","formAtoms","FormAtoms","make","formBuilder","combinedSchema","decodeAndSubmit","fieldRefs","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","onSubmitAtom","resetValidationAtoms","FormComponent","defaultValues","onSubmit","registry","RegistryContext","state","setOnSubmit","callDecodeAndSubmit","createInitialState","debouncedAutoSubmit","stateOption","useAtomSubscribe","immediate","onBlurAutoSubmit","preventDefault","stopPropagation","useFormHook","formValues","decodeAndSubmitResult","hasChangedSinceSubmit","lastSubmittedValues","issues","ArrayFormatter","formatErrorSync","fieldErrors","issue","path","length","schemaPathToFieldPath","message","size","submit","createSubmitState","reset","createResetState","Reset","revertToLastSubmit","field","update","currentValue","setFieldValue","changed","errorPath","keys","startsWith","setValues","setFormValues","submitResult","SubscribeComponent","submitHelper","fn","fieldComponents","atom","Form","Subscribe","useForm","exports"],"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","Effect","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","delete","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","runtime","Mode","parse","formAtoms","FormAtoms","make","formBuilder","combinedSchema","decodeAndSubmit","fieldRefs","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","onSubmitAtom","resetValidationAtoms","FormComponent","defaultValues","onSubmit","registry","RegistryContext","state","setOnSubmit","callDecodeAndSubmit","createInitialState","debouncedAutoSubmit","stateOption","useAtomSubscribe","immediate","onBlurAutoSubmit","preventDefault","stopPropagation","useFormHook","formValues","decodeAndSubmitResult","hasChangedSinceSubmit","lastSubmittedValues","issues","ArrayFormatter","formatErrorSync","fieldErrors","issue","path","length","schemaPathToFieldPath","message","size","submit","createSubmitState","reset","createResetState","Reset","revertToLastSubmit","update","currentValue","setFieldValue","changed","errorPath","keys","startsWith","setValues","setFormValues","submitResult","SubscribeComponent","submitHelper","fn","result","isEffect","succeed","fieldComponents","atom","Form","Subscribe","useForm","exports","forField","_field","component"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,4 +3,40 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "Field", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _effectForm.Field;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "FormBuilder", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _effectForm.FormBuilder;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.FormReact = void 0;
|
|
19
|
+
var _effectForm = /*#__PURE__*/require("@lucas-barake/effect-form");
|
|
20
|
+
var _FormReact = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./FormReact.js"));
|
|
21
|
+
exports.FormReact = _FormReact;
|
|
22
|
+
function _interopRequireWildcard(e, t) {
|
|
23
|
+
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
|
24
|
+
n = new WeakMap();
|
|
25
|
+
return (_interopRequireWildcard = function (e, t) {
|
|
26
|
+
if (!t && e && e.__esModule) return e;
|
|
27
|
+
var o,
|
|
28
|
+
i,
|
|
29
|
+
f = {
|
|
30
|
+
__proto__: null,
|
|
31
|
+
default: e
|
|
32
|
+
};
|
|
33
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
|
34
|
+
if (o = t ? n : r) {
|
|
35
|
+
if (o.has(e)) return o.get(e);
|
|
36
|
+
o.set(e, f);
|
|
37
|
+
}
|
|
38
|
+
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
|
39
|
+
return f;
|
|
40
|
+
})(e, t);
|
|
41
|
+
}
|
|
6
42
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_effectForm","require","_FormReact","_interopRequireWildcard","exports","FormReact","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;AAKA,IAAAA,WAAA,gBAAAC,OAAA;AAA8D,IAAAC,UAAA,gBAAAC,uBAAA,cAAAF,OAAA;AAAAG,OAAA,CAAAC,SAAA,GAAAH,UAAA;AAAA,SAAAC,wBAAAG,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA","ignoreList":[]}
|
package/dist/dts/FormReact.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import * as Atom from "@effect-atom/atom/Atom";
|
|
2
2
|
import type * as Result from "@effect-atom/atom/Result";
|
|
3
3
|
import { Field, FormAtoms, Mode } from "@lucas-barake/effect-form";
|
|
4
|
-
import type * as
|
|
5
|
-
import
|
|
4
|
+
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder";
|
|
5
|
+
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as Option from "effect/Option";
|
|
7
7
|
import type * as Schema from "effect/Schema";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Form-controlled state passed to field components.
|
|
11
11
|
*
|
|
12
12
|
* @since 1.0.0
|
|
13
13
|
* @category Models
|
|
14
14
|
*/
|
|
15
|
-
export interface
|
|
15
|
+
export interface FieldState<S extends Schema.Schema.Any> {
|
|
16
16
|
readonly value: Schema.Schema.Encoded<S>;
|
|
17
17
|
readonly onChange: (value: Schema.Schema.Encoded<S>) => void;
|
|
18
18
|
readonly onBlur: () => void;
|
|
@@ -21,6 +21,24 @@ export interface FieldComponentProps<S extends Schema.Schema.Any> {
|
|
|
21
21
|
readonly isValidating: boolean;
|
|
22
22
|
readonly isDirty: boolean;
|
|
23
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Props passed to field components.
|
|
26
|
+
* Contains form-controlled state in `field` and user-defined props in `props`.
|
|
27
|
+
*
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
* @category Models
|
|
30
|
+
*/
|
|
31
|
+
export interface FieldComponentProps<S extends Schema.Schema.Any, P extends Record<string, unknown> = Record<string, never>> {
|
|
32
|
+
readonly field: FieldState<S>;
|
|
33
|
+
readonly props: P;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Extracts the extra props type from a field component.
|
|
37
|
+
*
|
|
38
|
+
* @since 1.0.0
|
|
39
|
+
* @category Type-level utilities
|
|
40
|
+
*/
|
|
41
|
+
export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P : Record<string, never>;
|
|
24
42
|
/**
|
|
25
43
|
* Extracts field component map for array item schemas.
|
|
26
44
|
* - For Struct schemas: returns a map of field names to components
|
|
@@ -30,8 +48,8 @@ export interface FieldComponentProps<S extends Schema.Schema.Any> {
|
|
|
30
48
|
* @category Models
|
|
31
49
|
*/
|
|
32
50
|
export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
|
|
33
|
-
readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Fields[K]>> : never;
|
|
34
|
-
} : React.FC<FieldComponentProps<S>>;
|
|
51
|
+
readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Fields[K], any>> : never;
|
|
52
|
+
} : React.FC<FieldComponentProps<S, any>>;
|
|
35
53
|
/**
|
|
36
54
|
* Maps field names to their React components.
|
|
37
55
|
*
|
|
@@ -39,7 +57,7 @@ export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schem
|
|
|
39
57
|
* @category Models
|
|
40
58
|
*/
|
|
41
59
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
42
|
-
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<S>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S> : never;
|
|
60
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<S, any>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S> : never;
|
|
43
61
|
};
|
|
44
62
|
/**
|
|
45
63
|
* Maps field names to their type-safe Field references for setValue operations.
|
|
@@ -76,7 +94,7 @@ export interface SubscribeState<TFields extends Field.FieldsRecord> {
|
|
|
76
94
|
readonly submit: () => void;
|
|
77
95
|
readonly reset: () => void;
|
|
78
96
|
readonly revertToLastSubmit: () => void;
|
|
79
|
-
readonly setValue: <S>(field:
|
|
97
|
+
readonly setValue: <S>(field: FormBuilder.FieldRef<S>, update: S | ((prev: S) => S)) => void;
|
|
80
98
|
readonly setValues: (values: Field.EncodedFromFields<TFields>) => void;
|
|
81
99
|
}
|
|
82
100
|
/**
|
|
@@ -86,8 +104,8 @@ export interface SubscribeState<TFields extends Field.FieldsRecord> {
|
|
|
86
104
|
* @since 1.0.0
|
|
87
105
|
* @category Models
|
|
88
106
|
*/
|
|
89
|
-
export type BuiltForm<TFields extends Field.FieldsRecord, R> = {
|
|
90
|
-
readonly atom: Atom.Writable<Option.Option<
|
|
107
|
+
export type BuiltForm<TFields extends Field.FieldsRecord, R, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>> = {
|
|
108
|
+
readonly atom: Atom.Writable<Option.Option<FormBuilder.FormState<TFields>>, Option.Option<FormBuilder.FormState<TFields>>>;
|
|
91
109
|
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
|
|
92
110
|
readonly fields: FieldRefs<TFields>;
|
|
93
111
|
readonly Form: React.FC<{
|
|
@@ -107,15 +125,20 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R> = {
|
|
|
107
125
|
readonly lastSubmittedValues: Option.Option<Field.EncodedFromFields<TFields>>;
|
|
108
126
|
readonly submitResult: Result.Result<unknown, unknown>;
|
|
109
127
|
readonly values: Field.EncodedFromFields<TFields>;
|
|
110
|
-
readonly setValue: <S>(field:
|
|
128
|
+
readonly setValue: <S>(field: FormBuilder.FieldRef<S>, update: S | ((prev: S) => S)) => void;
|
|
111
129
|
readonly setValues: (values: Field.EncodedFromFields<TFields>) => void;
|
|
112
130
|
};
|
|
113
|
-
readonly submit: <A
|
|
114
|
-
} & FieldComponents<TFields>;
|
|
115
|
-
type FieldComponents<TFields extends Field.FieldsRecord
|
|
116
|
-
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, any> ? React.FC : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayFieldComponent<S
|
|
131
|
+
readonly submit: <A>(fn: (values: Field.DecodedFromFields<TFields>, get: Atom.FnContext) => A) => Atom.AtomResultFn<Field.DecodedFromFields<TFields>, A extends Effect.Effect<infer T, any, any> ? T : A, A extends Effect.Effect<any, infer E, any> ? E : never>;
|
|
132
|
+
} & FieldComponents<TFields, CM>;
|
|
133
|
+
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
134
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, any> ? React.FC<ExtractExtraProps<CM[K]>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayFieldComponent<S, ExtractArrayItemExtraProps<CM[K], S>> : never;
|
|
117
135
|
};
|
|
118
|
-
type
|
|
136
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
|
|
137
|
+
readonly [K in keyof Fields]: CM extends {
|
|
138
|
+
readonly [P in K]: infer C;
|
|
139
|
+
} ? ExtractExtraProps<C> : never;
|
|
140
|
+
} : CM extends React.FC<FieldComponentProps<any, infer P>> ? P : never;
|
|
141
|
+
type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> = React.FC<{
|
|
119
142
|
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode;
|
|
120
143
|
}> & {
|
|
121
144
|
readonly Item: React.FC<{
|
|
@@ -125,7 +148,9 @@ type ArrayFieldComponent<S extends Schema.Schema.Any> = React.FC<{
|
|
|
125
148
|
}) => React.ReactNode);
|
|
126
149
|
}>;
|
|
127
150
|
} & (S extends Schema.Struct<infer Fields> ? {
|
|
128
|
-
readonly [K in keyof Fields]: React.FC
|
|
151
|
+
readonly [K in keyof Fields]: React.FC<ExtraPropsMap extends {
|
|
152
|
+
readonly [P in K]: infer EP;
|
|
153
|
+
} ? EP : Record<string, never>>;
|
|
129
154
|
} : unknown);
|
|
130
155
|
/**
|
|
131
156
|
* Builds a React form from a FormBuilder.
|
|
@@ -141,7 +166,7 @@ type ArrayFieldComponent<S extends Schema.Schema.Any> = React.FC<{
|
|
|
141
166
|
*
|
|
142
167
|
* const runtime = Atom.runtime(Layer.empty)
|
|
143
168
|
*
|
|
144
|
-
* const loginForm =
|
|
169
|
+
* const loginForm = FormBuilder.empty
|
|
145
170
|
* .addField("email", Schema.String)
|
|
146
171
|
* .addField("password", Schema.String)
|
|
147
172
|
*
|
|
@@ -175,10 +200,33 @@ type ArrayFieldComponent<S extends Schema.Schema.Any> = React.FC<{
|
|
|
175
200
|
* @since 1.0.0
|
|
176
201
|
* @category Constructors
|
|
177
202
|
*/
|
|
178
|
-
export declare const build: <TFields extends Field.FieldsRecord, R, ER = never>(self:
|
|
203
|
+
export declare const build: <TFields extends Field.FieldsRecord, R, ER = never, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
|
|
179
204
|
readonly runtime: Atom.AtomRuntime<R, ER>;
|
|
180
|
-
readonly fields:
|
|
205
|
+
readonly fields: CM;
|
|
181
206
|
readonly mode?: Mode.FormMode;
|
|
182
|
-
}) => BuiltForm<TFields, R>;
|
|
207
|
+
}) => BuiltForm<TFields, R, CM>;
|
|
208
|
+
/**
|
|
209
|
+
* A curried helper that infers the schema type from the field definition.
|
|
210
|
+
* Provides ergonomic type inference when defining field components.
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```tsx
|
|
214
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
215
|
+
*
|
|
216
|
+
* // Without extra props - schema inferred from field
|
|
217
|
+
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
218
|
+
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
219
|
+
* ))
|
|
220
|
+
*
|
|
221
|
+
* // With extra props - just specify the props type
|
|
222
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
223
|
+
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
224
|
+
* ))
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @since 1.0.0
|
|
228
|
+
* @category Constructors
|
|
229
|
+
*/
|
|
230
|
+
export declare const forField: <K extends string, S extends Schema.Schema.Any>(_field: Field.FieldDef<K, S>) => <P extends Record<string, unknown> = Record<string, never>>(component: React.FC<FieldComponentProps<S, P>>) => React.FC<FieldComponentProps<S, P>>;
|
|
183
231
|
export {};
|
|
184
232
|
//# sourceMappingURL=FormReact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../../src/FormReact.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAc,MAAM,2BAA2B,CAAA;AAC9E,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../../src/FormReact.tsx"],"names":[],"mappings":"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"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Re-export commonly used modules from the core package.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
export { Field, FormBuilder } from "@lucas-barake/effect-form";
|
|
7
|
+
/**
|
|
8
|
+
* React bindings for @lucas-barake/effect-form.
|
|
9
|
+
*
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
export * as FormReact from "./FormReact.js";
|
|
2
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;GAIG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
|
package/dist/esm/FormReact.js
CHANGED
|
@@ -7,6 +7,7 @@ import * as Atom from "@effect-atom/atom/Atom";
|
|
|
7
7
|
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form";
|
|
8
8
|
import { getNestedValue, isPathOrParentDirty, schemaPathToFieldPath } from "@lucas-barake/effect-form/internal/path";
|
|
9
9
|
import * as Cause from "effect/Cause";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
10
11
|
import * as Option from "effect/Option";
|
|
11
12
|
import * as ParseResult from "effect/ParseResult";
|
|
12
13
|
import * as AST from "effect/SchemaAST";
|
|
@@ -16,7 +17,7 @@ import { useDebounced } from "./internal/use-debounced.js";
|
|
|
16
17
|
const ArrayItemContext = /*#__PURE__*/createContext(null);
|
|
17
18
|
const AutoSubmitContext = /*#__PURE__*/createContext(null);
|
|
18
19
|
const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
19
|
-
const FieldComponent =
|
|
20
|
+
const FieldComponent = extraProps => {
|
|
20
21
|
const arrayCtx = useContext(ArrayItemContext);
|
|
21
22
|
const autoSubmitOnBlur = useContext(AutoSubmitContext);
|
|
22
23
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
@@ -81,17 +82,21 @@ const makeFieldComponent = (fieldKey, fieldDef, crossFieldErrorsAtom, submitCoun
|
|
|
81
82
|
const isDirty = React.useMemo(() => isPathOrParentDirty(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
82
83
|
const isValidating = validationResult.waiting;
|
|
83
84
|
const shouldShowError = isTouched || submitCount > 0;
|
|
84
|
-
|
|
85
|
-
value
|
|
86
|
-
onChange
|
|
87
|
-
onBlur
|
|
85
|
+
const fieldState = React.useMemo(() => ({
|
|
86
|
+
value,
|
|
87
|
+
onChange,
|
|
88
|
+
onBlur,
|
|
88
89
|
error: shouldShowError ? validationError : Option.none(),
|
|
89
|
-
isTouched
|
|
90
|
-
isValidating
|
|
91
|
-
isDirty
|
|
90
|
+
isTouched,
|
|
91
|
+
isValidating,
|
|
92
|
+
isDirty
|
|
93
|
+
}), [value, onChange, onBlur, shouldShowError, validationError, isTouched, isValidating, isDirty]);
|
|
94
|
+
return _jsx(Component, {
|
|
95
|
+
field: fieldState,
|
|
96
|
+
props: extraProps
|
|
92
97
|
});
|
|
93
|
-
}
|
|
94
|
-
return FieldComponent;
|
|
98
|
+
};
|
|
99
|
+
return React.memo(FieldComponent);
|
|
95
100
|
};
|
|
96
101
|
const makeArrayFieldComponent = (fieldKey, def, stateAtom, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, componentMap) => {
|
|
97
102
|
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast);
|
|
@@ -214,7 +219,7 @@ const makeFieldComponents = (fields, stateAtom, crossFieldErrorsAtom, submitCoun
|
|
|
214
219
|
*
|
|
215
220
|
* const runtime = Atom.runtime(Layer.empty)
|
|
216
221
|
*
|
|
217
|
-
* const loginForm =
|
|
222
|
+
* const loginForm = FormBuilder.empty
|
|
218
223
|
* .addField("email", Schema.String)
|
|
219
224
|
* .addField("password", Schema.String)
|
|
220
225
|
*
|
|
@@ -453,7 +458,10 @@ export const build = (self, options) => {
|
|
|
453
458
|
})
|
|
454
459
|
});
|
|
455
460
|
};
|
|
456
|
-
const submitHelper = fn => runtime.fn()(
|
|
461
|
+
const submitHelper = fn => runtime.fn()((values, get) => {
|
|
462
|
+
const result = fn(values, get);
|
|
463
|
+
return Effect.isEffect(result) ? result : Effect.succeed(result);
|
|
464
|
+
});
|
|
457
465
|
const fieldComponents = makeFieldComponents(fields, stateAtom, crossFieldErrorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, components);
|
|
458
466
|
return {
|
|
459
467
|
atom: stateAtom,
|
|
@@ -466,4 +474,27 @@ export const build = (self, options) => {
|
|
|
466
474
|
...fieldComponents
|
|
467
475
|
};
|
|
468
476
|
};
|
|
477
|
+
/**
|
|
478
|
+
* A curried helper that infers the schema type from the field definition.
|
|
479
|
+
* Provides ergonomic type inference when defining field components.
|
|
480
|
+
*
|
|
481
|
+
* @example
|
|
482
|
+
* ```tsx
|
|
483
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
484
|
+
*
|
|
485
|
+
* // Without extra props - schema inferred from field
|
|
486
|
+
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
487
|
+
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
488
|
+
* ))
|
|
489
|
+
*
|
|
490
|
+
* // With extra props - just specify the props type
|
|
491
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
492
|
+
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
493
|
+
* ))
|
|
494
|
+
* ```
|
|
495
|
+
*
|
|
496
|
+
* @since 1.0.0
|
|
497
|
+
* @category Constructors
|
|
498
|
+
*/
|
|
499
|
+
export const forField = _field => component => component;
|
|
469
500
|
//# sourceMappingURL=FormReact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomSet","useAtomSubscribe","useAtomValue","Atom","Field","FormAtoms","Mode","Validation","getNestedValue","isPathOrParentDirty","schemaPathToFieldPath","Cause","Option","ParseResult","AST","React","createContext","useContext","useDebounced","ArrayItemContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","crossFieldErrorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","memo","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","has","next","Map","delete","onBlur","dirtyFields","isDirty","isValidating","waiting","shouldShowError","_jsx","error","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","runtime","parse","formAtoms","make","formBuilder","combinedSchema","decodeAndSubmit","fieldRefs","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","onSubmitAtom","resetValidationAtoms","FormComponent","defaultValues","onSubmit","registry","state","setOnSubmit","callDecodeAndSubmit","createInitialState","debouncedAutoSubmit","stateOption","immediate","onBlurAutoSubmit","e","preventDefault","stopPropagation","useFormHook","formValues","decodeAndSubmitResult","hasChangedSinceSubmit","lastSubmittedValues","issues","ArrayFormatter","formatErrorSync","fieldErrors","issue","path","length","set","message","size","submit","createSubmitState","reset","createResetState","Reset","revertToLastSubmit","field","update","currentValue","setFieldValue","changed","errorPath","keys","startsWith","setValues","setFormValues","submitResult","SubscribeComponent","submitHelper","fn","fieldComponents","atom","Form","Subscribe","useForm"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomSet","useAtomSubscribe","useAtomValue","Atom","Field","FormAtoms","Mode","Validation","getNestedValue","isPathOrParentDirty","schemaPathToFieldPath","Cause","Effect","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","has","next","Map","delete","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","runtime","parse","formAtoms","make","formBuilder","combinedSchema","decodeAndSubmit","fieldRefs","hasChangedSinceSubmitAtom","isDirtyAtom","lastSubmittedValuesAtom","onSubmitAtom","resetValidationAtoms","FormComponent","defaultValues","onSubmit","registry","state","setOnSubmit","callDecodeAndSubmit","createInitialState","debouncedAutoSubmit","stateOption","immediate","onBlurAutoSubmit","e","preventDefault","stopPropagation","useFormHook","formValues","decodeAndSubmitResult","hasChangedSinceSubmit","lastSubmittedValues","issues","ArrayFormatter","formatErrorSync","fieldErrors","issue","path","length","set","message","size","submit","createSubmitState","reset","createResetState","Reset","revertToLastSubmit","update","currentValue","setFieldValue","changed","errorPath","keys","startsWith","setValues","setFormValues","submitResult","SubscribeComponent","submitHelper","fn","result","isEffect","succeed","fieldComponents","atom","Form","Subscribe","useForm","forField","_field","component"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Re-export commonly used modules from the core package.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
export { Field, FormBuilder } from "@lucas-barake/effect-form";
|
|
7
|
+
/**
|
|
8
|
+
* React bindings for @lucas-barake/effect-form.
|
|
9
|
+
*
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
export * as FormReact from "./FormReact.js";
|
|
2
13
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Field","FormBuilder","FormReact"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,KAAK,EAAEC,WAAW,QAAQ,2BAA2B;AAE9D;;;;;AAKA,OAAO,KAAKC,SAAS,MAAM,gBAAgB","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.5.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.4.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@effect-atom/atom": "^0.4.8",
|
package/src/FormReact.tsx
CHANGED
|
@@ -5,10 +5,10 @@ import { RegistryContext, useAtom, useAtomSet, useAtomSubscribe, useAtomValue }
|
|
|
5
5
|
import * as Atom from "@effect-atom/atom/Atom"
|
|
6
6
|
import type * as Result from "@effect-atom/atom/Result"
|
|
7
7
|
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form"
|
|
8
|
-
import type * as
|
|
8
|
+
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder"
|
|
9
9
|
import { getNestedValue, isPathOrParentDirty, schemaPathToFieldPath } from "@lucas-barake/effect-form/internal/path"
|
|
10
10
|
import * as Cause from "effect/Cause"
|
|
11
|
-
import
|
|
11
|
+
import * as Effect from "effect/Effect"
|
|
12
12
|
import * as Option from "effect/Option"
|
|
13
13
|
import * as ParseResult from "effect/ParseResult"
|
|
14
14
|
import type * as Schema from "effect/Schema"
|
|
@@ -18,12 +18,12 @@ import { createContext, useContext } from "react"
|
|
|
18
18
|
import { useDebounced } from "./internal/use-debounced.js"
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
21
|
+
* Form-controlled state passed to field components.
|
|
22
22
|
*
|
|
23
23
|
* @since 1.0.0
|
|
24
24
|
* @category Models
|
|
25
25
|
*/
|
|
26
|
-
export interface
|
|
26
|
+
export interface FieldState<S extends Schema.Schema.Any> {
|
|
27
27
|
readonly value: Schema.Schema.Encoded<S>
|
|
28
28
|
readonly onChange: (value: Schema.Schema.Encoded<S>) => void
|
|
29
29
|
readonly onBlur: () => void
|
|
@@ -33,6 +33,30 @@ export interface FieldComponentProps<S extends Schema.Schema.Any> {
|
|
|
33
33
|
readonly isDirty: boolean
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Props passed to field components.
|
|
38
|
+
* Contains form-controlled state in `field` and user-defined props in `props`.
|
|
39
|
+
*
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category Models
|
|
42
|
+
*/
|
|
43
|
+
export interface FieldComponentProps<
|
|
44
|
+
S extends Schema.Schema.Any,
|
|
45
|
+
P extends Record<string, unknown> = Record<string, never>,
|
|
46
|
+
> {
|
|
47
|
+
readonly field: FieldState<S>
|
|
48
|
+
readonly props: P
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Extracts the extra props type from a field component.
|
|
53
|
+
*
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
* @category Type-level utilities
|
|
56
|
+
*/
|
|
57
|
+
export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P
|
|
58
|
+
: Record<string, never>
|
|
59
|
+
|
|
36
60
|
/**
|
|
37
61
|
* Extracts field component map for array item schemas.
|
|
38
62
|
* - For Struct schemas: returns a map of field names to components
|
|
@@ -42,9 +66,10 @@ export interface FieldComponentProps<S extends Schema.Schema.Any> {
|
|
|
42
66
|
* @category Models
|
|
43
67
|
*/
|
|
44
68
|
export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
|
|
45
|
-
readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Fields[K]>>
|
|
69
|
+
readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Fields[K], any>>
|
|
70
|
+
: never
|
|
46
71
|
}
|
|
47
|
-
: React.FC<FieldComponentProps<S>>
|
|
72
|
+
: React.FC<FieldComponentProps<S, any>>
|
|
48
73
|
|
|
49
74
|
/**
|
|
50
75
|
* Maps field names to their React components.
|
|
@@ -53,7 +78,7 @@ export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schem
|
|
|
53
78
|
* @category Models
|
|
54
79
|
*/
|
|
55
80
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
56
|
-
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<S>>
|
|
81
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<S, any>>
|
|
57
82
|
: TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S>
|
|
58
83
|
: never
|
|
59
84
|
}
|
|
@@ -95,7 +120,7 @@ export interface SubscribeState<TFields extends Field.FieldsRecord> {
|
|
|
95
120
|
readonly submit: () => void
|
|
96
121
|
readonly reset: () => void
|
|
97
122
|
readonly revertToLastSubmit: () => void
|
|
98
|
-
readonly setValue: <S>(field:
|
|
123
|
+
readonly setValue: <S>(field: FormBuilder.FieldRef<S>, update: S | ((prev: S) => S)) => void
|
|
99
124
|
readonly setValues: (values: Field.EncodedFromFields<TFields>) => void
|
|
100
125
|
}
|
|
101
126
|
|
|
@@ -106,8 +131,15 @@ export interface SubscribeState<TFields extends Field.FieldsRecord> {
|
|
|
106
131
|
* @since 1.0.0
|
|
107
132
|
* @category Models
|
|
108
133
|
*/
|
|
109
|
-
export type BuiltForm<
|
|
110
|
-
|
|
134
|
+
export type BuiltForm<
|
|
135
|
+
TFields extends Field.FieldsRecord,
|
|
136
|
+
R,
|
|
137
|
+
CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>,
|
|
138
|
+
> = {
|
|
139
|
+
readonly atom: Atom.Writable<
|
|
140
|
+
Option.Option<FormBuilder.FormState<TFields>>,
|
|
141
|
+
Option.Option<FormBuilder.FormState<TFields>>
|
|
142
|
+
>
|
|
111
143
|
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>
|
|
112
144
|
readonly fields: FieldRefs<TFields>
|
|
113
145
|
|
|
@@ -130,22 +162,32 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R> = {
|
|
|
130
162
|
readonly lastSubmittedValues: Option.Option<Field.EncodedFromFields<TFields>>
|
|
131
163
|
readonly submitResult: Result.Result<unknown, unknown>
|
|
132
164
|
readonly values: Field.EncodedFromFields<TFields>
|
|
133
|
-
readonly setValue: <S>(field:
|
|
165
|
+
readonly setValue: <S>(field: FormBuilder.FieldRef<S>, update: S | ((prev: S) => S)) => void
|
|
134
166
|
readonly setValues: (values: Field.EncodedFromFields<TFields>) => void
|
|
135
167
|
}
|
|
136
168
|
|
|
137
|
-
readonly submit: <A
|
|
138
|
-
fn: (values: Field.DecodedFromFields<TFields>, get: Atom.FnContext) =>
|
|
139
|
-
) => Atom.AtomResultFn<
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
169
|
+
readonly submit: <A>(
|
|
170
|
+
fn: (values: Field.DecodedFromFields<TFields>, get: Atom.FnContext) => A,
|
|
171
|
+
) => Atom.AtomResultFn<
|
|
172
|
+
Field.DecodedFromFields<TFields>,
|
|
173
|
+
A extends Effect.Effect<infer T, any, any> ? T : A,
|
|
174
|
+
A extends Effect.Effect<any, infer E, any> ? E : never
|
|
175
|
+
>
|
|
176
|
+
} & FieldComponents<TFields, CM>
|
|
177
|
+
|
|
178
|
+
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
179
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, any> ? React.FC<ExtractExtraProps<CM[K]>>
|
|
180
|
+
: TFields[K] extends Field.ArrayFieldDef<any, infer S>
|
|
181
|
+
? ArrayFieldComponent<S, ExtractArrayItemExtraProps<CM[K], S>>
|
|
145
182
|
: never
|
|
146
183
|
}
|
|
147
184
|
|
|
148
|
-
type
|
|
185
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields>
|
|
186
|
+
? { readonly [K in keyof Fields]: CM extends { readonly [P in K]: infer C } ? ExtractExtraProps<C> : never }
|
|
187
|
+
: CM extends React.FC<FieldComponentProps<any, infer P>> ? P
|
|
188
|
+
: never
|
|
189
|
+
|
|
190
|
+
type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> =
|
|
149
191
|
& React.FC<{
|
|
150
192
|
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode
|
|
151
193
|
}>
|
|
@@ -155,7 +197,11 @@ type ArrayFieldComponent<S extends Schema.Schema.Any> =
|
|
|
155
197
|
readonly children: React.ReactNode | ((props: { readonly remove: () => void }) => React.ReactNode)
|
|
156
198
|
}>
|
|
157
199
|
}
|
|
158
|
-
& (S extends Schema.Struct<infer Fields> ? {
|
|
200
|
+
& (S extends Schema.Struct<infer Fields> ? {
|
|
201
|
+
readonly [K in keyof Fields]: React.FC<
|
|
202
|
+
ExtraPropsMap extends { readonly [P in K]: infer EP } ? EP : Record<string, never>
|
|
203
|
+
>
|
|
204
|
+
}
|
|
159
205
|
: unknown)
|
|
160
206
|
|
|
161
207
|
interface ArrayItemContextValue {
|
|
@@ -166,7 +212,7 @@ interface ArrayItemContextValue {
|
|
|
166
212
|
const ArrayItemContext = createContext<ArrayItemContextValue | null>(null)
|
|
167
213
|
const AutoSubmitContext = createContext<(() => void) | null>(null)
|
|
168
214
|
|
|
169
|
-
const makeFieldComponent = <S extends Schema.Schema.Any
|
|
215
|
+
const makeFieldComponent = <S extends Schema.Schema.Any, P extends Record<string, unknown>>(
|
|
170
216
|
fieldKey: string,
|
|
171
217
|
fieldDef: Field.FieldDef<string, S>,
|
|
172
218
|
crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>,
|
|
@@ -178,9 +224,9 @@ const makeFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
178
224
|
schema: Schema.Schema.Any,
|
|
179
225
|
) => Atom.AtomResultFn<unknown, void, ParseResult.ParseError>,
|
|
180
226
|
getOrCreateFieldAtoms: (fieldPath: string) => FormAtoms.FieldAtoms,
|
|
181
|
-
Component: React.FC<FieldComponentProps<S>>,
|
|
182
|
-
): React.FC => {
|
|
183
|
-
const FieldComponent: React.FC =
|
|
227
|
+
Component: React.FC<FieldComponentProps<S, P>>,
|
|
228
|
+
): React.FC<P> => {
|
|
229
|
+
const FieldComponent: React.FC<P> = (extraProps) => {
|
|
184
230
|
const arrayCtx = useContext(ArrayItemContext)
|
|
185
231
|
const autoSubmitOnBlur = useContext(AutoSubmitContext)
|
|
186
232
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
@@ -269,26 +315,26 @@ const makeFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
269
315
|
const isValidating = validationResult.waiting
|
|
270
316
|
const shouldShowError = isTouched || submitCount > 0
|
|
271
317
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
318
|
+
const fieldState: FieldState<S> = React.useMemo(() => ({
|
|
319
|
+
value,
|
|
320
|
+
onChange,
|
|
321
|
+
onBlur,
|
|
322
|
+
error: shouldShowError ? validationError : Option.none<string>(),
|
|
323
|
+
isTouched,
|
|
324
|
+
isValidating,
|
|
325
|
+
isDirty,
|
|
326
|
+
}), [value, onChange, onBlur, shouldShowError, validationError, isTouched, isValidating, isDirty])
|
|
327
|
+
|
|
328
|
+
return <Component field={fieldState} props={extraProps} />
|
|
329
|
+
}
|
|
284
330
|
|
|
285
|
-
return FieldComponent
|
|
331
|
+
return React.memo(FieldComponent) as React.FC<P>
|
|
286
332
|
}
|
|
287
333
|
|
|
288
334
|
const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
289
335
|
fieldKey: string,
|
|
290
336
|
def: Field.ArrayFieldDef<string, S>,
|
|
291
|
-
stateAtom: Atom.Writable<Option.Option<
|
|
337
|
+
stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<any>>, Option.Option<FormBuilder.FormState<any>>>,
|
|
292
338
|
crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>,
|
|
293
339
|
submitCountAtom: Atom.Atom<number>,
|
|
294
340
|
dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>,
|
|
@@ -300,7 +346,7 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
300
346
|
getOrCreateFieldAtoms: (fieldPath: string) => FormAtoms.FieldAtoms,
|
|
301
347
|
operations: FormAtoms.FormOperations<any>,
|
|
302
348
|
componentMap: ArrayItemComponentMap<S>,
|
|
303
|
-
): ArrayFieldComponent<S> => {
|
|
349
|
+
): ArrayFieldComponent<S, any> => {
|
|
304
350
|
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast)
|
|
305
351
|
|
|
306
352
|
const ArrayWrapper: React.FC<{
|
|
@@ -391,7 +437,7 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
391
437
|
const itemKey = prop.name as string
|
|
392
438
|
const itemSchema = { ast: prop.type } as Schema.Schema.Any
|
|
393
439
|
const itemDef = Field.makeField(itemKey, itemSchema)
|
|
394
|
-
const itemComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any>>>)[itemKey]
|
|
440
|
+
const itemComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[itemKey]
|
|
395
441
|
itemFieldComponents[itemKey] = makeFieldComponent(
|
|
396
442
|
itemKey,
|
|
397
443
|
itemDef,
|
|
@@ -418,12 +464,18 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
418
464
|
}
|
|
419
465
|
return Reflect.get(target, prop)
|
|
420
466
|
},
|
|
421
|
-
}) as ArrayFieldComponent<S>
|
|
467
|
+
}) as ArrayFieldComponent<S, any>
|
|
422
468
|
}
|
|
423
469
|
|
|
424
|
-
const makeFieldComponents = <
|
|
470
|
+
const makeFieldComponents = <
|
|
471
|
+
TFields extends Field.FieldsRecord,
|
|
472
|
+
CM extends FieldComponentMap<TFields>,
|
|
473
|
+
>(
|
|
425
474
|
fields: TFields,
|
|
426
|
-
stateAtom: Atom.Writable<
|
|
475
|
+
stateAtom: Atom.Writable<
|
|
476
|
+
Option.Option<FormBuilder.FormState<TFields>>,
|
|
477
|
+
Option.Option<FormBuilder.FormState<TFields>>
|
|
478
|
+
>,
|
|
427
479
|
crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>,
|
|
428
480
|
submitCountAtom: Atom.Atom<number>,
|
|
429
481
|
dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>,
|
|
@@ -434,8 +486,8 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord>(
|
|
|
434
486
|
) => Atom.AtomResultFn<unknown, void, ParseResult.ParseError>,
|
|
435
487
|
getOrCreateFieldAtoms: (fieldPath: string) => FormAtoms.FieldAtoms,
|
|
436
488
|
operations: FormAtoms.FormOperations<TFields>,
|
|
437
|
-
componentMap:
|
|
438
|
-
): FieldComponents<TFields> => {
|
|
489
|
+
componentMap: CM,
|
|
490
|
+
): FieldComponents<TFields, CM> => {
|
|
439
491
|
const components: Record<string, any> = {}
|
|
440
492
|
|
|
441
493
|
for (const [key, def] of Object.entries(fields)) {
|
|
@@ -455,7 +507,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord>(
|
|
|
455
507
|
arrayComponentMap,
|
|
456
508
|
)
|
|
457
509
|
} else if (Field.isFieldDef(def)) {
|
|
458
|
-
const fieldComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any>>>)[key]
|
|
510
|
+
const fieldComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[key]
|
|
459
511
|
components[key] = makeFieldComponent(
|
|
460
512
|
key,
|
|
461
513
|
def,
|
|
@@ -470,7 +522,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord>(
|
|
|
470
522
|
}
|
|
471
523
|
}
|
|
472
524
|
|
|
473
|
-
return components as FieldComponents<TFields>
|
|
525
|
+
return components as FieldComponents<TFields, CM>
|
|
474
526
|
}
|
|
475
527
|
|
|
476
528
|
/**
|
|
@@ -487,7 +539,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord>(
|
|
|
487
539
|
*
|
|
488
540
|
* const runtime = Atom.runtime(Layer.empty)
|
|
489
541
|
*
|
|
490
|
-
* const loginForm =
|
|
542
|
+
* const loginForm = FormBuilder.empty
|
|
491
543
|
* .addField("email", Schema.String)
|
|
492
544
|
* .addField("password", Schema.String)
|
|
493
545
|
*
|
|
@@ -521,14 +573,19 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord>(
|
|
|
521
573
|
* @since 1.0.0
|
|
522
574
|
* @category Constructors
|
|
523
575
|
*/
|
|
524
|
-
export const build = <
|
|
525
|
-
|
|
576
|
+
export const build = <
|
|
577
|
+
TFields extends Field.FieldsRecord,
|
|
578
|
+
R,
|
|
579
|
+
ER = never,
|
|
580
|
+
CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>,
|
|
581
|
+
>(
|
|
582
|
+
self: FormBuilder.FormBuilder<TFields, R>,
|
|
526
583
|
options: {
|
|
527
584
|
readonly runtime: Atom.AtomRuntime<R, ER>
|
|
528
|
-
readonly fields:
|
|
585
|
+
readonly fields: CM
|
|
529
586
|
readonly mode?: Mode.FormMode
|
|
530
587
|
},
|
|
531
|
-
): BuiltForm<TFields, R> => {
|
|
588
|
+
): BuiltForm<TFields, R, CM> => {
|
|
532
589
|
const { fields: components, mode, runtime } = options
|
|
533
590
|
const parsedMode = Mode.parse(mode)
|
|
534
591
|
const { fields } = self
|
|
@@ -682,7 +739,7 @@ export const build = <TFields extends Field.FieldsRecord, R, ER = never>(
|
|
|
682
739
|
}, [setFormState, setCrossFieldErrors])
|
|
683
740
|
|
|
684
741
|
const setValue = React.useCallback(<S,>(
|
|
685
|
-
field:
|
|
742
|
+
field: FormBuilder.FieldRef<S>,
|
|
686
743
|
update: S | ((prev: S) => S),
|
|
687
744
|
) => {
|
|
688
745
|
const path = field.key
|
|
@@ -769,9 +826,21 @@ export const build = <TFields extends Field.FieldsRecord, R, ER = never>(
|
|
|
769
826
|
)
|
|
770
827
|
}
|
|
771
828
|
|
|
772
|
-
const submitHelper = <A
|
|
773
|
-
fn: (values: Field.DecodedFromFields<TFields>, get: Atom.FnContext) =>
|
|
774
|
-
) =>
|
|
829
|
+
const submitHelper = <A,>(
|
|
830
|
+
fn: (values: Field.DecodedFromFields<TFields>, get: Atom.FnContext) => A,
|
|
831
|
+
) =>
|
|
832
|
+
runtime.fn<Field.DecodedFromFields<TFields>>()((values, get) => {
|
|
833
|
+
const result = fn(values, get)
|
|
834
|
+
return (Effect.isEffect(result) ? result : Effect.succeed(result)) as Effect.Effect<
|
|
835
|
+
A extends Effect.Effect<infer T, any, any> ? T : A,
|
|
836
|
+
A extends Effect.Effect<any, infer E, any> ? E : never,
|
|
837
|
+
R
|
|
838
|
+
>
|
|
839
|
+
}) as Atom.AtomResultFn<
|
|
840
|
+
Field.DecodedFromFields<TFields>,
|
|
841
|
+
A extends Effect.Effect<infer T, any, any> ? T : A,
|
|
842
|
+
A extends Effect.Effect<any, infer E, any> ? E : never
|
|
843
|
+
>
|
|
775
844
|
|
|
776
845
|
const fieldComponents = makeFieldComponents(
|
|
777
846
|
fields,
|
|
@@ -795,5 +864,34 @@ export const build = <TFields extends Field.FieldsRecord, R, ER = never>(
|
|
|
795
864
|
useForm: useFormHook,
|
|
796
865
|
submit: submitHelper,
|
|
797
866
|
...fieldComponents,
|
|
798
|
-
} as BuiltForm<TFields, R>
|
|
867
|
+
} as BuiltForm<TFields, R, CM>
|
|
799
868
|
}
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* A curried helper that infers the schema type from the field definition.
|
|
872
|
+
* Provides ergonomic type inference when defining field components.
|
|
873
|
+
*
|
|
874
|
+
* @example
|
|
875
|
+
* ```tsx
|
|
876
|
+
* import { FormReact } from "@lucas-barake/effect-form-react"
|
|
877
|
+
*
|
|
878
|
+
* // Without extra props - schema inferred from field
|
|
879
|
+
* const TextInput = FormReact.forField(EmailField)(({ field }) => (
|
|
880
|
+
* <input value={field.value} onChange={e => field.onChange(e.target.value)} />
|
|
881
|
+
* ))
|
|
882
|
+
*
|
|
883
|
+
* // With extra props - just specify the props type
|
|
884
|
+
* const TextInput = FormReact.forField(EmailField)<{ placeholder?: string }>(({ field, props }) => (
|
|
885
|
+
* <input value={field.value} placeholder={props.placeholder} ... />
|
|
886
|
+
* ))
|
|
887
|
+
* ```
|
|
888
|
+
*
|
|
889
|
+
* @since 1.0.0
|
|
890
|
+
* @category Constructors
|
|
891
|
+
*/
|
|
892
|
+
export const forField = <K extends string, S extends Schema.Schema.Any>(
|
|
893
|
+
_field: Field.FieldDef<K, S>,
|
|
894
|
+
) =>
|
|
895
|
+
<P extends Record<string, unknown> = Record<string, never>>(
|
|
896
|
+
component: React.FC<FieldComponentProps<S, P>>,
|
|
897
|
+
): React.FC<FieldComponentProps<S, P>> => component
|
package/src/index.ts
CHANGED
|
@@ -1 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export commonly used modules from the core package.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
export { Field, FormBuilder } from "@lucas-barake/effect-form"
|
|
1
7
|
|
|
8
|
+
/**
|
|
9
|
+
* React bindings for @lucas-barake/effect-form.
|
|
10
|
+
*
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
export * as FormReact from "./FormReact.js"
|