@lucas-barake/effect-form-react 0.26.0-beta.0 → 0.26.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/FormReact.d.ts +13 -12
- package/dist/FormReact.d.ts.map +1 -1
- package/dist/FormReact.js +4 -3
- package/dist/FormReact.js.map +1 -1
- package/package.json +6 -5
- package/src/FormReact.tsx +31 -27
package/dist/FormReact.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import * as Atom from "@effect-atom/atom/Atom";
|
|
2
|
+
import type * as Registry from "@effect-atom/atom/Registry";
|
|
1
3
|
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
2
4
|
import type { FieldState as FieldStateModule, Mode } from "@lucas-barake/effect-form";
|
|
3
5
|
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder";
|
|
4
6
|
import type * as Effect from "effect/Effect";
|
|
5
7
|
import * as Option from "effect/Option";
|
|
8
|
+
import type * as ParseResult from "effect/ParseResult";
|
|
6
9
|
import type * as Schema from "effect/Schema";
|
|
7
|
-
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
8
|
-
import type * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry";
|
|
9
10
|
import * as React from "react";
|
|
10
11
|
export type FieldValue<T> = FieldStateModule.FieldValue<T>;
|
|
11
12
|
export type FieldState<E> = FieldStateModule.FieldState<E>;
|
|
@@ -19,11 +20,11 @@ export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, i
|
|
|
19
20
|
type StructFieldsFromSchema<S> = S extends Schema.Struct<infer Fields> ? Fields : S extends {
|
|
20
21
|
readonly from: infer From;
|
|
21
22
|
} ? StructFieldsFromSchema<From> : never;
|
|
22
|
-
export type ArrayItemComponentMap<S extends Schema.
|
|
23
|
-
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.
|
|
24
|
-
} : React.FC<FieldComponentProps<Schema.
|
|
23
|
+
export type ArrayItemComponentMap<S extends Schema.Schema.Any> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
24
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.Schema.Any ? React.FC<FieldComponentProps<Schema.Schema.Encoded<StructFieldsFromSchema<S>[K]>, any>> : never;
|
|
25
|
+
} : React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>;
|
|
25
26
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
26
|
-
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<Schema.
|
|
27
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S> : never;
|
|
27
28
|
};
|
|
28
29
|
export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields>;
|
|
29
30
|
export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>> = {
|
|
@@ -33,14 +34,14 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
|
|
|
33
34
|
readonly lastSubmittedValues: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>;
|
|
34
35
|
readonly submitCount: Atom.Atom<number>;
|
|
35
36
|
readonly validationCount: Atom.Atom<number>;
|
|
36
|
-
readonly schema: Schema.
|
|
37
|
+
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
|
|
37
38
|
readonly fields: FieldRefs<TFields>;
|
|
38
39
|
readonly Initialize: React.FC<{
|
|
39
40
|
readonly defaultValues: Field.EncodedFromFields<TFields>;
|
|
40
41
|
readonly validateOnInit?: boolean;
|
|
41
42
|
readonly children: React.ReactNode;
|
|
42
43
|
}>;
|
|
43
|
-
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E |
|
|
44
|
+
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | ParseResult.ParseError>;
|
|
44
45
|
readonly validate: Atom.AtomResultFn<void, void, never>;
|
|
45
46
|
readonly reset: Atom.Writable<void, void>;
|
|
46
47
|
readonly revertToLastSubmit: Atom.Writable<void, void>;
|
|
@@ -52,13 +53,13 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
|
|
|
52
53
|
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
53
54
|
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;
|
|
54
55
|
};
|
|
55
|
-
type ExtractArrayItemExtraProps<CM, S extends Schema.
|
|
56
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
56
57
|
readonly [K in keyof StructFieldsFromSchema<S>]: CM extends {
|
|
57
58
|
readonly [P in K]: infer C;
|
|
58
59
|
} ? ExtractExtraProps<C> : never;
|
|
59
60
|
} : CM extends React.FC<FieldComponentProps<any, infer P>> ? P : never;
|
|
60
|
-
type ArrayFieldComponent<S extends Schema.
|
|
61
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
61
|
+
type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> = React.FC<{
|
|
62
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode;
|
|
62
63
|
}> & {
|
|
63
64
|
readonly Item: React.FC<{
|
|
64
65
|
readonly index: number;
|
|
@@ -72,7 +73,7 @@ type ArrayFieldComponent<S extends Schema.Top, ExtraPropsMap> = React.FC<{
|
|
|
72
73
|
} ? EP : Record<string, never>>;
|
|
73
74
|
} : unknown);
|
|
74
75
|
export declare const make: {
|
|
75
|
-
<TFields extends Field.FieldsRecord, R extends
|
|
76
|
+
<TFields extends Field.FieldsRecord, R extends Registry.AtomRegistry, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
|
|
76
77
|
readonly runtime?: Atom.AtomRuntime<any, any>;
|
|
77
78
|
readonly fields: CM;
|
|
78
79
|
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit;
|
package/dist/FormReact.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../src/FormReact.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AACrF,OAAO,KAAK,KAAK,WAAW,MAAM,uCAAuC,CAAA;AAEzE,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../src/FormReact.tsx"],"names":[],"mappings":"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"}
|
package/dist/FormReact.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect/atom-react";
|
|
2
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect-atom/atom-react";
|
|
3
|
+
import * as Atom from "@effect-atom/atom/Atom";
|
|
3
4
|
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
4
5
|
import { getNestedValue } from "@lucas-barake/effect-form/Path";
|
|
5
6
|
import * as Layer from "effect/Layer";
|
|
6
7
|
import * as Option from "effect/Option";
|
|
7
|
-
import * as Atom from "effect/unstable/reactivity/Atom";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { createContext, useContext } from "react";
|
|
10
10
|
const ArrayItemContext = /*#__PURE__*/createContext(null);
|
|
@@ -26,6 +26,7 @@ const makeFieldComponent = (fieldKey, fieldDef, getOrCreateFieldAtoms, Component
|
|
|
26
26
|
setOnBlurSubmit();
|
|
27
27
|
}, [setTouched, setOnBlurSubmit]);
|
|
28
28
|
const fieldState = React.useMemo(() => ({
|
|
29
|
+
path: fieldPath,
|
|
29
30
|
value,
|
|
30
31
|
onChange,
|
|
31
32
|
onBlur,
|
|
@@ -33,7 +34,7 @@ const makeFieldComponent = (fieldKey, fieldDef, getOrCreateFieldAtoms, Component
|
|
|
33
34
|
isTouched,
|
|
34
35
|
isValidating,
|
|
35
36
|
isDirty
|
|
36
|
-
}), [value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]);
|
|
37
|
+
}), [fieldPath, value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]);
|
|
37
38
|
return _jsx(Component, {
|
|
38
39
|
field: fieldState,
|
|
39
40
|
props: extraProps
|
package/dist/FormReact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomValue","Field","FormAtoms","getNestedValue","Layer","Option","Atom","React","createContext","useContext","ArrayItemContext","makeFieldComponent","fieldKey","fieldDef","getOrCreateFieldAtoms","Component","onBlurSubmitAtom","FieldComponent","extraProps","arrayCtx","fieldPath","parentPath","fieldAtoms","useMemo","schema","value","setValue","valueAtom","isTouched","setTouched","touchedAtom","displayError","displayErrorAtom","isDirty","isDirtyAtom","isValidating","validationAtom","waiting","setOnBlurSubmit","triggerValidationAtom","onChange","useCallback","newValue","onBlur","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","some","appendArrayItem","itemSchema","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","subFieldDefs","extractStructFieldDefs","subDef","itemComponent","key","properties","Item","Proxy","get","target","prop","Reflect","makeFieldComponents","fields","components","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","reactivityKeys","empty","formAtoms","formBuilder","autoSubmitAtom","combinedSchema","fieldRefs","getFieldAtoms","hasChangedSinceSubmitAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","submitCountAtom","validateAtom","validationCountAtom","valuesAtom","InitializeComponent","defaultValues","validateOnInit","registry","state","triggerValidate","isInitialized","setIsInitialized","useState","useEffect","shouldInit","createInitialState","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","lastSubmittedValues","submitCount","validationCount","rootError","Initialize","submit","validate","reset","revertToLastSubmit","setValues","mount"],"sources":["../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomValue","Atom","Field","FormAtoms","getNestedValue","Layer","Option","React","createContext","useContext","ArrayItemContext","makeFieldComponent","fieldKey","fieldDef","getOrCreateFieldAtoms","Component","onBlurSubmitAtom","FieldComponent","extraProps","arrayCtx","fieldPath","parentPath","fieldAtoms","useMemo","schema","value","setValue","valueAtom","isTouched","setTouched","touchedAtom","displayError","displayErrorAtom","isDirty","isDirtyAtom","isValidating","validationAtom","waiting","setOnBlurSubmit","triggerValidationAtom","onChange","useCallback","newValue","onBlur","fieldState","path","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","some","appendArrayItem","itemSchema","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","subFieldDefs","extractStructFieldDefs","subDef","itemComponent","key","properties","Item","Proxy","get","target","prop","Reflect","makeFieldComponents","fields","components","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","reactivityKeys","empty","formAtoms","formBuilder","autoSubmitAtom","combinedSchema","fieldRefs","getFieldAtoms","hasChangedSinceSubmitAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","submitCountAtom","validateAtom","validationCountAtom","valuesAtom","InitializeComponent","defaultValues","validateOnInit","registry","state","triggerValidate","isInitialized","setIsInitialized","useState","useEffect","shouldInit","createInitialState","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","lastSubmittedValues","submitCount","validationCount","rootError","Initialize","submit","validate","reset","revertToLastSubmit","setValues","mount"],"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.26.0
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "React bindings for @lucas-barake/effect-form",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -38,15 +38,16 @@
|
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"sideEffects": [],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@lucas-barake/effect-form": "^0.25.0
|
|
41
|
+
"@lucas-barake/effect-form": "^0.25.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@vitejs/plugin-react": "^5.1.1"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@effect/atom
|
|
48
|
-
"effect": "^
|
|
49
|
-
"
|
|
47
|
+
"@effect-atom/atom": "^0.5.0",
|
|
48
|
+
"@effect-atom/atom-react": "^0.5.0",
|
|
49
|
+
"effect": "^3.19.15",
|
|
50
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
50
51
|
},
|
|
51
52
|
"scripts": {
|
|
52
53
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
package/src/FormReact.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect/atom-react"
|
|
1
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect-atom/atom-react"
|
|
2
|
+
import * as Atom from "@effect-atom/atom/Atom"
|
|
3
|
+
import type * as Registry from "@effect-atom/atom/Registry"
|
|
2
4
|
import { Field, FormAtoms } from "@lucas-barake/effect-form"
|
|
3
5
|
import type { FieldState as FieldStateModule, Mode } from "@lucas-barake/effect-form"
|
|
4
6
|
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder"
|
|
@@ -6,9 +8,8 @@ import { getNestedValue } from "@lucas-barake/effect-form/Path"
|
|
|
6
8
|
import type * as Effect from "effect/Effect"
|
|
7
9
|
import * as Layer from "effect/Layer"
|
|
8
10
|
import * as Option from "effect/Option"
|
|
11
|
+
import type * as ParseResult from "effect/ParseResult"
|
|
9
12
|
import type * as Schema from "effect/Schema"
|
|
10
|
-
import * as Atom from "effect/unstable/reactivity/Atom"
|
|
11
|
-
import type * as AtomRegistry from "effect/unstable/reactivity/AtomRegistry"
|
|
12
13
|
import * as React from "react"
|
|
13
14
|
import { createContext, useContext } from "react"
|
|
14
15
|
|
|
@@ -31,16 +32,17 @@ type StructFieldsFromSchema<S,> = S extends Schema.Struct<infer Fields> ? Fields
|
|
|
31
32
|
: S extends { readonly from: infer From } ? StructFieldsFromSchema<From>
|
|
32
33
|
: never
|
|
33
34
|
|
|
34
|
-
export type ArrayItemComponentMap<S extends Schema.
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
export type ArrayItemComponentMap<S extends Schema.Schema.Any,> = StructFieldsFromSchema<S> extends
|
|
36
|
+
Schema.Struct.Fields ? {
|
|
37
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.Schema.Any
|
|
38
|
+
? React.FC<FieldComponentProps<Schema.Schema.Encoded<StructFieldsFromSchema<S>[K]>, any>>
|
|
37
39
|
: never
|
|
38
40
|
}
|
|
39
|
-
: React.FC<FieldComponentProps<Schema.
|
|
41
|
+
: React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>
|
|
40
42
|
|
|
41
43
|
export type FieldComponentMap<TFields extends Field.FieldsRecord,> = {
|
|
42
44
|
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S>
|
|
43
|
-
? React.FC<FieldComponentProps<Schema.
|
|
45
|
+
? React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>
|
|
44
46
|
: TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S>
|
|
45
47
|
: never
|
|
46
48
|
}
|
|
@@ -62,7 +64,7 @@ export type BuiltForm<
|
|
|
62
64
|
readonly submitCount: Atom.Atom<number>
|
|
63
65
|
readonly validationCount: Atom.Atom<number>
|
|
64
66
|
|
|
65
|
-
readonly schema: Schema.
|
|
67
|
+
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>
|
|
66
68
|
readonly fields: FieldRefs<TFields>
|
|
67
69
|
|
|
68
70
|
readonly Initialize: React.FC<{
|
|
@@ -71,7 +73,7 @@ export type BuiltForm<
|
|
|
71
73
|
readonly children: React.ReactNode
|
|
72
74
|
}>
|
|
73
75
|
|
|
74
|
-
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E |
|
|
76
|
+
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | ParseResult.ParseError>
|
|
75
77
|
readonly validate: Atom.AtomResultFn<void, void, never>
|
|
76
78
|
readonly reset: Atom.Writable<void, void>
|
|
77
79
|
readonly revertToLastSubmit: Atom.Writable<void, void>
|
|
@@ -89,16 +91,17 @@ type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldCompone
|
|
|
89
91
|
: never
|
|
90
92
|
}
|
|
91
93
|
|
|
92
|
-
type ExtractArrayItemExtraProps<CM, S extends Schema.
|
|
94
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any,> = StructFieldsFromSchema<S> extends
|
|
95
|
+
Schema.Struct.Fields ? {
|
|
93
96
|
readonly [K in keyof StructFieldsFromSchema<S>]: CM extends { readonly [P in K]: infer C } ? ExtractExtraProps<C>
|
|
94
97
|
: never
|
|
95
98
|
}
|
|
96
99
|
: CM extends React.FC<FieldComponentProps<any, infer P>> ? P
|
|
97
100
|
: never
|
|
98
101
|
|
|
99
|
-
type ArrayFieldComponent<S extends Schema.
|
|
102
|
+
type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap,> =
|
|
100
103
|
& React.FC<{
|
|
101
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
104
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode
|
|
102
105
|
}>
|
|
103
106
|
& {
|
|
104
107
|
readonly Item: React.FC<{
|
|
@@ -120,11 +123,11 @@ interface ArrayItemContextValue {
|
|
|
120
123
|
|
|
121
124
|
const ArrayItemContext = createContext<ArrayItemContextValue | null>(null)
|
|
122
125
|
|
|
123
|
-
const makeFieldComponent = <S extends Schema.
|
|
126
|
+
const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
124
127
|
fieldKey: string,
|
|
125
128
|
fieldDef: Field.FieldDef<string, S>,
|
|
126
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
127
|
-
Component: React.FC<FieldComponentProps<Schema.
|
|
129
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Schema.Any) => FormAtoms.FieldAtoms,
|
|
130
|
+
Component: React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, P>>,
|
|
128
131
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
129
132
|
): React.FC<P> => {
|
|
130
133
|
const FieldComponent: React.FC<P> = (extraProps) => {
|
|
@@ -136,7 +139,7 @@ const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
|
136
139
|
[fieldPath]
|
|
137
140
|
)
|
|
138
141
|
|
|
139
|
-
const [value, setValue] = useAtom(fieldAtoms.valueAtom) as [Schema.
|
|
142
|
+
const [value, setValue] = useAtom(fieldAtoms.valueAtom) as [Schema.Schema.Encoded<S>, (v: unknown) => void]
|
|
140
143
|
const [isTouched, setTouched] = useAtom(fieldAtoms.touchedAtom)
|
|
141
144
|
const displayError = useAtomValue(fieldAtoms.displayErrorAtom)
|
|
142
145
|
const isDirty = useAtomValue(fieldAtoms.isDirtyAtom)
|
|
@@ -146,7 +149,7 @@ const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
|
146
149
|
useAtomMount(fieldAtoms.triggerValidationAtom)
|
|
147
150
|
|
|
148
151
|
const onChange = React.useCallback(
|
|
149
|
-
(newValue: Schema.
|
|
152
|
+
(newValue: Schema.Schema.Encoded<S>) => setValue(newValue),
|
|
150
153
|
[setValue]
|
|
151
154
|
)
|
|
152
155
|
|
|
@@ -157,6 +160,7 @@ const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
|
157
160
|
|
|
158
161
|
const fieldState = React.useMemo(
|
|
159
162
|
() => ({
|
|
163
|
+
path: fieldPath,
|
|
160
164
|
value,
|
|
161
165
|
onChange,
|
|
162
166
|
onBlur,
|
|
@@ -165,7 +169,7 @@ const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
|
165
169
|
isValidating,
|
|
166
170
|
isDirty
|
|
167
171
|
}),
|
|
168
|
-
[value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]
|
|
172
|
+
[fieldPath, value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]
|
|
169
173
|
)
|
|
170
174
|
|
|
171
175
|
return <Component field={fieldState} props={extraProps} />
|
|
@@ -173,17 +177,17 @@ const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
|
173
177
|
return React.memo(FieldComponent) as React.FC<P>
|
|
174
178
|
}
|
|
175
179
|
|
|
176
|
-
const makeArrayFieldComponent = <S extends Schema.
|
|
180
|
+
const makeArrayFieldComponent = <S extends Schema.Schema.Any,>(
|
|
177
181
|
fieldKey: string,
|
|
178
182
|
def: Field.ArrayFieldDef<string, S>,
|
|
179
183
|
stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<any>>, Option.Option<FormBuilder.FormState<any>>>,
|
|
180
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
184
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Schema.Any) => FormAtoms.FieldAtoms,
|
|
181
185
|
operations: FormAtoms.FormOperations<any>,
|
|
182
186
|
componentMap: ArrayItemComponentMap<S>,
|
|
183
187
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
184
188
|
): ArrayFieldComponent<S, any> => {
|
|
185
189
|
const ArrayWrapper: React.FC<{
|
|
186
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
190
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode
|
|
187
191
|
}> = ({ children }) => {
|
|
188
192
|
const arrayCtx = useContext(ArrayItemContext)
|
|
189
193
|
const [formStateOption, setFormState] = useAtom(stateAtom)
|
|
@@ -191,12 +195,12 @@ const makeArrayFieldComponent = <S extends Schema.Top,>(
|
|
|
191
195
|
|
|
192
196
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
193
197
|
const items = React.useMemo(
|
|
194
|
-
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.
|
|
198
|
+
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.Schema.Encoded<S>>,
|
|
195
199
|
[formState.values, fieldPath]
|
|
196
200
|
)
|
|
197
201
|
|
|
198
202
|
const append = React.useCallback(
|
|
199
|
-
(value?: Schema.
|
|
203
|
+
(value?: Schema.Schema.Encoded<S>) => {
|
|
200
204
|
setFormState((prev) => {
|
|
201
205
|
if (Option.isNone(prev)) return prev
|
|
202
206
|
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value))
|
|
@@ -299,7 +303,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
299
303
|
Option.Option<FormBuilder.FormState<TFields>>,
|
|
300
304
|
Option.Option<FormBuilder.FormState<TFields>>
|
|
301
305
|
>,
|
|
302
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
306
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Schema.Any) => FormAtoms.FieldAtoms,
|
|
303
307
|
operations: FormAtoms.FormOperations<TFields>,
|
|
304
308
|
componentMap: CM,
|
|
305
309
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
@@ -311,7 +315,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
311
315
|
const arrayComponentMap = (componentMap as Record<string, any>)[key]
|
|
312
316
|
components[key] = makeArrayFieldComponent(
|
|
313
317
|
key,
|
|
314
|
-
def as Field.ArrayFieldDef<string, Schema.
|
|
318
|
+
def as Field.ArrayFieldDef<string, Schema.Schema.Any>,
|
|
315
319
|
stateAtom,
|
|
316
320
|
getOrCreateFieldAtoms,
|
|
317
321
|
operations,
|
|
@@ -336,7 +340,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
336
340
|
export const make: {
|
|
337
341
|
<
|
|
338
342
|
TFields extends Field.FieldsRecord,
|
|
339
|
-
R extends
|
|
343
|
+
R extends Registry.AtomRegistry,
|
|
340
344
|
A,
|
|
341
345
|
E,
|
|
342
346
|
SubmitArgs = void,
|