@lucas-barake/effect-form-react 0.20.0 → 0.21.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/{dts/FormReact.d.ts → FormReact.d.ts} +21 -32
- package/dist/FormReact.d.ts.map +1 -0
- package/dist/FormReact.js +238 -0
- package/dist/FormReact.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/package.json +39 -15
- package/src/FormReact.tsx +252 -470
- package/src/index.ts +2 -8
- package/dist/cjs/FormReact.js +0 -402
- package/dist/cjs/FormReact.js.map +0 -1
- package/dist/cjs/index.js +0 -42
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/use-debounced.js +0 -56
- package/dist/cjs/internal/use-debounced.js.map +0 -1
- package/dist/dts/FormReact.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -9
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/use-debounced.d.ts +0 -2
- package/dist/dts/internal/use-debounced.d.ts.map +0 -1
- package/dist/esm/FormReact.js +0 -375
- package/dist/esm/FormReact.js.map +0 -1
- package/dist/esm/index.js +0 -9
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/use-debounced.js +0 -29
- package/dist/esm/internal/use-debounced.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/src/internal/use-debounced.ts +0 -39
|
@@ -1,41 +1,32 @@
|
|
|
1
1
|
import * as Atom from "@effect-atom/atom/Atom";
|
|
2
|
-
import
|
|
2
|
+
import type * as Registry from "@effect-atom/atom/Registry";
|
|
3
|
+
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
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";
|
|
6
|
-
import * as ParseResult from "effect/ParseResult";
|
|
8
|
+
import type * as ParseResult from "effect/ParseResult";
|
|
7
9
|
import type * as Schema from "effect/Schema";
|
|
8
10
|
import * as React from "react";
|
|
9
|
-
export type FieldValue<T> =
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
readonly onChange: (value: E) => void;
|
|
13
|
-
readonly onBlur: () => void;
|
|
14
|
-
readonly error: Option.Option<string>;
|
|
15
|
-
readonly isTouched: boolean;
|
|
16
|
-
readonly isValidating: boolean;
|
|
17
|
-
readonly isDirty: boolean;
|
|
18
|
-
}
|
|
11
|
+
export type FieldValue<T> = FieldStateModule.FieldValue<T>;
|
|
12
|
+
export type FieldState<E> = FieldStateModule.FieldState<E>;
|
|
13
|
+
export type ArrayFieldOperations<TItem> = FieldStateModule.ArrayFieldOperations<TItem>;
|
|
19
14
|
export interface FieldComponentProps<E, P = Record<string, never>> {
|
|
20
15
|
readonly field: FieldState<E>;
|
|
21
16
|
readonly props: P;
|
|
22
17
|
}
|
|
23
18
|
export type FieldComponent<T, P = Record<string, never>> = React.FC<FieldComponentProps<FieldValue<T>, P>>;
|
|
24
19
|
export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P : Record<string, never>;
|
|
25
|
-
|
|
26
|
-
readonly
|
|
20
|
+
type StructFieldsFromSchema<S> = S extends Schema.Struct<infer Fields> ? Fields : S extends {
|
|
21
|
+
readonly from: infer From;
|
|
22
|
+
} ? StructFieldsFromSchema<From> : never;
|
|
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;
|
|
27
25
|
} : React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>;
|
|
28
26
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
29
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;
|
|
30
28
|
};
|
|
31
29
|
export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields>;
|
|
32
|
-
export interface ArrayFieldOperations<TItem> {
|
|
33
|
-
readonly items: ReadonlyArray<TItem>;
|
|
34
|
-
readonly append: (value?: TItem) => void;
|
|
35
|
-
readonly remove: (index: number) => void;
|
|
36
|
-
readonly swap: (indexA: number, indexB: number) => void;
|
|
37
|
-
readonly move: (from: number, to: number) => void;
|
|
38
|
-
}
|
|
39
30
|
export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>> = {
|
|
40
31
|
readonly values: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
|
|
41
32
|
readonly isDirty: Atom.Atom<boolean>;
|
|
@@ -52,17 +43,15 @@ export type BuiltForm<TFields extends Field.FieldsRecord, R, A = void, E = never
|
|
|
52
43
|
readonly reset: Atom.Writable<void, void>;
|
|
53
44
|
readonly revertToLastSubmit: Atom.Writable<void, void>;
|
|
54
45
|
readonly setValues: Atom.Writable<void, Field.EncodedFromFields<TFields>>;
|
|
55
|
-
readonly
|
|
56
|
-
readonly getFieldValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S>>;
|
|
57
|
-
readonly getFieldIsDirty: (field: FormBuilder.FieldRef<any>) => Atom.Atom<boolean>;
|
|
46
|
+
readonly getFieldAtoms: <S>(field: FormBuilder.FieldRef<S>) => FormAtoms.PublicFieldAtoms<S>;
|
|
58
47
|
readonly mount: Atom.Atom<void>;
|
|
59
48
|
readonly KeepAlive: React.FC;
|
|
60
49
|
} & FieldComponents<TFields, CM>;
|
|
61
50
|
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
62
51
|
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;
|
|
63
52
|
};
|
|
64
|
-
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = S extends Schema.Struct
|
|
65
|
-
readonly [K in keyof
|
|
53
|
+
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
54
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: CM extends {
|
|
66
55
|
readonly [P in K]: infer C;
|
|
67
56
|
} ? ExtractExtraProps<C> : never;
|
|
68
57
|
} : CM extends React.FC<FieldComponentProps<any, infer P>> ? P : never;
|
|
@@ -75,14 +64,14 @@ type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> = React.FC<
|
|
|
75
64
|
readonly remove: () => void;
|
|
76
65
|
}) => React.ReactNode);
|
|
77
66
|
}>;
|
|
78
|
-
} & (S extends Schema.Struct
|
|
79
|
-
readonly [K in keyof
|
|
67
|
+
} & (StructFieldsFromSchema<S> extends Schema.Struct.Fields ? {
|
|
68
|
+
readonly [K in keyof StructFieldsFromSchema<S>]: React.FC<ExtraPropsMap extends {
|
|
80
69
|
readonly [P in K]: infer EP;
|
|
81
70
|
} ? EP : Record<string, never>>;
|
|
82
71
|
} : unknown);
|
|
83
72
|
export declare const make: {
|
|
84
|
-
<TFields extends Field.FieldsRecord, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields,
|
|
85
|
-
readonly runtime?: Atom.AtomRuntime<
|
|
73
|
+
<TFields extends Field.FieldsRecord, R extends Registry.AtomRegistry, A, E, SubmitArgs = void, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
|
|
74
|
+
readonly runtime?: Atom.AtomRuntime<any, any>;
|
|
86
75
|
readonly fields: CM;
|
|
87
76
|
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit;
|
|
88
77
|
readonly reactivityKeys?: ReadonlyArray<unknown> | Readonly<Record<string, ReadonlyArray<unknown>>> | undefined;
|
|
@@ -90,8 +79,8 @@ export declare const make: {
|
|
|
90
79
|
readonly decoded: Field.DecodedFromFields<TFields>;
|
|
91
80
|
readonly encoded: Field.EncodedFromFields<TFields>;
|
|
92
81
|
readonly get: Atom.FnContext;
|
|
93
|
-
}) => A | Effect.Effect<A, E,
|
|
94
|
-
}): BuiltForm<TFields,
|
|
82
|
+
}) => A | Effect.Effect<A, E, R>;
|
|
83
|
+
}): BuiltForm<TFields, R, A, E, SubmitArgs, CM>;
|
|
95
84
|
<TFields extends Field.FieldsRecord, R, A, E, SubmitArgs = void, ER = never, CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>>(self: FormBuilder.FormBuilder<TFields, R>, options: {
|
|
96
85
|
readonly runtime: Atom.AtomRuntime<R, ER>;
|
|
97
86
|
readonly fields: CM;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../src/FormReact.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomValue } from "@effect-atom/atom-react";
|
|
3
|
+
import * as Atom from "@effect-atom/atom/Atom";
|
|
4
|
+
import { Field, FormAtoms } from "@lucas-barake/effect-form";
|
|
5
|
+
import { getNestedValue } from "@lucas-barake/effect-form/Path";
|
|
6
|
+
import * as Layer from "effect/Layer";
|
|
7
|
+
import * as Option from "effect/Option";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import { createContext, useContext } from "react";
|
|
10
|
+
const ArrayItemContext = /*#__PURE__*/createContext(null);
|
|
11
|
+
const makeFieldComponent = (fieldKey, fieldDef, getOrCreateFieldAtoms, Component, onBlurSubmitAtom) => {
|
|
12
|
+
const FieldComponent = extraProps => {
|
|
13
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
14
|
+
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
15
|
+
const fieldAtoms = React.useMemo(() => getOrCreateFieldAtoms(fieldPath, fieldDef.schema), [fieldPath]);
|
|
16
|
+
const [value, setValue] = useAtom(fieldAtoms.valueAtom);
|
|
17
|
+
const [isTouched, setTouched] = useAtom(fieldAtoms.touchedAtom);
|
|
18
|
+
const displayError = useAtomValue(fieldAtoms.displayErrorAtom);
|
|
19
|
+
const isDirty = useAtomValue(fieldAtoms.isDirtyAtom);
|
|
20
|
+
const isValidating = useAtomValue(fieldAtoms.validationAtom).waiting;
|
|
21
|
+
const setOnBlurSubmit = useAtomSet(onBlurSubmitAtom);
|
|
22
|
+
useAtomMount(fieldAtoms.triggerValidationAtom);
|
|
23
|
+
const onChange = React.useCallback(newValue => setValue(newValue), [setValue]);
|
|
24
|
+
const onBlur = React.useCallback(() => {
|
|
25
|
+
setTouched(true);
|
|
26
|
+
setOnBlurSubmit();
|
|
27
|
+
}, [setTouched, setOnBlurSubmit]);
|
|
28
|
+
const fieldState = React.useMemo(() => ({
|
|
29
|
+
value,
|
|
30
|
+
onChange,
|
|
31
|
+
onBlur,
|
|
32
|
+
error: displayError,
|
|
33
|
+
isTouched,
|
|
34
|
+
isValidating,
|
|
35
|
+
isDirty
|
|
36
|
+
}), [value, onChange, onBlur, displayError, isTouched, isValidating, isDirty]);
|
|
37
|
+
return _jsx(Component, {
|
|
38
|
+
field: fieldState,
|
|
39
|
+
props: extraProps
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
return React.memo(FieldComponent);
|
|
43
|
+
};
|
|
44
|
+
const makeArrayFieldComponent = (fieldKey, def, stateAtom, getOrCreateFieldAtoms, operations, componentMap, onBlurSubmitAtom) => {
|
|
45
|
+
const ArrayWrapper = ({
|
|
46
|
+
children
|
|
47
|
+
}) => {
|
|
48
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
49
|
+
const [formStateOption, setFormState] = useAtom(stateAtom);
|
|
50
|
+
const formState = Option.getOrThrow(formStateOption);
|
|
51
|
+
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
52
|
+
const items = React.useMemo(() => getNestedValue(formState.values, fieldPath) ?? [], [formState.values, fieldPath]);
|
|
53
|
+
const append = React.useCallback(value => {
|
|
54
|
+
setFormState(prev => {
|
|
55
|
+
if (Option.isNone(prev)) return prev;
|
|
56
|
+
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value));
|
|
57
|
+
});
|
|
58
|
+
}, [fieldPath, setFormState]);
|
|
59
|
+
const remove = React.useCallback(index => {
|
|
60
|
+
setFormState(prev => {
|
|
61
|
+
if (Option.isNone(prev)) return prev;
|
|
62
|
+
return Option.some(operations.removeArrayItem(prev.value, fieldPath, index));
|
|
63
|
+
});
|
|
64
|
+
}, [fieldPath, setFormState]);
|
|
65
|
+
const swap = React.useCallback((indexA, indexB) => {
|
|
66
|
+
setFormState(prev => {
|
|
67
|
+
if (Option.isNone(prev)) return prev;
|
|
68
|
+
return Option.some(operations.swapArrayItems(prev.value, fieldPath, indexA, indexB));
|
|
69
|
+
});
|
|
70
|
+
}, [fieldPath, setFormState]);
|
|
71
|
+
const move = React.useCallback((from, to) => {
|
|
72
|
+
setFormState(prev => {
|
|
73
|
+
if (Option.isNone(prev)) return prev;
|
|
74
|
+
return Option.some(operations.moveArrayItem(prev.value, fieldPath, from, to));
|
|
75
|
+
});
|
|
76
|
+
}, [fieldPath, setFormState]);
|
|
77
|
+
return _jsx(_Fragment, {
|
|
78
|
+
children: children({
|
|
79
|
+
items,
|
|
80
|
+
append,
|
|
81
|
+
remove,
|
|
82
|
+
swap,
|
|
83
|
+
move
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
const ItemWrapper = ({
|
|
88
|
+
children,
|
|
89
|
+
index
|
|
90
|
+
}) => {
|
|
91
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
92
|
+
const setFormState = useAtomSet(stateAtom);
|
|
93
|
+
const parentPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
94
|
+
const itemPath = `${parentPath}[${index}]`;
|
|
95
|
+
const remove = React.useCallback(() => {
|
|
96
|
+
setFormState(prev => {
|
|
97
|
+
if (Option.isNone(prev)) return prev;
|
|
98
|
+
return Option.some(operations.removeArrayItem(prev.value, parentPath, index));
|
|
99
|
+
});
|
|
100
|
+
}, [parentPath, index, setFormState]);
|
|
101
|
+
return _jsx(ArrayItemContext.Provider, {
|
|
102
|
+
value: {
|
|
103
|
+
index,
|
|
104
|
+
parentPath: itemPath
|
|
105
|
+
},
|
|
106
|
+
children: typeof children === "function" ? children({
|
|
107
|
+
remove
|
|
108
|
+
}) : children
|
|
109
|
+
});
|
|
110
|
+
};
|
|
111
|
+
const itemFieldComponents = {};
|
|
112
|
+
const subFieldDefs = Field.extractStructFieldDefs(def.itemSchema);
|
|
113
|
+
if (subFieldDefs) {
|
|
114
|
+
for (const subDef of subFieldDefs) {
|
|
115
|
+
const itemComponent = componentMap[subDef.key];
|
|
116
|
+
itemFieldComponents[subDef.key] = makeFieldComponent(subDef.key, subDef, getOrCreateFieldAtoms, itemComponent, onBlurSubmitAtom);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const properties = {
|
|
120
|
+
Item: ItemWrapper,
|
|
121
|
+
...itemFieldComponents
|
|
122
|
+
};
|
|
123
|
+
return new Proxy(ArrayWrapper, {
|
|
124
|
+
get(target, prop) {
|
|
125
|
+
if (prop in properties) {
|
|
126
|
+
return properties[prop];
|
|
127
|
+
}
|
|
128
|
+
return Reflect.get(target, prop);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
const makeFieldComponents = (fields, stateAtom, getOrCreateFieldAtoms, operations, componentMap, onBlurSubmitAtom) => {
|
|
133
|
+
const components = {};
|
|
134
|
+
for (const [key, def] of Object.entries(fields)) {
|
|
135
|
+
if (Field.isArrayFieldDef(def)) {
|
|
136
|
+
const arrayComponentMap = componentMap[key];
|
|
137
|
+
components[key] = makeArrayFieldComponent(key, def, stateAtom, getOrCreateFieldAtoms, operations, arrayComponentMap, onBlurSubmitAtom);
|
|
138
|
+
} else if (Field.isFieldDef(def)) {
|
|
139
|
+
const fieldComponent = componentMap[key];
|
|
140
|
+
components[key] = makeFieldComponent(key, def, getOrCreateFieldAtoms, fieldComponent, onBlurSubmitAtom);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return components;
|
|
144
|
+
};
|
|
145
|
+
export const make = (self, options) => {
|
|
146
|
+
const {
|
|
147
|
+
fields: components,
|
|
148
|
+
mode,
|
|
149
|
+
onSubmit,
|
|
150
|
+
runtime: providedRuntime,
|
|
151
|
+
reactivityKeys
|
|
152
|
+
} = options;
|
|
153
|
+
const runtime = providedRuntime ?? Atom.runtime(Layer.empty);
|
|
154
|
+
const {
|
|
155
|
+
fields
|
|
156
|
+
} = self;
|
|
157
|
+
const formAtoms = FormAtoms.make({
|
|
158
|
+
formBuilder: self,
|
|
159
|
+
runtime,
|
|
160
|
+
onSubmit,
|
|
161
|
+
reactivityKeys,
|
|
162
|
+
mode
|
|
163
|
+
});
|
|
164
|
+
const {
|
|
165
|
+
autoSubmitAtom,
|
|
166
|
+
combinedSchema,
|
|
167
|
+
fieldRefs,
|
|
168
|
+
getFieldAtoms,
|
|
169
|
+
getOrCreateFieldAtoms,
|
|
170
|
+
hasChangedSinceSubmitAtom,
|
|
171
|
+
isDirtyAtom,
|
|
172
|
+
keepAliveActiveAtom,
|
|
173
|
+
lastSubmittedValuesAtom,
|
|
174
|
+
mountAtom,
|
|
175
|
+
onBlurSubmitAtom,
|
|
176
|
+
operations,
|
|
177
|
+
resetAtom,
|
|
178
|
+
revertToLastSubmitAtom,
|
|
179
|
+
rootErrorAtom,
|
|
180
|
+
setValuesAtom,
|
|
181
|
+
stateAtom,
|
|
182
|
+
submitAtom,
|
|
183
|
+
submitCountAtom,
|
|
184
|
+
valuesAtom
|
|
185
|
+
} = formAtoms;
|
|
186
|
+
const InitializeComponent = ({
|
|
187
|
+
children,
|
|
188
|
+
defaultValues
|
|
189
|
+
}) => {
|
|
190
|
+
const registry = React.useContext(RegistryContext);
|
|
191
|
+
const state = useAtomValue(stateAtom);
|
|
192
|
+
const setFormState = useAtomSet(stateAtom);
|
|
193
|
+
const [isInitialized, setIsInitialized] = React.useState(false);
|
|
194
|
+
React.useEffect(() => {
|
|
195
|
+
const isKeptAlive = registry.get(keepAliveActiveAtom);
|
|
196
|
+
if (!isKeptAlive || Option.isNone(registry.get(stateAtom))) {
|
|
197
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
198
|
+
}
|
|
199
|
+
setIsInitialized(true);
|
|
200
|
+
}, [registry]);
|
|
201
|
+
useAtomMount(autoSubmitAtom);
|
|
202
|
+
if (!isInitialized) return null;
|
|
203
|
+
if (Option.isNone(state)) return null;
|
|
204
|
+
return _jsx(_Fragment, {
|
|
205
|
+
children: children
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
const fieldComponents = makeFieldComponents(fields, stateAtom, getOrCreateFieldAtoms, operations, components, onBlurSubmitAtom);
|
|
209
|
+
const KeepAlive = () => {
|
|
210
|
+
const setKeepAliveActive = useAtomSet(keepAliveActiveAtom);
|
|
211
|
+
React.useLayoutEffect(() => {
|
|
212
|
+
setKeepAliveActive(true);
|
|
213
|
+
return () => setKeepAliveActive(false);
|
|
214
|
+
}, [setKeepAliveActive]);
|
|
215
|
+
useAtomMount(mountAtom);
|
|
216
|
+
return null;
|
|
217
|
+
};
|
|
218
|
+
return {
|
|
219
|
+
values: valuesAtom,
|
|
220
|
+
isDirty: isDirtyAtom,
|
|
221
|
+
hasChangedSinceSubmit: hasChangedSinceSubmitAtom,
|
|
222
|
+
lastSubmittedValues: lastSubmittedValuesAtom,
|
|
223
|
+
submitCount: submitCountAtom,
|
|
224
|
+
rootError: rootErrorAtom,
|
|
225
|
+
schema: combinedSchema,
|
|
226
|
+
fields: fieldRefs,
|
|
227
|
+
Initialize: InitializeComponent,
|
|
228
|
+
submit: submitAtom,
|
|
229
|
+
reset: resetAtom,
|
|
230
|
+
revertToLastSubmit: revertToLastSubmitAtom,
|
|
231
|
+
setValues: setValuesAtom,
|
|
232
|
+
getFieldAtoms,
|
|
233
|
+
mount: mountAtom,
|
|
234
|
+
KeepAlive,
|
|
235
|
+
...fieldComponents
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=FormReact.js.map
|
|
@@ -0,0 +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","valuesAtom","InitializeComponent","defaultValues","registry","state","isInitialized","setIsInitialized","useState","useEffect","isKeptAlive","createInitialState","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","lastSubmittedValues","submitCount","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount"],"sources":["../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE1E,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Field","FieldState","FormBuilder","FormReact"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,EAAEC,UAAU,EAAEC,WAAW,QAAQ,2BAA2B;AAE1E,OAAO,KAAKC,SAAS,MAAM,gBAAiB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,17 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucas-barake/effect-form-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "React bindings for @lucas-barake/effect-form",
|
|
5
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"access": "public",
|
|
8
|
+
"provenance": true
|
|
9
|
+
},
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
".": "./dist/index.js",
|
|
13
|
+
"./*": "./dist/*.js",
|
|
14
|
+
"./internal/*": null
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"src/**/*.ts",
|
|
18
|
+
"src/**/*.tsx",
|
|
19
|
+
"dist/**/*.js",
|
|
20
|
+
"dist/**/*.js.map",
|
|
21
|
+
"dist/**/*.d.ts",
|
|
22
|
+
"dist/**/*.d.ts.map"
|
|
23
|
+
],
|
|
6
24
|
"repository": {
|
|
7
25
|
"type": "git",
|
|
8
26
|
"url": "https://github.com/lucas-barake/effect-form.git"
|
|
9
27
|
},
|
|
10
|
-
"sideEffects": [],
|
|
11
|
-
"author": "Lucas Barake",
|
|
12
28
|
"homepage": "https://github.com/lucas-barake/effect-form",
|
|
29
|
+
"keywords": [
|
|
30
|
+
"effect",
|
|
31
|
+
"form",
|
|
32
|
+
"react",
|
|
33
|
+
"schema",
|
|
34
|
+
"validation",
|
|
35
|
+
"typescript"
|
|
36
|
+
],
|
|
37
|
+
"author": "Lucas Barake",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"sideEffects": [],
|
|
13
40
|
"dependencies": {
|
|
14
|
-
"@lucas-barake/effect-form": "^0.
|
|
41
|
+
"@lucas-barake/effect-form": "^0.20.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@vitejs/plugin-react": "^5.1.1"
|
|
15
45
|
},
|
|
16
46
|
"peerDependencies": {
|
|
17
47
|
"@effect-atom/atom": "^0.5.0",
|
|
@@ -19,15 +49,9 @@
|
|
|
19
49
|
"effect": "^3.19.15",
|
|
20
50
|
"react": "^18.0.0 || ^19.0.0"
|
|
21
51
|
},
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"./package.json": "./package.json",
|
|
27
|
-
".": {
|
|
28
|
-
"types": "./dist/dts/index.d.ts",
|
|
29
|
-
"import": "./dist/esm/index.js",
|
|
30
|
-
"default": "./dist/cjs/index.js"
|
|
31
|
-
}
|
|
52
|
+
"scripts": {
|
|
53
|
+
"build": "tsc -b tsconfig.json && pnpm babel",
|
|
54
|
+
"build:tsgo": "tsgo -b tsconfig.json && pnpm babel",
|
|
55
|
+
"babel": "babel dist --plugins annotate-pure-calls --out-dir dist --source-maps"
|
|
32
56
|
}
|
|
33
57
|
}
|