@lucas-barake/effect-form-react 0.25.0 → 0.26.0-beta.1
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 +4 -3
- package/dist/FormReact.js.map +1 -1
- package/package.json +5 -6
- package/src/FormReact.tsx +28 -30
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);
|
|
@@ -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","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","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.
|
|
3
|
+
"version": "0.26.0-beta.1",
|
|
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.2"
|
|
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.14",
|
|
48
|
+
"effect": "4.0.0-beta.14",
|
|
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
|
|
|
@@ -160,6 +157,7 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
160
157
|
|
|
161
158
|
const fieldState = React.useMemo(
|
|
162
159
|
() => ({
|
|
160
|
+
path: fieldPath,
|
|
163
161
|
value,
|
|
164
162
|
onChange,
|
|
165
163
|
onBlur,
|
|
@@ -168,7 +166,7 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
168
166
|
isValidating,
|
|
169
167
|
isDirty
|
|
170
168
|
}),
|
|
171
|
-
[value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]
|
|
169
|
+
[fieldPath, value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]
|
|
172
170
|
)
|
|
173
171
|
|
|
174
172
|
return <Component field={fieldState} props={extraProps} />
|
|
@@ -176,17 +174,17 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P,>(
|
|
|
176
174
|
return React.memo(FieldComponent) as React.FC<P>
|
|
177
175
|
}
|
|
178
176
|
|
|
179
|
-
const makeArrayFieldComponent = <S extends Schema.
|
|
177
|
+
const makeArrayFieldComponent = <S extends Schema.Top,>(
|
|
180
178
|
fieldKey: string,
|
|
181
179
|
def: Field.ArrayFieldDef<string, S>,
|
|
182
180
|
stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<any>>, Option.Option<FormBuilder.FormState<any>>>,
|
|
183
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
181
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Top) => FormAtoms.FieldAtoms,
|
|
184
182
|
operations: FormAtoms.FormOperations<any>,
|
|
185
183
|
componentMap: ArrayItemComponentMap<S>,
|
|
186
184
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
187
185
|
): ArrayFieldComponent<S, any> => {
|
|
188
186
|
const ArrayWrapper: React.FC<{
|
|
189
|
-
readonly children: (ops: ArrayFieldOperations<Schema.
|
|
187
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Codec.Encoded<S>>) => React.ReactNode
|
|
190
188
|
}> = ({ children }) => {
|
|
191
189
|
const arrayCtx = useContext(ArrayItemContext)
|
|
192
190
|
const [formStateOption, setFormState] = useAtom(stateAtom)
|
|
@@ -194,12 +192,12 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any,>(
|
|
|
194
192
|
|
|
195
193
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
196
194
|
const items = React.useMemo(
|
|
197
|
-
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.
|
|
195
|
+
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.Codec.Encoded<S>>,
|
|
198
196
|
[formState.values, fieldPath]
|
|
199
197
|
)
|
|
200
198
|
|
|
201
199
|
const append = React.useCallback(
|
|
202
|
-
(value?: Schema.
|
|
200
|
+
(value?: Schema.Codec.Encoded<S>) => {
|
|
203
201
|
setFormState((prev) => {
|
|
204
202
|
if (Option.isNone(prev)) return prev
|
|
205
203
|
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value))
|
|
@@ -302,7 +300,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
302
300
|
Option.Option<FormBuilder.FormState<TFields>>,
|
|
303
301
|
Option.Option<FormBuilder.FormState<TFields>>
|
|
304
302
|
>,
|
|
305
|
-
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.
|
|
303
|
+
getOrCreateFieldAtoms: (fieldPath: string, schema: Schema.Top) => FormAtoms.FieldAtoms,
|
|
306
304
|
operations: FormAtoms.FormOperations<TFields>,
|
|
307
305
|
componentMap: CM,
|
|
308
306
|
onBlurSubmitAtom: Atom.Writable<void, void>
|
|
@@ -314,7 +312,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
314
312
|
const arrayComponentMap = (componentMap as Record<string, any>)[key]
|
|
315
313
|
components[key] = makeArrayFieldComponent(
|
|
316
314
|
key,
|
|
317
|
-
def as Field.ArrayFieldDef<string, Schema.
|
|
315
|
+
def as Field.ArrayFieldDef<string, Schema.Top>,
|
|
318
316
|
stateAtom,
|
|
319
317
|
getOrCreateFieldAtoms,
|
|
320
318
|
operations,
|
|
@@ -339,7 +337,7 @@ const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends Fiel
|
|
|
339
337
|
export const make: {
|
|
340
338
|
<
|
|
341
339
|
TFields extends Field.FieldsRecord,
|
|
342
|
-
R extends
|
|
340
|
+
R extends AtomRegistry.AtomRegistry,
|
|
343
341
|
A,
|
|
344
342
|
E,
|
|
345
343
|
SubmitArgs = void,
|