@lucas-barake/effect-form 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/FormAtoms.js +17 -13
- package/dist/cjs/FormAtoms.js.map +1 -1
- package/dist/cjs/FormBuilder.js.map +1 -1
- package/dist/cjs/internal/dirty.js +28 -5
- package/dist/cjs/internal/dirty.js.map +1 -1
- package/dist/dts/FormAtoms.d.ts +2 -1
- package/dist/dts/FormAtoms.d.ts.map +1 -1
- package/dist/dts/FormBuilder.d.ts +11 -2
- package/dist/dts/FormBuilder.d.ts.map +1 -1
- package/dist/dts/internal/dirty.d.ts.map +1 -1
- package/dist/esm/FormAtoms.js +17 -13
- package/dist/esm/FormAtoms.js.map +1 -1
- package/dist/esm/FormBuilder.js.map +1 -1
- package/dist/esm/internal/dirty.js +28 -5
- package/dist/esm/internal/dirty.js.map +1 -1
- package/package.json +1 -1
- package/src/FormAtoms.ts +22 -22
- package/src/FormBuilder.ts +13 -3
- package/src/internal/dirty.ts +35 -7
package/dist/cjs/FormAtoms.js
CHANGED
|
@@ -72,6 +72,7 @@ const make = config => {
|
|
|
72
72
|
const combinedSchema = FormBuilder.buildSchema(formBuilder);
|
|
73
73
|
const stateAtom = Atom.make(Option.none()).pipe(Atom.setIdleTTL(0));
|
|
74
74
|
const crossFieldErrorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
|
|
75
|
+
const valuesAtom = Atom.readable(get => Option.map(get(stateAtom), state => state.values)).pipe(Atom.setIdleTTL(0));
|
|
75
76
|
const dirtyFieldsAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).dirtyFields).pipe(Atom.setIdleTTL(0));
|
|
76
77
|
const isDirtyAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).dirtyFields.size > 0).pipe(Atom.setIdleTTL(0));
|
|
77
78
|
const submitCountAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).submitCount).pipe(Atom.setIdleTTL(0));
|
|
@@ -80,13 +81,13 @@ const make = config => {
|
|
|
80
81
|
const state = Option.getOrThrow(get(stateAtom));
|
|
81
82
|
return Option.match(state.lastSubmittedValues, {
|
|
82
83
|
onNone: () => new Set(),
|
|
83
|
-
onSome: lastSubmitted => (0, _dirty.recalculateDirtySubtree)(new Set(), lastSubmitted, state.values, "")
|
|
84
|
+
onSome: lastSubmitted => (0, _dirty.recalculateDirtySubtree)(new Set(), lastSubmitted.encoded, state.values, "")
|
|
84
85
|
});
|
|
85
86
|
}).pipe(Atom.setIdleTTL(0));
|
|
86
87
|
const hasChangedSinceSubmitAtom = Atom.readable(get => {
|
|
87
88
|
const state = Option.getOrThrow(get(stateAtom));
|
|
88
89
|
if (Option.isNone(state.lastSubmittedValues)) return false;
|
|
89
|
-
if (state.values === state.lastSubmittedValues.value) return false;
|
|
90
|
+
if (state.values === state.lastSubmittedValues.value.encoded) return false;
|
|
90
91
|
return get(changedSinceSubmitFieldsAtom).size > 0;
|
|
91
92
|
}).pipe(Atom.setIdleTTL(0));
|
|
92
93
|
const validationAtomsRegistry = (0, _weakRegistry.createWeakRegistry)();
|
|
@@ -103,12 +104,7 @@ const make = config => {
|
|
|
103
104
|
if (existing) return existing;
|
|
104
105
|
const valueAtom = Atom.writable(get => (0, _path.getNestedValue)(Option.getOrThrow(get(stateAtom)).values, fieldPath), (ctx, value) => {
|
|
105
106
|
const currentState = Option.getOrThrow(ctx.get(stateAtom));
|
|
106
|
-
|
|
107
|
-
ctx.set(stateAtom, Option.some({
|
|
108
|
-
...currentState,
|
|
109
|
-
values: newValues,
|
|
110
|
-
dirtyFields: (0, _dirty.recalculateDirtySubtree)(currentState.dirtyFields, currentState.initialValues, newValues, fieldPath)
|
|
111
|
-
}));
|
|
107
|
+
ctx.set(stateAtom, Option.some(operations.setFieldValue(currentState, fieldPath, value)));
|
|
112
108
|
}).pipe(Atom.setIdleTTL(0));
|
|
113
109
|
const initialValueAtom = Atom.readable(get => (0, _path.getNestedValue)(Option.getOrThrow(get(stateAtom)).initialValues, fieldPath)).pipe(Atom.setIdleTTL(0));
|
|
114
110
|
const touchedAtom = Atom.writable(get => (0, _path.getNestedValue)(Option.getOrThrow(get(stateAtom)).touched, fieldPath) ?? false, (ctx, value) => {
|
|
@@ -149,7 +145,14 @@ const make = config => {
|
|
|
149
145
|
get.set(crossFieldErrorsAtom, routedErrors);
|
|
150
146
|
get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
|
|
151
147
|
})));
|
|
152
|
-
|
|
148
|
+
const submitState = operations.createSubmitState(state.value);
|
|
149
|
+
get.set(stateAtom, Option.some({
|
|
150
|
+
...submitState,
|
|
151
|
+
lastSubmittedValues: Option.some({
|
|
152
|
+
encoded: values,
|
|
153
|
+
decoded
|
|
154
|
+
})
|
|
155
|
+
}));
|
|
153
156
|
const result = config.onSubmit(decoded, get);
|
|
154
157
|
if (Effect.isEffect(result)) {
|
|
155
158
|
return yield* result;
|
|
@@ -176,7 +179,6 @@ const make = config => {
|
|
|
176
179
|
}),
|
|
177
180
|
createSubmitState: state => ({
|
|
178
181
|
...state,
|
|
179
|
-
lastSubmittedValues: Option.some(state.values),
|
|
180
182
|
touched: Field.createTouchedRecord(fields, true),
|
|
181
183
|
submitCount: state.submitCount + 1
|
|
182
184
|
}),
|
|
@@ -253,13 +255,14 @@ const make = config => {
|
|
|
253
255
|
if (Option.isNone(state.lastSubmittedValues)) {
|
|
254
256
|
return state;
|
|
255
257
|
}
|
|
256
|
-
|
|
258
|
+
const lastEncoded = state.lastSubmittedValues.value.encoded;
|
|
259
|
+
if (state.values === lastEncoded) {
|
|
257
260
|
return state;
|
|
258
261
|
}
|
|
259
|
-
const newDirtyFields = (0, _dirty.recalculateDirtySubtree)(state.dirtyFields, state.initialValues,
|
|
262
|
+
const newDirtyFields = (0, _dirty.recalculateDirtySubtree)(state.dirtyFields, state.initialValues, lastEncoded, "");
|
|
260
263
|
return {
|
|
261
264
|
...state,
|
|
262
|
-
values:
|
|
265
|
+
values: lastEncoded,
|
|
263
266
|
dirtyFields: newDirtyFields
|
|
264
267
|
};
|
|
265
268
|
}
|
|
@@ -319,6 +322,7 @@ const make = config => {
|
|
|
319
322
|
return {
|
|
320
323
|
stateAtom,
|
|
321
324
|
crossFieldErrorsAtom,
|
|
325
|
+
valuesAtom,
|
|
322
326
|
dirtyFieldsAtom,
|
|
323
327
|
isDirtyAtom,
|
|
324
328
|
submitCountAtom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormAtoms.js","names":["Atom","_interopRequireWildcard","require","Effect","_Function","Option","Schema","Field","FormBuilder","_dirty","_path","_weakRegistry","Validation","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","pipe","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","recalculateDirtySubtree","values","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","ctx","currentState","newValues","setNestedValue","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","operations","createSubmitState","result","onSubmit","isEffect","fieldRefs","fromEntries","keys","map","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","recalculateDirtyFieldsForArray","removeArrayItem","index","filter","_","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message","isPathUnderRoot","exports"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormAtoms.js","names":["Atom","_interopRequireWildcard","require","Effect","_Function","Option","Schema","Field","FormBuilder","_dirty","_path","_weakRegistry","Validation","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","pipe","setIdleTTL","crossFieldErrorsAtom","Map","valuesAtom","readable","map","state","values","dirtyFieldsAtom","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","match","onNone","Set","onSome","lastSubmitted","recalculateDirtySubtree","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","createWeakRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","getOrCreateFieldAtoms","valueAtom","writable","getNestedValue","ctx","currentState","some","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","setNestedValue","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","recalculateDirtyFieldsForArray","removeArrayItem","index","filter","_","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","lastEncoded","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message","isPathUnderRoot","exports"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilder.js","names":["Predicate","_interopRequireWildcard","require","Schema","_Field","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FieldTypeId","exports","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","isArrayFieldDef","Array","itemSchema","isFieldDef","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"FormBuilder.js","names":["Predicate","_interopRequireWildcard","require","Schema","_Field","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FieldTypeId","exports","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","isArrayFieldDef","Array","itemSchema","isFieldDef","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -38,13 +38,17 @@ function _interopRequireWildcard(e, t) {
|
|
|
38
38
|
* Clears all paths under the array and re-evaluates each item.
|
|
39
39
|
*/
|
|
40
40
|
const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, newItems) => {
|
|
41
|
-
const nextDirty = new Set(Array.from(dirtyFields).filter(path => !(0, _path.isPathUnderRoot)(path, arrayPath)));
|
|
42
41
|
const initialItems = (0, _path.getNestedValue)(initialValues, arrayPath) ?? [];
|
|
42
|
+
if (newItems === initialItems) {
|
|
43
|
+
return dirtyFields;
|
|
44
|
+
}
|
|
45
|
+
const nextDirty = new Set(Array.from(dirtyFields).filter(path => !(0, _path.isPathUnderRoot)(path, arrayPath)));
|
|
43
46
|
const loopLength = Math.max(newItems.length, initialItems.length);
|
|
44
47
|
for (let i = 0; i < loopLength; i++) {
|
|
45
48
|
const itemPath = `${arrayPath}[${i}]`;
|
|
46
49
|
const newItem = newItems[i];
|
|
47
50
|
const initialItem = initialItems[i];
|
|
51
|
+
if (newItem === initialItem) continue;
|
|
48
52
|
const isEqual = Utils.structuralRegion(() => Equal.equals(newItem, initialItem));
|
|
49
53
|
if (!isEqual) {
|
|
50
54
|
nextDirty.add(itemPath);
|
|
@@ -65,6 +69,22 @@ const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, n
|
|
|
65
69
|
*/
|
|
66
70
|
exports.recalculateDirtyFieldsForArray = recalculateDirtyFieldsForArray;
|
|
67
71
|
const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath = "") => {
|
|
72
|
+
const targetValue = rootPath ? (0, _path.getNestedValue)(allValues, rootPath) : allValues;
|
|
73
|
+
const targetInitial = rootPath ? (0, _path.getNestedValue)(allInitial, rootPath) : allInitial;
|
|
74
|
+
if (targetValue === targetInitial) {
|
|
75
|
+
if (rootPath === "") {
|
|
76
|
+
return new Set();
|
|
77
|
+
}
|
|
78
|
+
let changed = false;
|
|
79
|
+
const nextDirty = new Set(currentDirty);
|
|
80
|
+
for (const path of currentDirty) {
|
|
81
|
+
if ((0, _path.isPathUnderRoot)(path, rootPath)) {
|
|
82
|
+
nextDirty.delete(path);
|
|
83
|
+
changed = true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return changed ? nextDirty : currentDirty;
|
|
87
|
+
}
|
|
68
88
|
const nextDirty = new Set(currentDirty);
|
|
69
89
|
if (rootPath === "") {
|
|
70
90
|
nextDirty.clear();
|
|
@@ -75,9 +95,8 @@ const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath =
|
|
|
75
95
|
}
|
|
76
96
|
}
|
|
77
97
|
}
|
|
78
|
-
const targetValue = rootPath ? (0, _path.getNestedValue)(allValues, rootPath) : allValues;
|
|
79
|
-
const targetInitial = rootPath ? (0, _path.getNestedValue)(allInitial, rootPath) : allInitial;
|
|
80
98
|
const recurse = (current, initial, path) => {
|
|
99
|
+
if (current === initial) return;
|
|
81
100
|
if (Array.isArray(current)) {
|
|
82
101
|
const initialArr = initial ?? [];
|
|
83
102
|
for (let i = 0; i < Math.max(current.length, initialArr.length); i++) {
|
|
@@ -85,10 +104,14 @@ const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath =
|
|
|
85
104
|
}
|
|
86
105
|
} else if (current !== null && typeof current === "object") {
|
|
87
106
|
const initialObj = initial ?? {};
|
|
88
|
-
const
|
|
89
|
-
for (const key of allKeys) {
|
|
107
|
+
for (const key in current) {
|
|
90
108
|
recurse(current[key], initialObj[key], path ? `${path}.${key}` : key);
|
|
91
109
|
}
|
|
110
|
+
for (const key in initialObj) {
|
|
111
|
+
if (!(key in current)) {
|
|
112
|
+
recurse(undefined, initialObj[key], path ? `${path}.${key}` : key);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
92
115
|
} else {
|
|
93
116
|
const isEqual = Utils.structuralRegion(() => Equal.equals(current, initial));
|
|
94
117
|
if (!isEqual && path) nextDirty.add(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dirty.js","names":["Equal","_interopRequireWildcard","require","Utils","_path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","isPathUnderRoot","
|
|
1
|
+
{"version":3,"file":"dirty.js","names":["Equal","_interopRequireWildcard","require","Utils","_path","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","initialItems","getNestedValue","nextDirty","Set","Array","from","filter","path","isPathUnderRoot","loopLength","Math","max","length","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","exports","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","targetValue","targetInitial","changed","clear","recurse","current","initial","isArray","initialArr","initialObj","key","undefined"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/FormAtoms.d.ts
CHANGED
|
@@ -47,10 +47,11 @@ export type FieldRefs<TFields extends Field.FieldsRecord> = {
|
|
|
47
47
|
export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E = never> {
|
|
48
48
|
readonly stateAtom: Atom.Writable<Option.Option<FormBuilder.FormState<TFields>>, Option.Option<FormBuilder.FormState<TFields>>>;
|
|
49
49
|
readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>;
|
|
50
|
+
readonly valuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
|
|
50
51
|
readonly dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>;
|
|
51
52
|
readonly isDirtyAtom: Atom.Atom<boolean>;
|
|
52
53
|
readonly submitCountAtom: Atom.Atom<number>;
|
|
53
|
-
readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<
|
|
54
|
+
readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>;
|
|
54
55
|
readonly changedSinceSubmitFieldsAtom: Atom.Atom<ReadonlySet<string>>;
|
|
55
56
|
readonly hasChangedSinceSubmitAtom: Atom.Atom<boolean>;
|
|
56
57
|
readonly submitAtom: Atom.AtomResultFn<void, A, E | ParseResult.ParseError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FormAtoms.d.ts","sourceRoot":"","sources":["../../src/FormAtoms.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import type * as Registry from "@effect-atom/atom/Registry";
|
|
4
5
|
import type * as Effect from "effect/Effect";
|
|
5
6
|
import type * as Option from "effect/Option";
|
|
6
7
|
import * as Schema from "effect/Schema";
|
|
7
8
|
import type { ArrayFieldDef, DecodedFromFields, EncodedFromFields, FieldDef, FieldsRecord } from "./Field.js";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
* @category Models
|
|
12
|
+
*/
|
|
13
|
+
export interface SubmittedValues<TFields extends FieldsRecord> {
|
|
14
|
+
readonly encoded: EncodedFromFields<TFields>;
|
|
15
|
+
readonly decoded: DecodedFromFields<TFields>;
|
|
16
|
+
}
|
|
8
17
|
/**
|
|
9
18
|
* A field reference carrying type and path info for type-safe setValue operations.
|
|
10
19
|
*
|
|
@@ -37,7 +46,7 @@ export type TypeId = typeof TypeId;
|
|
|
37
46
|
export interface FormState<TFields extends FieldsRecord> {
|
|
38
47
|
readonly values: EncodedFromFields<TFields>;
|
|
39
48
|
readonly initialValues: EncodedFromFields<TFields>;
|
|
40
|
-
readonly lastSubmittedValues: Option.Option<
|
|
49
|
+
readonly lastSubmittedValues: Option.Option<SubmittedValues<TFields>>;
|
|
41
50
|
readonly touched: {
|
|
42
51
|
readonly [K in keyof TFields]: boolean;
|
|
43
52
|
};
|
|
@@ -141,7 +150,7 @@ export interface FormBuilder<TFields extends FieldsRecord, R> {
|
|
|
141
150
|
* )
|
|
142
151
|
* ```
|
|
143
152
|
*/
|
|
144
|
-
refineEffect<RD>(this: FormBuilder<TFields, R>, predicate: (values: DecodedFromFields<TFields>) => Effect.Effect<Schema.FilterOutput, never, RD>): FormBuilder<TFields, R | RD
|
|
153
|
+
refineEffect<RD>(this: FormBuilder<TFields, R>, predicate: (values: DecodedFromFields<TFields>) => Effect.Effect<Schema.FilterOutput, never, RD>): FormBuilder<TFields, R | Exclude<RD, Registry.AtomRegistry>>;
|
|
145
154
|
}
|
|
146
155
|
/**
|
|
147
156
|
* Checks if a value is a `FormBuilder`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../src/FormBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAEV,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACb,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"FormBuilder.d.ts","sourceRoot":"","sources":["../../src/FormBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"dirty.d.ts","sourceRoot":"","sources":["../../../src/internal/dirty.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,8BAA8B,GACzC,aAAa,WAAW,CAAC,MAAM,CAAC,EAChC,eAAe,OAAO,EACtB,WAAW,MAAM,EACjB,UAAU,aAAa,CAAC,OAAO,CAAC,KAC/B,WAAW,CAAC,MAAM,CAgCpB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,cAAc,WAAW,CAAC,MAAM,CAAC,EACjC,YAAY,OAAO,EACnB,WAAW,OAAO,EAClB,WAAU,MAAW,KACpB,WAAW,CAAC,MAAM,CA0DpB,CAAA"}
|
package/dist/esm/FormAtoms.js
CHANGED
|
@@ -46,6 +46,7 @@ export const make = config => {
|
|
|
46
46
|
const combinedSchema = FormBuilder.buildSchema(formBuilder);
|
|
47
47
|
const stateAtom = Atom.make(Option.none()).pipe(Atom.setIdleTTL(0));
|
|
48
48
|
const crossFieldErrorsAtom = Atom.make(new Map()).pipe(Atom.setIdleTTL(0));
|
|
49
|
+
const valuesAtom = Atom.readable(get => Option.map(get(stateAtom), state => state.values)).pipe(Atom.setIdleTTL(0));
|
|
49
50
|
const dirtyFieldsAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).dirtyFields).pipe(Atom.setIdleTTL(0));
|
|
50
51
|
const isDirtyAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).dirtyFields.size > 0).pipe(Atom.setIdleTTL(0));
|
|
51
52
|
const submitCountAtom = Atom.readable(get => Option.getOrThrow(get(stateAtom)).submitCount).pipe(Atom.setIdleTTL(0));
|
|
@@ -54,13 +55,13 @@ export const make = config => {
|
|
|
54
55
|
const state = Option.getOrThrow(get(stateAtom));
|
|
55
56
|
return Option.match(state.lastSubmittedValues, {
|
|
56
57
|
onNone: () => new Set(),
|
|
57
|
-
onSome: lastSubmitted => recalculateDirtySubtree(new Set(), lastSubmitted, state.values, "")
|
|
58
|
+
onSome: lastSubmitted => recalculateDirtySubtree(new Set(), lastSubmitted.encoded, state.values, "")
|
|
58
59
|
});
|
|
59
60
|
}).pipe(Atom.setIdleTTL(0));
|
|
60
61
|
const hasChangedSinceSubmitAtom = Atom.readable(get => {
|
|
61
62
|
const state = Option.getOrThrow(get(stateAtom));
|
|
62
63
|
if (Option.isNone(state.lastSubmittedValues)) return false;
|
|
63
|
-
if (state.values === state.lastSubmittedValues.value) return false;
|
|
64
|
+
if (state.values === state.lastSubmittedValues.value.encoded) return false;
|
|
64
65
|
return get(changedSinceSubmitFieldsAtom).size > 0;
|
|
65
66
|
}).pipe(Atom.setIdleTTL(0));
|
|
66
67
|
const validationAtomsRegistry = createWeakRegistry();
|
|
@@ -77,12 +78,7 @@ export const make = config => {
|
|
|
77
78
|
if (existing) return existing;
|
|
78
79
|
const valueAtom = Atom.writable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).values, fieldPath), (ctx, value) => {
|
|
79
80
|
const currentState = Option.getOrThrow(ctx.get(stateAtom));
|
|
80
|
-
|
|
81
|
-
ctx.set(stateAtom, Option.some({
|
|
82
|
-
...currentState,
|
|
83
|
-
values: newValues,
|
|
84
|
-
dirtyFields: recalculateDirtySubtree(currentState.dirtyFields, currentState.initialValues, newValues, fieldPath)
|
|
85
|
-
}));
|
|
81
|
+
ctx.set(stateAtom, Option.some(operations.setFieldValue(currentState, fieldPath, value)));
|
|
86
82
|
}).pipe(Atom.setIdleTTL(0));
|
|
87
83
|
const initialValueAtom = Atom.readable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).initialValues, fieldPath)).pipe(Atom.setIdleTTL(0));
|
|
88
84
|
const touchedAtom = Atom.writable(get => getNestedValue(Option.getOrThrow(get(stateAtom)).touched, fieldPath) ?? false, (ctx, value) => {
|
|
@@ -123,7 +119,14 @@ export const make = config => {
|
|
|
123
119
|
get.set(crossFieldErrorsAtom, routedErrors);
|
|
124
120
|
get.set(stateAtom, Option.some(operations.createSubmitState(state.value)));
|
|
125
121
|
})));
|
|
126
|
-
|
|
122
|
+
const submitState = operations.createSubmitState(state.value);
|
|
123
|
+
get.set(stateAtom, Option.some({
|
|
124
|
+
...submitState,
|
|
125
|
+
lastSubmittedValues: Option.some({
|
|
126
|
+
encoded: values,
|
|
127
|
+
decoded
|
|
128
|
+
})
|
|
129
|
+
}));
|
|
127
130
|
const result = config.onSubmit(decoded, get);
|
|
128
131
|
if (Effect.isEffect(result)) {
|
|
129
132
|
return yield* result;
|
|
@@ -150,7 +153,6 @@ export const make = config => {
|
|
|
150
153
|
}),
|
|
151
154
|
createSubmitState: state => ({
|
|
152
155
|
...state,
|
|
153
|
-
lastSubmittedValues: Option.some(state.values),
|
|
154
156
|
touched: Field.createTouchedRecord(fields, true),
|
|
155
157
|
submitCount: state.submitCount + 1
|
|
156
158
|
}),
|
|
@@ -227,13 +229,14 @@ export const make = config => {
|
|
|
227
229
|
if (Option.isNone(state.lastSubmittedValues)) {
|
|
228
230
|
return state;
|
|
229
231
|
}
|
|
230
|
-
|
|
232
|
+
const lastEncoded = state.lastSubmittedValues.value.encoded;
|
|
233
|
+
if (state.values === lastEncoded) {
|
|
231
234
|
return state;
|
|
232
235
|
}
|
|
233
|
-
const newDirtyFields = recalculateDirtySubtree(state.dirtyFields, state.initialValues,
|
|
236
|
+
const newDirtyFields = recalculateDirtySubtree(state.dirtyFields, state.initialValues, lastEncoded, "");
|
|
234
237
|
return {
|
|
235
238
|
...state,
|
|
236
|
-
values:
|
|
239
|
+
values: lastEncoded,
|
|
237
240
|
dirtyFields: newDirtyFields
|
|
238
241
|
};
|
|
239
242
|
}
|
|
@@ -293,6 +296,7 @@ export const make = config => {
|
|
|
293
296
|
return {
|
|
294
297
|
stateAtom,
|
|
295
298
|
crossFieldErrorsAtom,
|
|
299
|
+
valuesAtom,
|
|
296
300
|
dirtyFieldsAtom,
|
|
297
301
|
isDirtyAtom,
|
|
298
302
|
submitCountAtom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","isPathUnderRoot","setNestedValue","createWeakRegistry","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","dirtyFieldsAtom","readable","get","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","state","match","onNone","Set","onSome","lastSubmitted","values","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","newValues","some","initialValues","initialValueAtom","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","operations","createSubmitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","map","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","setFieldValue","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormAtoms.js","names":["Atom","Effect","pipe","Option","Schema","Field","FormBuilder","recalculateDirtyFieldsForArray","recalculateDirtySubtree","getNestedValue","isPathUnderRoot","setNestedValue","createWeakRegistry","Validation","make","config","formBuilder","runtime","fields","combinedSchema","buildSchema","stateAtom","none","setIdleTTL","crossFieldErrorsAtom","Map","valuesAtom","readable","get","map","state","values","dirtyFieldsAtom","getOrThrow","dirtyFields","isDirtyAtom","size","submitCountAtom","submitCount","lastSubmittedValuesAtom","lastSubmittedValues","changedSinceSubmitFieldsAtom","match","onNone","Set","onSome","lastSubmitted","encoded","hasChangedSinceSubmitAtom","isNone","value","validationAtomsRegistry","fieldAtomsRegistry","getOrCreateValidationAtom","fieldPath","schema","existing","validationAtom","fn","decodeUnknown","asVoid","set","getOrCreateFieldAtoms","valueAtom","writable","ctx","currentState","some","operations","setFieldValue","initialValueAtom","initialValues","touchedAtom","touched","crossFieldErrorAtom","errors","error","undefined","atoms","resetValidationAtoms","Reset","clear","submitAtom","_void","gen","die","decoded","tapError","parseError","sync","routedErrors","routeErrors","createSubmitState","submitState","result","onSubmit","isEffect","fieldRefs","Object","fromEntries","keys","key","makeFieldRef","createInitialState","defaultValues","createTouchedRecord","createResetState","newValues","newDirtyFields","setFormValues","setFieldTouched","appendArrayItem","arrayPath","itemSchema","newItem","getDefaultFromSchema","currentItems","newItems","removeArrayItem","index","filter","_","i","swapArrayItems","indexA","indexB","length","temp","moveArrayItem","fromIndex","toIndex","item","splice","revertToLastSubmit","lastEncoded","resetAtom","fnSync","initialValue","revertToLastSubmitAtom","setValuesAtom","_values","setValueAtomsRegistry","setValue","field","cached","atom","update","currentValue","newValue","currentErrors","nextErrors","errorPath","message"],"sources":["../../src/FormAtoms.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormBuilder.js","names":["Predicate","Schema","isArrayFieldDef","isFieldDef","FieldTypeId","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","Object","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","Array","itemSchema","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormBuilder.js","names":["Predicate","Schema","isArrayFieldDef","isFieldDef","FieldTypeId","Symbol","for","makeFieldRef","key","_S","undefined","TypeId","FormBuilderProto","addField","field","newSelf","Object","create","fields","refinements","merge","other","refine","predicate","_tag","fn","values","refineEffect","isFormBuilder","u","hasProperty","empty","self","buildSchema","schemaFields","def","entries","Array","itemSchema","schema","Struct","refinement","pipe","filter","filterEffect"],"sources":["../../src/FormBuilder.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -11,13 +11,17 @@ import { getNestedValue, isPathUnderRoot } from "./path.js";
|
|
|
11
11
|
* Clears all paths under the array and re-evaluates each item.
|
|
12
12
|
*/
|
|
13
13
|
export const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, arrayPath, newItems) => {
|
|
14
|
-
const nextDirty = new Set(Array.from(dirtyFields).filter(path => !isPathUnderRoot(path, arrayPath)));
|
|
15
14
|
const initialItems = getNestedValue(initialValues, arrayPath) ?? [];
|
|
15
|
+
if (newItems === initialItems) {
|
|
16
|
+
return dirtyFields;
|
|
17
|
+
}
|
|
18
|
+
const nextDirty = new Set(Array.from(dirtyFields).filter(path => !isPathUnderRoot(path, arrayPath)));
|
|
16
19
|
const loopLength = Math.max(newItems.length, initialItems.length);
|
|
17
20
|
for (let i = 0; i < loopLength; i++) {
|
|
18
21
|
const itemPath = `${arrayPath}[${i}]`;
|
|
19
22
|
const newItem = newItems[i];
|
|
20
23
|
const initialItem = initialItems[i];
|
|
24
|
+
if (newItem === initialItem) continue;
|
|
21
25
|
const isEqual = Utils.structuralRegion(() => Equal.equals(newItem, initialItem));
|
|
22
26
|
if (!isEqual) {
|
|
23
27
|
nextDirty.add(itemPath);
|
|
@@ -37,6 +41,22 @@ export const recalculateDirtyFieldsForArray = (dirtyFields, initialValues, array
|
|
|
37
41
|
* @param rootPath - Empty string for full form, or a specific path for targeted update
|
|
38
42
|
*/
|
|
39
43
|
export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, rootPath = "") => {
|
|
44
|
+
const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues;
|
|
45
|
+
const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial;
|
|
46
|
+
if (targetValue === targetInitial) {
|
|
47
|
+
if (rootPath === "") {
|
|
48
|
+
return new Set();
|
|
49
|
+
}
|
|
50
|
+
let changed = false;
|
|
51
|
+
const nextDirty = new Set(currentDirty);
|
|
52
|
+
for (const path of currentDirty) {
|
|
53
|
+
if (isPathUnderRoot(path, rootPath)) {
|
|
54
|
+
nextDirty.delete(path);
|
|
55
|
+
changed = true;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return changed ? nextDirty : currentDirty;
|
|
59
|
+
}
|
|
40
60
|
const nextDirty = new Set(currentDirty);
|
|
41
61
|
if (rootPath === "") {
|
|
42
62
|
nextDirty.clear();
|
|
@@ -47,9 +67,8 @@ export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, roo
|
|
|
47
67
|
}
|
|
48
68
|
}
|
|
49
69
|
}
|
|
50
|
-
const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues;
|
|
51
|
-
const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial;
|
|
52
70
|
const recurse = (current, initial, path) => {
|
|
71
|
+
if (current === initial) return;
|
|
53
72
|
if (Array.isArray(current)) {
|
|
54
73
|
const initialArr = initial ?? [];
|
|
55
74
|
for (let i = 0; i < Math.max(current.length, initialArr.length); i++) {
|
|
@@ -57,10 +76,14 @@ export const recalculateDirtySubtree = (currentDirty, allInitial, allValues, roo
|
|
|
57
76
|
}
|
|
58
77
|
} else if (current !== null && typeof current === "object") {
|
|
59
78
|
const initialObj = initial ?? {};
|
|
60
|
-
const
|
|
61
|
-
for (const key of allKeys) {
|
|
79
|
+
for (const key in current) {
|
|
62
80
|
recurse(current[key], initialObj[key], path ? `${path}.${key}` : key);
|
|
63
81
|
}
|
|
82
|
+
for (const key in initialObj) {
|
|
83
|
+
if (!(key in current)) {
|
|
84
|
+
recurse(undefined, initialObj[key], path ? `${path}.${key}` : key);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
64
87
|
} else {
|
|
65
88
|
const isEqual = Utils.structuralRegion(() => Equal.equals(current, initial));
|
|
66
89
|
if (!isEqual && path) nextDirty.add(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","isPathUnderRoot","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","nextDirty","Set","Array","from","filter","path","
|
|
1
|
+
{"version":3,"file":"dirty.js","names":["Equal","Utils","getNestedValue","isPathUnderRoot","recalculateDirtyFieldsForArray","dirtyFields","initialValues","arrayPath","newItems","initialItems","nextDirty","Set","Array","from","filter","path","loopLength","Math","max","length","i","itemPath","newItem","initialItem","isEqual","structuralRegion","equals","add","delete","recalculateDirtySubtree","currentDirty","allInitial","allValues","rootPath","targetValue","targetInitial","changed","clear","recurse","current","initial","isArray","initialArr","initialObj","key","undefined"],"sources":["../../../src/internal/dirty.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
package/src/FormAtoms.ts
CHANGED
|
@@ -62,10 +62,11 @@ export interface FormAtoms<TFields extends Field.FieldsRecord, R, A = void, E =
|
|
|
62
62
|
Option.Option<FormBuilder.FormState<TFields>>
|
|
63
63
|
>
|
|
64
64
|
readonly crossFieldErrorsAtom: Atom.Writable<Map<string, string>, Map<string, string>>
|
|
65
|
+
readonly valuesAtom: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>
|
|
65
66
|
readonly dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>
|
|
66
67
|
readonly isDirtyAtom: Atom.Atom<boolean>
|
|
67
68
|
readonly submitCountAtom: Atom.Atom<number>
|
|
68
|
-
readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<
|
|
69
|
+
readonly lastSubmittedValuesAtom: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>
|
|
69
70
|
readonly changedSinceSubmitFieldsAtom: Atom.Atom<ReadonlySet<string>>
|
|
70
71
|
readonly hasChangedSinceSubmitAtom: Atom.Atom<boolean>
|
|
71
72
|
|
|
@@ -196,6 +197,10 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
196
197
|
const stateAtom = Atom.make(Option.none<FormBuilder.FormState<TFields>>()).pipe(Atom.setIdleTTL(0))
|
|
197
198
|
const crossFieldErrorsAtom = Atom.make<Map<string, string>>(new Map()).pipe(Atom.setIdleTTL(0))
|
|
198
199
|
|
|
200
|
+
const valuesAtom = Atom.readable((get) => Option.map(get(stateAtom), (state) => state.values)).pipe(
|
|
201
|
+
Atom.setIdleTTL(0),
|
|
202
|
+
)
|
|
203
|
+
|
|
199
204
|
const dirtyFieldsAtom = Atom.readable((get) => Option.getOrThrow(get(stateAtom)).dirtyFields).pipe(
|
|
200
205
|
Atom.setIdleTTL(0),
|
|
201
206
|
)
|
|
@@ -216,14 +221,14 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
216
221
|
const state = Option.getOrThrow(get(stateAtom))
|
|
217
222
|
return Option.match(state.lastSubmittedValues, {
|
|
218
223
|
onNone: () => new Set<string>(),
|
|
219
|
-
onSome: (lastSubmitted) => recalculateDirtySubtree(new Set(), lastSubmitted, state.values, ""),
|
|
224
|
+
onSome: (lastSubmitted) => recalculateDirtySubtree(new Set(), lastSubmitted.encoded, state.values, ""),
|
|
220
225
|
})
|
|
221
226
|
}).pipe(Atom.setIdleTTL(0))
|
|
222
227
|
|
|
223
228
|
const hasChangedSinceSubmitAtom = Atom.readable((get) => {
|
|
224
229
|
const state = Option.getOrThrow(get(stateAtom))
|
|
225
230
|
if (Option.isNone(state.lastSubmittedValues)) return false
|
|
226
|
-
if (state.values === state.lastSubmittedValues.value) return false
|
|
231
|
+
if (state.values === state.lastSubmittedValues.value.encoded) return false
|
|
227
232
|
return get(changedSinceSubmitFieldsAtom).size > 0
|
|
228
233
|
}).pipe(Atom.setIdleTTL(0))
|
|
229
234
|
|
|
@@ -256,20 +261,7 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
256
261
|
(get) => getNestedValue(Option.getOrThrow(get(stateAtom)).values, fieldPath),
|
|
257
262
|
(ctx, value) => {
|
|
258
263
|
const currentState = Option.getOrThrow(ctx.get(stateAtom))
|
|
259
|
-
|
|
260
|
-
ctx.set(
|
|
261
|
-
stateAtom,
|
|
262
|
-
Option.some({
|
|
263
|
-
...currentState,
|
|
264
|
-
values: newValues,
|
|
265
|
-
dirtyFields: recalculateDirtySubtree(
|
|
266
|
-
currentState.dirtyFields,
|
|
267
|
-
currentState.initialValues,
|
|
268
|
-
newValues,
|
|
269
|
-
fieldPath,
|
|
270
|
-
),
|
|
271
|
-
}),
|
|
272
|
-
)
|
|
264
|
+
ctx.set(stateAtom, Option.some(operations.setFieldValue(currentState, fieldPath, value)))
|
|
273
265
|
},
|
|
274
266
|
).pipe(Atom.setIdleTTL(0))
|
|
275
267
|
|
|
@@ -330,7 +322,14 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
330
322
|
})
|
|
331
323
|
),
|
|
332
324
|
)
|
|
333
|
-
|
|
325
|
+
const submitState = operations.createSubmitState(state.value)
|
|
326
|
+
get.set(
|
|
327
|
+
stateAtom,
|
|
328
|
+
Option.some({
|
|
329
|
+
...submitState,
|
|
330
|
+
lastSubmittedValues: Option.some({ encoded: values, decoded }),
|
|
331
|
+
}),
|
|
332
|
+
)
|
|
334
333
|
const result = config.onSubmit(decoded, get)
|
|
335
334
|
if (Effect.isEffect(result)) {
|
|
336
335
|
return yield* (result as Effect.Effect<A, E, R>)
|
|
@@ -364,7 +363,6 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
364
363
|
|
|
365
364
|
createSubmitState: (state) => ({
|
|
366
365
|
...state,
|
|
367
|
-
lastSubmittedValues: Option.some(state.values),
|
|
368
366
|
touched: Field.createTouchedRecord(fields, true) as { readonly [K in keyof TFields]: boolean },
|
|
369
367
|
submitCount: state.submitCount + 1,
|
|
370
368
|
}),
|
|
@@ -468,20 +466,21 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
468
466
|
return state
|
|
469
467
|
}
|
|
470
468
|
|
|
471
|
-
|
|
469
|
+
const lastEncoded = state.lastSubmittedValues.value.encoded
|
|
470
|
+
if (state.values === lastEncoded) {
|
|
472
471
|
return state
|
|
473
472
|
}
|
|
474
473
|
|
|
475
474
|
const newDirtyFields = recalculateDirtySubtree(
|
|
476
475
|
state.dirtyFields,
|
|
477
476
|
state.initialValues,
|
|
478
|
-
|
|
477
|
+
lastEncoded,
|
|
479
478
|
"",
|
|
480
479
|
)
|
|
481
480
|
|
|
482
481
|
return {
|
|
483
482
|
...state,
|
|
484
|
-
values:
|
|
483
|
+
values: lastEncoded,
|
|
485
484
|
dirtyFields: newDirtyFields,
|
|
486
485
|
}
|
|
487
486
|
},
|
|
@@ -546,6 +545,7 @@ export const make = <TFields extends Field.FieldsRecord, R, A, E>(
|
|
|
546
545
|
return {
|
|
547
546
|
stateAtom,
|
|
548
547
|
crossFieldErrorsAtom,
|
|
548
|
+
valuesAtom,
|
|
549
549
|
dirtyFieldsAtom,
|
|
550
550
|
isDirtyAtom,
|
|
551
551
|
submitCountAtom,
|
package/src/FormBuilder.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import type * as Registry from "@effect-atom/atom/Registry"
|
|
4
5
|
import type * as Effect from "effect/Effect"
|
|
5
6
|
import type * as Option from "effect/Option"
|
|
6
7
|
import * as Predicate from "effect/Predicate"
|
|
@@ -16,6 +17,15 @@ import type {
|
|
|
16
17
|
} from "./Field.js"
|
|
17
18
|
import { isArrayFieldDef, isFieldDef } from "./Field.js"
|
|
18
19
|
|
|
20
|
+
/**
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
* @category Models
|
|
23
|
+
*/
|
|
24
|
+
export interface SubmittedValues<TFields extends FieldsRecord> {
|
|
25
|
+
readonly encoded: EncodedFromFields<TFields>
|
|
26
|
+
readonly decoded: DecodedFromFields<TFields>
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
/**
|
|
20
30
|
* Unique identifier for Field references.
|
|
21
31
|
*
|
|
@@ -84,7 +94,7 @@ export type TypeId = typeof TypeId
|
|
|
84
94
|
export interface FormState<TFields extends FieldsRecord> {
|
|
85
95
|
readonly values: EncodedFromFields<TFields>
|
|
86
96
|
readonly initialValues: EncodedFromFields<TFields>
|
|
87
|
-
readonly lastSubmittedValues: Option.Option<
|
|
97
|
+
readonly lastSubmittedValues: Option.Option<SubmittedValues<TFields>>
|
|
88
98
|
readonly touched: { readonly [K in keyof TFields]: boolean }
|
|
89
99
|
readonly submitCount: number
|
|
90
100
|
readonly dirtyFields: ReadonlySet<string>
|
|
@@ -206,7 +216,7 @@ export interface FormBuilder<TFields extends FieldsRecord, R> {
|
|
|
206
216
|
refineEffect<RD>(
|
|
207
217
|
this: FormBuilder<TFields, R>,
|
|
208
218
|
predicate: (values: DecodedFromFields<TFields>) => Effect.Effect<Schema.FilterOutput, never, RD>,
|
|
209
|
-
): FormBuilder<TFields, R | RD
|
|
219
|
+
): FormBuilder<TFields, R | Exclude<RD, Registry.AtomRegistry>>
|
|
210
220
|
}
|
|
211
221
|
|
|
212
222
|
const FormBuilderProto = {
|
|
@@ -244,7 +254,7 @@ const FormBuilderProto = {
|
|
|
244
254
|
refineEffect<TFields extends FieldsRecord, R, RD>(
|
|
245
255
|
this: FormBuilder<TFields, R>,
|
|
246
256
|
predicate: (values: DecodedFromFields<TFields>) => Effect.Effect<Schema.FilterOutput, never, RD>,
|
|
247
|
-
): FormBuilder<TFields, R | RD
|
|
257
|
+
): FormBuilder<TFields, R | Exclude<RD, Registry.AtomRegistry>> {
|
|
248
258
|
const newSelf = Object.create(FormBuilderProto)
|
|
249
259
|
newSelf.fields = this.fields
|
|
250
260
|
newSelf.refinements = [
|
package/src/internal/dirty.ts
CHANGED
|
@@ -17,18 +17,24 @@ export const recalculateDirtyFieldsForArray = (
|
|
|
17
17
|
arrayPath: string,
|
|
18
18
|
newItems: ReadonlyArray<unknown>,
|
|
19
19
|
): ReadonlySet<string> => {
|
|
20
|
+
const initialItems = (getNestedValue(initialValues, arrayPath) ?? []) as ReadonlyArray<unknown>
|
|
21
|
+
|
|
22
|
+
if (newItems === initialItems) {
|
|
23
|
+
return dirtyFields
|
|
24
|
+
}
|
|
25
|
+
|
|
20
26
|
const nextDirty = new Set(
|
|
21
27
|
Array.from(dirtyFields).filter((path) => !isPathUnderRoot(path, arrayPath)),
|
|
22
28
|
)
|
|
23
29
|
|
|
24
|
-
const initialItems = (getNestedValue(initialValues, arrayPath) ?? []) as ReadonlyArray<unknown>
|
|
25
|
-
|
|
26
30
|
const loopLength = Math.max(newItems.length, initialItems.length)
|
|
27
31
|
for (let i = 0; i < loopLength; i++) {
|
|
28
32
|
const itemPath = `${arrayPath}[${i}]`
|
|
29
33
|
const newItem = newItems[i]
|
|
30
34
|
const initialItem = initialItems[i]
|
|
31
35
|
|
|
36
|
+
if (newItem === initialItem) continue
|
|
37
|
+
|
|
32
38
|
const isEqual = Utils.structuralRegion(() => Equal.equals(newItem, initialItem))
|
|
33
39
|
if (!isEqual) {
|
|
34
40
|
nextDirty.add(itemPath)
|
|
@@ -56,6 +62,25 @@ export const recalculateDirtySubtree = (
|
|
|
56
62
|
allValues: unknown,
|
|
57
63
|
rootPath: string = "",
|
|
58
64
|
): ReadonlySet<string> => {
|
|
65
|
+
const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues
|
|
66
|
+
const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial
|
|
67
|
+
|
|
68
|
+
if (targetValue === targetInitial) {
|
|
69
|
+
if (rootPath === "") {
|
|
70
|
+
return new Set()
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
let changed = false
|
|
74
|
+
const nextDirty = new Set(currentDirty)
|
|
75
|
+
for (const path of currentDirty) {
|
|
76
|
+
if (isPathUnderRoot(path, rootPath)) {
|
|
77
|
+
nextDirty.delete(path)
|
|
78
|
+
changed = true
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return changed ? nextDirty : currentDirty
|
|
82
|
+
}
|
|
83
|
+
|
|
59
84
|
const nextDirty = new Set(currentDirty)
|
|
60
85
|
|
|
61
86
|
if (rootPath === "") {
|
|
@@ -68,10 +93,9 @@ export const recalculateDirtySubtree = (
|
|
|
68
93
|
}
|
|
69
94
|
}
|
|
70
95
|
|
|
71
|
-
const targetValue = rootPath ? getNestedValue(allValues, rootPath) : allValues
|
|
72
|
-
const targetInitial = rootPath ? getNestedValue(allInitial, rootPath) : allInitial
|
|
73
|
-
|
|
74
96
|
const recurse = (current: unknown, initial: unknown, path: string): void => {
|
|
97
|
+
if (current === initial) return
|
|
98
|
+
|
|
75
99
|
if (Array.isArray(current)) {
|
|
76
100
|
const initialArr = (initial ?? []) as ReadonlyArray<unknown>
|
|
77
101
|
for (let i = 0; i < Math.max(current.length, initialArr.length); i++) {
|
|
@@ -79,10 +103,14 @@ export const recalculateDirtySubtree = (
|
|
|
79
103
|
}
|
|
80
104
|
} else if (current !== null && typeof current === "object") {
|
|
81
105
|
const initialObj = (initial ?? {}) as Record<string, unknown>
|
|
82
|
-
const
|
|
83
|
-
for (const key of allKeys) {
|
|
106
|
+
for (const key in current as object) {
|
|
84
107
|
recurse((current as Record<string, unknown>)[key], initialObj[key], path ? `${path}.${key}` : key)
|
|
85
108
|
}
|
|
109
|
+
for (const key in initialObj) {
|
|
110
|
+
if (!(key in (current as object))) {
|
|
111
|
+
recurse(undefined, initialObj[key], path ? `${path}.${key}` : key)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
86
114
|
} else {
|
|
87
115
|
const isEqual = Utils.structuralRegion(() => Equal.equals(current, initial))
|
|
88
116
|
if (!isEqual && path) nextDirty.add(path)
|