@lucas-barake/effect-form-react 0.25.0 → 0.26.0-beta.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 +12 -13
- package/dist/FormReact.d.ts.map +1 -1
- package/dist/FormReact.js +2 -2
- package/dist/FormReact.js.map +1 -1
- package/package.json +5 -6
- package/src/FormReact.tsx +26 -29
package/dist/FormReact.d.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import * as Atom from "@effect-atom/atom/Atom";
|
|
2
|
-
import type * as Registry from "@effect-atom/atom/Registry";
|
|
3
1
|
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
4
2
|
import type { FieldState as FieldStateModule, Mode } from "@lucas-barake/effect-form";
|
|
5
3
|
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder";
|
|
6
4
|
import type * as Effect from "effect/Effect";
|
|
7
5
|
import * as Option from "effect/Option";
|
|
8
|
-
import type * as ParseResult from "effect/ParseResult";
|
|
9
6
|
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";
|
|
10
9
|
import * as React from "react";
|
|
11
10
|
export type FieldValue<T> = FieldStateModule.FieldValue<T>;
|
|
12
11
|
export type FieldState<E> = FieldStateModule.FieldState<E>;
|
|
@@ -20,11 +19,11 @@ export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, i
|
|
|
20
19
|
type StructFieldsFromSchema<S> = S extends Schema.Struct<infer Fields> ? Fields : S extends {
|
|
21
20
|
readonly from: infer From;
|
|
22
21
|
} ? StructFieldsFromSchema<From> : never;
|
|
23
|
-
export type ArrayItemComponentMap<S extends Schema.
|
|
24
|
-
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.
|
|
25
|
-
} : React.FC<FieldComponentProps<Schema.
|
|
22
|
+
export type ArrayItemComponentMap<S extends Schema.Top> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
23
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.Top ? React.FC<FieldComponentProps<Schema.Codec.Encoded<StructFieldsFromSchema<S>[K]>, any>> : never;
|
|
24
|
+
} : React.FC<FieldComponentProps<Schema.Codec.Encoded<S>, any>>;
|
|
26
25
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
27
|
-
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<Schema.
|
|
26
|
+
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S> ? React.FC<FieldComponentProps<Schema.Codec.Encoded<S>, any>> : TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S> : never;
|
|
28
27
|
};
|
|
29
28
|
export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields>;
|
|
30
29
|
export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>> = {
|
|
@@ -34,14 +33,14 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
|
|
|
34
33
|
readonly lastSubmittedValues: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>;
|
|
35
34
|
readonly submitCount: Atom.Atom<number>;
|
|
36
35
|
readonly validationCount: Atom.Atom<number>;
|
|
37
|
-
readonly schema: Schema.
|
|
36
|
+
readonly schema: Schema.Codec<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
|
|
38
37
|
readonly fields: FieldRefs<TFields>;
|
|
39
38
|
readonly Initialize: React.FC<{
|
|
40
39
|
readonly defaultValues: Field.EncodedFromFields<TFields>;
|
|
41
40
|
readonly validateOnInit?: boolean;
|
|
42
41
|
readonly children: React.ReactNode;
|
|
43
42
|
}>;
|
|
44
|
-
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E |
|
|
43
|
+
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | Schema.SchemaError>;
|
|
45
44
|
readonly validate: Atom.AtomResultFn<void, void, never>;
|
|
46
45
|
readonly reset: Atom.Writable<void, void>;
|
|
47
46
|
readonly revertToLastSubmit: Atom.Writable<void, void>;
|
|
@@ -53,13 +52,13 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
|
|
|
53
52
|
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
54
53
|
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;
|
|
55
54
|
};
|
|
56
|
-
type ExtractArrayItemExtraProps<CM, S extends Schema.
|
|
55
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Top> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
57
56
|
readonly [K in keyof StructFieldsFromSchema<S>]: CM extends {
|
|
58
57
|
readonly [P in K]: infer C;
|
|
59
58
|
} ? ExtractExtraProps<C> : never;
|
|
60
59
|
} : CM extends React.FC<FieldComponentProps<any, infer P>> ? P : never;
|
|
61
|
-
type ArrayFieldComponent<S extends Schema.
|
|
62
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
60
|
+
type ArrayFieldComponent<S extends Schema.Top, ExtraPropsMap> = React.FC<{
|
|
61
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Codec.Encoded<S>>) => React.ReactNode;
|
|
63
62
|
}> & {
|
|
64
63
|
readonly Item: React.FC<{
|
|
65
64
|
readonly index: number;
|
|
@@ -73,7 +72,7 @@ type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> = React.FC<
|
|
|
73
72
|
} ? EP : Record<string, never>>;
|
|
74
73
|
} : unknown);
|
|
75
74
|
export declare const make: {
|
|
76
|
-
<TFields extends Field.FieldsRecord, R extends
|
|
75
|
+
<TFields extends Field.FieldsRecord, R extends AtomRegistry.AtomRegistry, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
|
|
77
76
|
readonly runtime?: Atom.AtomRuntime<any, any>;
|
|
78
77
|
readonly fields: CM;
|
|
79
78
|
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,
|
|
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
|
|
3
|
-
import * as Atom from "@effect-atom/atom/Atom";
|
|
2
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect/atom-react";
|
|
4
3
|
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
5
4
|
import { getNestedValue } from "@lucas-barake/effect-form/Path";
|
|
6
5
|
import * as Layer from "effect/Layer";
|
|
7
6
|
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);
|
package/dist/FormReact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","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","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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucas-barake/effect-form-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0-beta.0",
|
|
4
4
|
"description": "React bindings for @lucas-barake/effect-form",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -38,16 +38,15 @@
|
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"sideEffects": [],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@lucas-barake/effect-form": "^0.
|
|
41
|
+
"@lucas-barake/effect-form": "^0.25.0-beta.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@vitejs/plugin-react": "^5.1.1"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@effect
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"react": "^18.0.0 || ^19.0.0"
|
|
47
|
+
"@effect/atom-react": "^4.0.0-beta.0",
|
|
48
|
+
"effect": "^4.0.0-beta.0",
|
|
49
|
+
"react": "^19.0.0"
|
|
51
50
|
},
|
|
52
51
|
"scripts": {
|
|
53
52
|
"build": "tsc -b tsconfig.json && pnpm babel",
|
package/src/FormReact.tsx
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect
|
|
2
|
-
import * as Atom from "@effect-atom/atom/Atom"
|
|
3
|
-
import type * as Registry from "@effect-atom/atom/Registry"
|
|
1
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect/atom-react"
|
|
4
2
|
import { Field, FormAtoms } from "@lucas-barake/effect-form"
|
|
5
3
|
import type { FieldState as FieldStateModule, Mode } from "@lucas-barake/effect-form"
|
|
6
4
|
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder"
|
|
@@ -8,8 +6,9 @@ import { getNestedValue } from "@lucas-barake/effect-form/Path"
|
|
|
8
6
|
import type * as Effect from "effect/Effect"
|
|
9
7
|
import * as Layer from "effect/Layer"
|
|
10
8
|
import * as Option from "effect/Option"
|
|
11
|
-
import type * as ParseResult from "effect/ParseResult"
|
|
12
9
|
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"
|
|
13
12
|
import * as React from "react"
|
|
14
13
|
import { createContext, useContext } from "react"
|
|
15
14
|
|
|
@@ -32,17 +31,16 @@ type StructFieldsFromSchema<S,> = S extends Schema.Struct<infer Fields> ? Fields
|
|
|
32
31
|
: S extends { readonly from: infer From } ? StructFieldsFromSchema<From>
|
|
33
32
|
: never
|
|
34
33
|
|
|
35
|
-
export type ArrayItemComponentMap<S extends Schema.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
? React.FC<FieldComponentProps<Schema.Schema.Encoded<StructFieldsFromSchema<S>[K]>, any>>
|
|
34
|
+
export type ArrayItemComponentMap<S extends Schema.Top,> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
35
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: StructFieldsFromSchema<S>[K] extends Schema.Top
|
|
36
|
+
? React.FC<FieldComponentProps<Schema.Codec.Encoded<StructFieldsFromSchema<S>[K]>, any>>
|
|
39
37
|
: never
|
|
40
38
|
}
|
|
41
|
-
: React.FC<FieldComponentProps<Schema.
|
|
39
|
+
: React.FC<FieldComponentProps<Schema.Codec.Encoded<S>, any>>
|
|
42
40
|
|
|
43
41
|
export type FieldComponentMap<TFields extends Field.FieldsRecord,> = {
|
|
44
42
|
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S>
|
|
45
|
-
? React.FC<FieldComponentProps<Schema.
|
|
43
|
+
? React.FC<FieldComponentProps<Schema.Codec.Encoded<S>, any>>
|
|
46
44
|
: TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S>
|
|
47
45
|
: never
|
|
48
46
|
}
|
|
@@ -64,7 +62,7 @@ export type BuiltForm<
|
|
|
64
62
|
readonly submitCount: Atom.Atom<number>
|
|
65
63
|
readonly validationCount: Atom.Atom<number>
|
|
66
64
|
|
|
67
|
-
readonly schema: Schema.
|
|
65
|
+
readonly schema: Schema.Codec<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>
|
|
68
66
|
readonly fields: FieldRefs<TFields>
|
|
69
67
|
|
|
70
68
|
readonly Initialize: React.FC<{
|
|
@@ -73,7 +71,7 @@ export type BuiltForm<
|
|
|
73
71
|
readonly children: React.ReactNode
|
|
74
72
|
}>
|
|
75
73
|
|
|
76
|
-
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E |
|
|
74
|
+
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | Schema.SchemaError>
|
|
77
75
|
readonly validate: Atom.AtomResultFn<void, void, never>
|
|
78
76
|
readonly reset: Atom.Writable<void, void>
|
|
79
77
|
readonly revertToLastSubmit: Atom.Writable<void, void>
|
|
@@ -91,17 +89,16 @@ type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldCompone
|
|
|
91
89
|
: never
|
|
92
90
|
}
|
|
93
91
|
|
|
94
|
-
type ExtractArrayItemExtraProps<CM, S extends Schema.
|
|
95
|
-
Schema.Struct.Fields ? {
|
|
92
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Top,> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
96
93
|
readonly [K in keyof StructFieldsFromSchema<S>]: CM extends { readonly [P in K]: infer C } ? ExtractExtraProps<C>
|
|
97
94
|
: never
|
|
98
95
|
}
|
|
99
96
|
: CM extends React.FC<FieldComponentProps<any, infer P>> ? P
|
|
100
97
|
: never
|
|
101
98
|
|
|
102
|
-
type ArrayFieldComponent<S extends Schema.
|
|
99
|
+
type ArrayFieldComponent<S extends Schema.Top, ExtraPropsMap,> =
|
|
103
100
|
& React.FC<{
|
|
104
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
101
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Codec.Encoded<S>>) => React.ReactNode
|
|
105
102
|
}>
|
|
106
103
|
& {
|
|
107
104
|
readonly Item: React.FC<{
|
|
@@ -123,11 +120,11 @@ interface ArrayItemContextValue {
|
|
|
123
120
|
|
|
124
121
|
const ArrayItemContext = createContext<ArrayItemContextValue | null>(null)
|
|
125
122
|
|
|
126
|
-
const makeFieldComponent = <S extends Schema.
|
|
123
|
+
const makeFieldComponent = <S extends Schema.Top, P,>(
|
|
127
124
|
fieldKey: string,
|
|
128
125
|
fieldDef: Field.FieldDef<string, S>,
|
|
129
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
130
|
-
Component: React.FC<FieldComponentProps<Schema.
|
|
126
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Top) => FormAtoms.FieldAtoms,
|
|
127
|
+
Component: React.FC<FieldComponentProps<Schema.Codec.Encoded<S>, P>>,
|
|
131
128
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
132
129
|
): React.FC<P> => {
|
|
133
130
|
const FieldComponent: React.FC<P> = (extraProps) => {
|
|
@@ -139,7 +136,7 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
139
136
|
[fieldPath]
|
|
140
137
|
)
|
|
141
138
|
|
|
142
|
-
const [value, setValue] = useAtom(fieldAtoms.valueAtom) as [Schema.
|
|
139
|
+
const [value, setValue] = useAtom(fieldAtoms.valueAtom) as [Schema.Codec.Encoded<S>, (v: unknown) => void]
|
|
143
140
|
const [isTouched, setTouched] = useAtom(fieldAtoms.touchedAtom)
|
|
144
141
|
const displayError = useAtomValue(fieldAtoms.displayErrorAtom)
|
|
145
142
|
const isDirty = useAtomValue(fieldAtoms.isDirtyAtom)
|
|
@@ -149,7 +146,7 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
149
146
|
useAtomMount(fieldAtoms.triggerValidationAtom)
|
|
150
147
|
|
|
151
148
|
const onChange = React.useCallback(
|
|
152
|
-
(newValue: Schema.
|
|
149
|
+
(newValue: Schema.Codec.Encoded<S>) => setValue(newValue),
|
|
153
150
|
[setValue]
|
|
154
151
|
)
|
|
155
152
|
|
|
@@ -176,17 +173,17 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
176
173
|
return React.memo(FieldComponent) as React.FC<P>
|
|
177
174
|
}
|
|
178
175
|
|
|
179
|
-
const makeArrayFieldComponent = <S extends Schema.
|
|
176
|
+
const makeArrayFieldComponent = <S extends Schema.Top,>(
|
|
180
177
|
fieldKey: string,
|
|
181
178
|
def: Field.ArrayFieldDef<string, S>,
|
|
182
179
|
stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<any>>, Option.Option<FormBuilder.FormState<any>>>,
|
|
183
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
180
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Top) => FormAtoms.FieldAtoms,
|
|
184
181
|
operations: FormAtoms.FormOperations<any>,
|
|
185
182
|
componentMap: ArrayItemComponentMap<S>,
|
|
186
183
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
187
184
|
): ArrayFieldComponent<S, any> => {
|
|
188
185
|
const ArrayWrapper: React.FC<{
|
|
189
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
186
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Codec.Encoded<S>>) => React.ReactNode
|
|
190
187
|
}> = ({ children }) => {
|
|
191
188
|
const arrayCtx = useContext(ArrayItemContext)
|
|
192
189
|
const [formStateOption, setFormState] = useAtom(stateAtom)
|
|
@@ -194,12 +191,12 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any,>(
|
|
|
194
191
|
|
|
195
192
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
196
193
|
const items = React.useMemo(
|
|
197
|
-
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.
|
|
194
|
+
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.Codec.Encoded<S>>,
|
|
198
195
|
[formState.values, fieldPath]
|
|
199
196
|
)
|
|
200
197
|
|
|
201
198
|
const append = React.useCallback(
|
|
202
|
-
(value?: Schema.
|
|
199
|
+
(value?: Schema.Codec.Encoded<S>) => {
|
|
203
200
|
setFormState((prev) => {
|
|
204
201
|
if (Option.isNone(prev)) return prev
|
|
205
202
|
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value))
|
|
@@ -302,7 +299,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
302
299
|
Option.Option<FormBuilder.FormState<TFields>>,
|
|
303
300
|
Option.Option<FormBuilder.FormState<TFields>>
|
|
304
301
|
>,
|
|
305
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
302
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Top) => FormAtoms.FieldAtoms,
|
|
306
303
|
operations: FormAtoms.FormOperations<TFields>,
|
|
307
304
|
componentMap: CM,
|
|
308
305
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
@@ -314,7 +311,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
314
311
|
const arrayComponentMap = (componentMap as Record<string, any>)[key]
|
|
315
312
|
components[key] = makeArrayFieldComponent(
|
|
316
313
|
key,
|
|
317
|
-
def as Field.ArrayFieldDef<string, Schema.
|
|
314
|
+
def as Field.ArrayFieldDef<string, Schema.Top>,
|
|
318
315
|
stateAtom,
|
|
319
316
|
getOrCreateFieldAtoms,
|
|
320
317
|
operations,
|
|
@@ -339,7 +336,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
339
336
|
export const make: {
|
|
340
337
|
<
|
|
341
338
|
TFields extends Field.FieldsRecord,
|
|
342
|
-
R extends
|
|
339
|
+
R extends AtomRegistry.AtomRegistry,
|
|
343
340
|
A,
|
|
344
341
|
E,
|
|
345
342
|
SubmitArgs = void,
|