@lucas-barake/effect-form-react 0.14.0 → 0.15.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/FormReact.js +5 -5
- package/dist/cjs/FormReact.js.map +1 -1
- package/dist/dts/FormReact.d.ts.map +1 -1
- package/dist/esm/FormReact.js +6 -6
- package/dist/esm/FormReact.js.map +1 -1
- package/package.json +2 -2
- package/src/FormReact.tsx +277 -285
package/dist/cjs/FormReact.js
CHANGED
|
@@ -39,13 +39,14 @@ function _interopRequireWildcard(e, t) {
|
|
|
39
39
|
}
|
|
40
40
|
const ArrayItemContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
41
41
|
const AutoSubmitContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
42
|
-
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom,
|
|
42
|
+
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
43
43
|
const FieldComponent = extraProps => {
|
|
44
44
|
const arrayCtx = (0, _react.useContext)(ArrayItemContext);
|
|
45
45
|
const autoSubmitOnBlur = (0, _react.useContext)(AutoSubmitContext);
|
|
46
46
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
47
47
|
const {
|
|
48
48
|
errorAtom,
|
|
49
|
+
isDirtyAtom,
|
|
49
50
|
touchedAtom,
|
|
50
51
|
valueAtom
|
|
51
52
|
} = React.useMemo(() => getOrCreateFieldAtoms(fieldPath), [fieldPath]);
|
|
@@ -104,8 +105,7 @@ const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, dir
|
|
|
104
105
|
}
|
|
105
106
|
autoSubmitOnBlur?.();
|
|
106
107
|
}, [setTouched, validate, value, autoSubmitOnBlur]);
|
|
107
|
-
const
|
|
108
|
-
const isDirty = React.useMemo(() => (0, _Path.isPathOrParentDirty)(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
108
|
+
const isDirty = (0, _atomReact.useAtomValue)(isDirtyAtom);
|
|
109
109
|
const shouldShowError = parsedMode.validation === "onChange" ? isDirty || submitCount > 0 : parsedMode.validation === "onBlur" ? isTouched || submitCount > 0 : submitCount > 0;
|
|
110
110
|
const fieldState = React.useMemo(() => ({
|
|
111
111
|
value,
|
|
@@ -201,7 +201,7 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, errorsAtom, submitCou
|
|
|
201
201
|
};
|
|
202
202
|
const itemDef = _effectForm.Field.makeField(itemKey, itemSchema);
|
|
203
203
|
const itemComponent = componentMap[itemKey];
|
|
204
|
-
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom,
|
|
204
|
+
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, itemComponent);
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
const properties = {
|
|
@@ -225,7 +225,7 @@ const makeFieldComponents = (fields, stateAtom, errorsAtom, submitCountAtom, dir
|
|
|
225
225
|
components[key] = makeArrayFieldComponent(key, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, arrayComponentMap);
|
|
226
226
|
} else if (_effectForm.Field.isFieldDef(def)) {
|
|
227
227
|
const fieldComponent = componentMap[key];
|
|
228
|
-
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom,
|
|
228
|
+
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, fieldComponent);
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
return components;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["_atomReact","require","Atom","_interopRequireWildcard","_effectForm","_Path","Cause","Layer","Option","ParseResult","AST","_react","React","_useDebounced","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ArrayItemContext","createContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","useContext","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","touchedAtom","valueAtom","useMemo","value","setValue","useAtom","isTouched","setTouched","storedError","useAtomValue","submitCount","validationAtom","schema","validationResult","validateImmediate","useAtomSet","shouldDebounceValidation","validation","debounce","autoSubmit","validate","useDebounced","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","Validation","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","dirtyFields","isDirty","isPathOrParentDirty","shouldShowError","fieldState","error","_jsxRuntime","jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","getNestedValue","values","append","prev","isNone","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","Field","makeField","itemComponent","properties","Item","Proxy","target","Reflect","makeFieldComponents","fields","components","key","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","Mode","parse","formAtoms","FormAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","RegistryContext","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","useAtomSubscribe","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","useAtomMount","hasChangedSinceSubmit","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount","exports"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":";;;;;;;AAAA,IAAAA,UAAA,gBAAAC,OAAA;AAQA,IAAAC,IAAA,gBAAAC,uBAAA,cAAAF,OAAA;AACA,IAAAG,WAAA,gBAAAH,OAAA;AAEA,IAAAI,KAAA,gBAAAJ,OAAA;AACA,IAAAK,KAAA,gBAAAH,uBAAA,cAAAF,OAAA;AAEA,IAAAM,KAAA,gBAAAJ,uBAAA,cAAAF,OAAA;AACA,IAAAO,MAAA,gBAAAL,uBAAA,cAAAF,OAAA;AACA,IAAAQ,WAAA,gBAAAN,uBAAA,cAAAF,OAAA;AAEA,IAAAS,GAAA,gBAAAP,uBAAA,cAAAF,OAAA;AACA,IAAAU,MAAA,gBAAAR,uBAAA,cAAAF,OAAA;AAA8B,IAAAW,KAAA,GAAAD,MAAA;AAE9B,IAAAE,aAAA,gBAAAZ,OAAA;AAA0D,SAAAE,wBAAAW,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAb,uBAAA,YAAAA,CAAAW,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAkH1D,MAAMkB,gBAAgB,gBAAG,IAAAtB,MAAA,CAAAuB,aAAa,EAA+B,IAAI,CAAC;AAC1E,MAAMC,iBAAiB,gBAAG,IAAAxB,MAAA,CAAAuB,aAAa,EAAsB,IAAI,CAAC;AAElE,MAAME,kBAAkB,GAAGA,CACzBC,QAAgB,EAChBC,QAAmC,EACnCC,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEC,SAAqE,KACtD;EACf,MAAMC,cAAc,GAAiBC,UAAU,IAAI;IACjD,MAAMC,QAAQ,GAAG,IAAArC,MAAA,CAAAsC,UAAU,EAAChB,gBAAgB,CAAC;IAC7C,MAAMiB,gBAAgB,GAAG,IAAAvC,MAAA,CAAAsC,UAAU,EAACd,iBAAiB,CAAC;IACtD,MAAMgB,SAAS,GAAGH,QAAQ,GAAG,GAAGA,QAAQ,CAACI,UAAU,IAAIf,QAAQ,EAAE,GAAGA,QAAQ;IAE5E,MAAM;MAAEgB,SAAS;MAAEC,WAAW;MAAEC;IAAS,CAAE,GAAG3C,KAAK,CAAC4C,OAAO,CACzD,MAAMZ,qBAAqB,CAACO,SAAS,CAAC,EACtC,CAACA,SAAS,CAAC,CACZ;IAED,MAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAA1D,UAAA,CAAA2D,OAAO,EAACJ,SAAS,CAAqD;IAChG,MAAM,CAACK,SAAS,EAAEC,UAAU,CAAC,GAAG,IAAA7D,UAAA,CAAA2D,OAAO,EAACL,WAAW,CAAC;IACpD,MAAMQ,WAAW,GAAG,IAAA9D,UAAA,CAAA+D,YAAY,EAACV,SAAS,CAAC;IAC3C,MAAMW,WAAW,GAAG,IAAAhE,UAAA,CAAA+D,YAAY,EAACvB,eAAe,CAAC;IAEjD,MAAMyB,cAAc,GAAGrD,KAAK,CAAC4C,OAAO,CAClC,MAAMb,yBAAyB,CAACQ,SAAS,EAAEb,QAAQ,CAAC4B,MAAM,CAAC,EAC3D,CAACf,SAAS,CAAC,CACZ;IACD,MAAMgB,gBAAgB,GAAG,IAAAnE,UAAA,CAAA+D,YAAY,EAACE,cAAc,CAAC;IACrD,MAAMG,iBAAiB,GAAG,IAAApE,UAAA,CAAAqE,UAAU,EAACJ,cAAc,CAAC;IAEpD,MAAMK,wBAAwB,GAAG5B,UAAU,CAAC6B,UAAU,KAAK,UAAU,IAChE7B,UAAU,CAAC8B,QAAQ,KAAK,IAAI,IAC5B,CAAC9B,UAAU,CAAC+B,UAAU;IAC3B,MAAMC,QAAQ,GAAG,IAAA7D,aAAA,CAAA8D,YAAY,EAACP,iBAAiB,EAAEE,wBAAwB,GAAG5B,UAAU,CAAC8B,QAAQ,GAAG,IAAI,CAAC;IAEvG,MAAMI,YAAY,GAAGhE,KAAK,CAACiE,MAAM,CAACpB,KAAK,CAAC;IACxC7C,KAAK,CAACkE,SAAS,CAAC,MAAK;MACnB,IAAIF,YAAY,CAACG,OAAO,KAAKtB,KAAK,EAAE;QAClC;MACF;MACAmB,YAAY,CAACG,OAAO,GAAGtB,KAAK;MAE5B,MAAMuB,cAAc,GAAGtC,UAAU,CAAC6B,UAAU,KAAK,UAAU,IACrD7B,UAAU,CAAC6B,UAAU,KAAK,QAAQ,IAAIX,SAAU,IAChDlB,UAAU,CAAC6B,UAAU,KAAK,UAAU,IAAIP,WAAW,GAAG,CAAE;MAE9D,IAAIgB,cAAc,EAAE;QAClBN,QAAQ,CAACjB,KAAK,CAAC;MACjB;IACF,CAAC,EAAE,CAACA,KAAK,EAAEG,SAAS,EAAEI,WAAW,EAAEU,QAAQ,CAAC,CAAC;IAE7C,MAAMO,iBAAiB,GAA0BrE,KAAK,CAAC4C,OAAO,CAAC,MAAK;MAClE,IAAIW,gBAAgB,CAACe,IAAI,KAAK,SAAS,EAAE;QACvC,MAAMC,UAAU,GAAG7E,KAAK,CAAC8E,aAAa,CAACjB,gBAAgB,CAACkB,KAAK,CAAC;QAC9D,IAAI7E,MAAM,CAAC8E,MAAM,CAACH,UAAU,CAAC,IAAI1E,WAAW,CAAC8E,YAAY,CAACJ,UAAU,CAAC1B,KAAK,CAAC,EAAE;UAC3E,OAAOrD,WAAA,CAAAoF,UAAU,CAACC,iBAAiB,CAACN,UAAU,CAAC1B,KAAK,CAAC;QACvD;MACF;MACA,OAAOjD,MAAM,CAACkF,IAAI,EAAE;IACtB,CAAC,EAAE,CAACvB,gBAAgB,CAAC,CAAC;IAEtB,MAAMwB,YAAY,GAAGxB,gBAAgB,CAACyB,OAAO;IAE7C,MAAMC,eAAe,GAA0BjF,KAAK,CAAC4C,OAAO,CAAC,MAAK;MAChE,IAAIhD,MAAM,CAAC8E,MAAM,CAACL,iBAAiB,CAAC,EAAE;QACpC,OAAOA,iBAAiB;MAC1B;MAEA,IAAIzE,MAAM,CAAC8E,MAAM,CAACxB,WAAW,CAAC,EAAE;QAC9B;QACA;QACA,MAAMgC,qBAAqB,GAAGhC,WAAW,CAACL,KAAK,CAACsC,MAAM,KAAK,OAAO,KAC/D5B,gBAAgB,CAACe,IAAI,KAAK,SAAS,IAAIS,YAAY,CAAC;QAEvD,IAAIG,qBAAqB,EAAE;UACzB,OAAOtF,MAAM,CAACkF,IAAI,EAAE;QACtB;QACA,OAAOlF,MAAM,CAACwF,IAAI,CAAClC,WAAW,CAACL,KAAK,CAACwC,OAAO,CAAC;MAC/C;MAEA,OAAOzF,MAAM,CAACkF,IAAI,EAAE;IACtB,CAAC,EAAE,CAACT,iBAAiB,EAAEnB,WAAW,EAAEK,gBAAgB,EAAEwB,YAAY,CAAC,CAAC;IAEpE,MAAMO,QAAQ,GAAGtF,KAAK,CAACuF,WAAW,CAC/BC,QAAkC,IAAI;MACrC1C,QAAQ,CAAC0C,QAAQ,CAAC;IACpB,CAAC,EACD,CAAC1C,QAAQ,CAAC,CACX;IAED,MAAM2C,MAAM,GAAGzF,KAAK,CAACuF,WAAW,CAAC,MAAK;MACpCtC,UAAU,CAAC,IAAI,CAAC;MAChB,IAAInB,UAAU,CAAC6B,UAAU,KAAK,QAAQ,EAAE;QACtCG,QAAQ,CAACjB,KAAK,CAAC;MACjB;MACAP,gBAAgB,GAAE,CAAE;IACtB,CAAC,EAAE,CAACW,UAAU,EAAEa,QAAQ,EAAEjB,KAAK,EAAEP,gBAAgB,CAAC,CAAC;IAEnD,MAAMoD,WAAW,GAAG,IAAAtG,UAAA,CAAA+D,YAAY,EAACtB,eAAe,CAAC;IACjD,MAAM8D,OAAO,GAAG3F,KAAK,CAAC4C,OAAO,CAC3B,MAAM,IAAAnD,KAAA,CAAAmG,mBAAmB,EAACF,WAAW,EAAEnD,SAAS,CAAC,EACjD,CAACmD,WAAW,EAAEnD,SAAS,CAAC,CACzB;IACD,MAAMsD,eAAe,GAAG/D,UAAU,CAAC6B,UAAU,KAAK,UAAU,GACvDgC,OAAO,IAAIvC,WAAW,GAAG,CAAC,GAC3BtB,UAAU,CAAC6B,UAAU,KAAK,QAAQ,GACjCX,SAAS,IAAII,WAAW,GAAG,CAAC,GAC7BA,WAAW,GAAG,CAAC;IAEnB,MAAM0C,UAAU,GAAyC9F,KAAK,CAAC4C,OAAO,CAAC,OAAO;MAC5EC,KAAK;MACLyC,QAAQ;MACRG,MAAM;MACNM,KAAK,EAAEF,eAAe,GAAGZ,eAAe,GAAGrF,MAAM,CAACkF,IAAI,EAAU;MAChE9B,SAAS;MACT+B,YAAY;MACZY;KACD,CAAC,EAAE,CAAC9C,KAAK,EAAEyC,QAAQ,EAAEG,MAAM,EAAEI,eAAe,EAAEZ,eAAe,EAAEjC,SAAS,EAAE+B,YAAY,EAAEY,OAAO,CAAC,CAAC;IAElG,OAAO,IAAAK,WAAA,CAAAC,GAAA,EAAChE,SAAS;MAACiE,KAAK,EAAEJ,UAAU;MAAEK,KAAK,EAAEhE;IAAU,EAAI;EAC5D,CAAC;EAED,OAAOnC,KAAK,CAACoG,IAAI,CAAClE,cAAc,CAAgB;AAClD,CAAC;AAED,MAAMmE,uBAAuB,GAAGA,CAC9B5E,QAAgB,EAChB6E,GAAmC,EACnCC,SAA8G,EAC9G5E,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEwE,UAAyC,EACzCC,YAAsC,KACP;EAC/B,MAAMC,cAAc,GAAG5G,GAAG,CAAC6G,aAAa,CAACL,GAAG,CAACM,UAAU,CAACC,GAAG,CAAC;EAE5D,MAAMC,YAAY,GAEbA,CAAC;IAAEC;EAAQ,CAAE,KAAI;IACpB,MAAM3E,QAAQ,GAAG,IAAArC,MAAA,CAAAsC,UAAU,EAAChB,gBAAgB,CAAC;IAC7C,MAAM,CAAC2F,eAAe,EAAEC,YAAY,CAAC,GAAG,IAAA7H,UAAA,CAAA2D,OAAO,EAACwD,SAAS,CAAC;IAC1D,MAAMW,SAAS,GAAGtH,MAAM,CAACuH,UAAU,CAACH,eAAe,CAAC;IAEpD,MAAMzE,SAAS,GAAGH,QAAQ,GAAG,GAAGA,QAAQ,CAACI,UAAU,IAAIf,QAAQ,EAAE,GAAGA,QAAQ;IAC5E,MAAM2F,KAAK,GAAGpH,KAAK,CAAC4C,OAAO,CACzB,MAAO,IAAAnD,KAAA,CAAA4H,cAAc,EAACH,SAAS,CAACI,MAAM,EAAE/E,SAAS,CAAC,IAAI,EAA8C,EACpG,CAAC2E,SAAS,CAACI,MAAM,EAAE/E,SAAS,CAAC,CAC9B;IAED,MAAMgF,MAAM,GAAGvH,KAAK,CAACuF,WAAW,CAC7B1C,KAAgC,IAAI;MACnCoE,YAAY,CAAEO,IAAI,IAAI;QACpB,IAAI5H,MAAM,CAAC6H,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAO5H,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAACkB,eAAe,CAACF,IAAI,CAAC3E,KAAK,EAAEN,SAAS,EAAE+D,GAAG,CAACM,UAAU,EAAE/D,KAAK,CAAC,CAAC;MAC9F,CAAC,CAAC;IACJ,CAAC,EACD,CAACN,SAAS,EAAE0E,YAAY,CAAC,CAC1B;IAED,MAAMU,MAAM,GAAG3H,KAAK,CAACuF,WAAW,CAC7BqC,KAAa,IAAI;MAChBX,YAAY,CAAEO,IAAI,IAAI;QACpB,IAAI5H,MAAM,CAAC6H,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAO5H,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAACqB,eAAe,CAACL,IAAI,CAAC3E,KAAK,EAAEN,SAAS,EAAEqF,KAAK,CAAC,CAAC;MAC9E,CAAC,CAAC;IACJ,CAAC,EACD,CAACrF,SAAS,EAAE0E,YAAY,CAAC,CAC1B;IAED,MAAMa,IAAI,GAAG9H,KAAK,CAACuF,WAAW,CAC5B,CAACwC,MAAc,EAAEC,MAAc,KAAI;MACjCf,YAAY,CAAEO,IAAI,IAAI;QACpB,IAAI5H,MAAM,CAAC6H,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAO5H,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAACyB,cAAc,CAACT,IAAI,CAAC3E,KAAK,EAAEN,SAAS,EAAEwF,MAAM,EAAEC,MAAM,CAAC,CAAC;MACtF,CAAC,CAAC;IACJ,CAAC,EACD,CAACzF,SAAS,EAAE0E,YAAY,CAAC,CAC1B;IAED,MAAMiB,IAAI,GAAGlI,KAAK,CAACuF,WAAW,CAC5B,CAAC4C,IAAY,EAAEC,EAAU,KAAI;MAC3BnB,YAAY,CAAEO,IAAI,IAAI;QACpB,IAAI5H,MAAM,CAAC6H,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAO5H,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAAC6B,aAAa,CAACb,IAAI,CAAC3E,KAAK,EAAEN,SAAS,EAAE4F,IAAI,EAAEC,EAAE,CAAC,CAAC;MAC/E,CAAC,CAAC;IACJ,CAAC,EACD,CAAC7F,SAAS,EAAE0E,YAAY,CAAC,CAC1B;IAED,OAAO,IAAAjB,WAAA,CAAAC,GAAA,EAAAD,WAAA,CAAAsC,QAAA;MAAAvB,QAAA,EAAGA,QAAQ,CAAC;QAAEK,KAAK;QAAEG,MAAM;QAAEI,MAAM;QAAEG,IAAI;QAAEI;MAAI,CAAE;IAAC,EAAI;EAC/D,CAAC;EAED,MAAMK,WAAW,GAGZA,CAAC;IAAExB,QAAQ;IAAEa;EAAK,CAAE,KAAI;IAC3B,MAAMxF,QAAQ,GAAG,IAAArC,MAAA,CAAAsC,UAAU,EAAChB,gBAAgB,CAAC;IAC7C,MAAM4F,YAAY,GAAG,IAAA7H,UAAA,CAAAqE,UAAU,EAAC8C,SAAS,CAAC;IAE1C,MAAM/D,UAAU,GAAGJ,QAAQ,GAAG,GAAGA,QAAQ,CAACI,UAAU,IAAIf,QAAQ,EAAE,GAAGA,QAAQ;IAC7E,MAAM+G,QAAQ,GAAG,GAAGhG,UAAU,IAAIoF,KAAK,GAAG;IAE1C,MAAMD,MAAM,GAAG3H,KAAK,CAACuF,WAAW,CAAC,MAAK;MACpC0B,YAAY,CAAEO,IAAI,IAAI;QACpB,IAAI5H,MAAM,CAAC6H,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAO5H,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAACqB,eAAe,CAACL,IAAI,CAAC3E,KAAK,EAAEL,UAAU,EAAEoF,KAAK,CAAC,CAAC;MAC/E,CAAC,CAAC;IACJ,CAAC,EAAE,CAACpF,UAAU,EAAEoF,KAAK,EAAEX,YAAY,CAAC,CAAC;IAErC,OACE,IAAAjB,WAAA,CAAAC,GAAA,EAAC5E,gBAAgB,CAACoH,QAAQ;MAAC5F,KAAK,EAAE;QAAE+E,KAAK;QAAEpF,UAAU,EAAEgG;MAAQ,CAAE;MAAAzB,QAAA,EAC9D,OAAOA,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAAC;QAAEY;MAAM,CAAE,CAAC,GAAGZ;IAAQ,EACvC;EAEhC,CAAC;EAED,MAAM2B,mBAAmB,GAA6B,EAAE;EAExD,IAAIhC,cAAc,EAAE;IAClB,MAAMG,GAAG,GAAGP,GAAG,CAACM,UAAU,CAACC,GAAsB;IACjD,KAAK,MAAM8B,IAAI,IAAI9B,GAAG,CAAC+B,kBAAkB,EAAE;MACzC,MAAMC,OAAO,GAAGF,IAAI,CAACG,IAAc;MACnC,MAAMlC,UAAU,GAAG;QAAEC,GAAG,EAAE8B,IAAI,CAACI;MAAI,CAAuB;MAC1D,MAAMC,OAAO,GAAGxJ,WAAA,CAAAyJ,KAAK,CAACC,SAAS,CAACL,OAAO,EAAEjC,UAAU,CAAC;MACpD,MAAMuC,aAAa,GAAI1C,YAAwE,CAACoC,OAAO,CAAC;MACxGH,mBAAmB,CAACG,OAAO,CAAC,GAAGrH,kBAAkB,CAC/CqH,OAAO,EACPG,OAAO,EACPrH,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBmH,aAAa,CACd;IACH;EACF;EAEA,MAAMC,UAAU,GAA4B;IAC1CC,IAAI,EAAEd,WAAW;IACjB,GAAGG;GACJ;EAED,OAAO,IAAIY,KAAK,CAACxC,YAAY,EAAE;IAC7BhG,GAAGA,CAACyI,MAAM,EAAEZ,IAAI;MACd,IAAIA,IAAI,IAAIS,UAAU,EAAE;QACtB,OAAOA,UAAU,CAACT,IAAc,CAAC;MACnC;MACA,OAAOa,OAAO,CAAC1I,GAAG,CAACyI,MAAM,EAAEZ,IAAI,CAAC;IAClC;GACD,CAAgC;AACnC,CAAC;AAED,MAAMc,mBAAmB,GAAGA,CAI1BC,MAAe,EACfnD,SAGC,EACD5E,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEwE,UAA6C,EAC7CC,YAAgB,KACgB;EAChC,MAAMkD,UAAU,GAAwB,EAAE;EAE1C,KAAK,MAAM,CAACC,GAAG,EAAEtD,GAAG,CAAC,IAAIpF,MAAM,CAAC2I,OAAO,CAACH,MAAM,CAAC,EAAE;IAC/C,IAAIlK,WAAA,CAAAyJ,KAAK,CAACa,eAAe,CAACxD,GAAG,CAAC,EAAE;MAC9B,MAAMyD,iBAAiB,GAAItD,YAAoC,CAACmD,GAAG,CAAC;MACpED,UAAU,CAACC,GAAG,CAAC,GAAGvD,uBAAuB,CACvCuD,GAAG,EACHtD,GAAqD,EACrDC,SAAS,EACT5E,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBwE,UAAU,EACVuD,iBAAiB,CAClB;IACH,CAAC,MAAM,IAAIvK,WAAA,CAAAyJ,KAAK,CAACe,UAAU,CAAC1D,GAAG,CAAC,EAAE;MAChC,MAAM2D,cAAc,GAAIxD,YAAwE,CAACmD,GAAG,CAAC;MACrGD,UAAU,CAACC,GAAG,CAAC,GAAGpI,kBAAkB,CAClCoI,GAAG,EACHtD,GAAG,EACH3E,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBiI,cAAc,CACf;IACH;EACF;EAEA,OAAON,UAA0C;AACnD,CAAC;AAEM,MAAMO,IAAI,GAgDbA,CAACC,IAAS,EAAEC,OAAY,KAAS;EACnC,MAAM;IAAEV,MAAM,EAAEC,UAAU;IAAEU,IAAI;IAAEC,QAAQ;IAAEC,OAAO,EAAEC;EAAe,CAAE,GAAGJ,OAAO;EAChF,MAAMG,OAAO,GAAGC,eAAe,IAAIlL,IAAI,CAACiL,OAAO,CAAC5K,KAAK,CAAC8K,KAAK,CAAC;EAC5D,MAAM3I,UAAU,GAAGtC,WAAA,CAAAkL,IAAI,CAACC,KAAK,CAACN,IAAI,CAAC;EACnC,MAAM;IAAEX;EAAM,CAAE,GAAGS,IAAI;EAEvB,MAAMS,SAAS,GAAGpL,WAAA,CAAAqL,SAAS,CAACX,IAAI,CAAC;IAC/BY,WAAW,EAAEX,IAAI;IACjBI,OAAO;IACPD;GACD,CAAC;EAEF,MAAM;IACJS,cAAc;IACdlJ,eAAe;IACfF,UAAU;IACVqJ,SAAS;IACTC,YAAY;IACZjJ,qBAAqB;IACrBD,yBAAyB;IACzBmJ,yBAAyB;IACzBC,WAAW;IACXC,mBAAmB;IACnBC,uBAAuB;IACvBC,SAAS;IACT9E,UAAU;IACV+E,SAAS;IACTC,sBAAsB;IACtBC,aAAa;IACb3I,QAAQ;IACR4I,aAAa;IACbnF,SAAS;IACToF,UAAU;IACV/J,eAAe;IACfgK;EAAU,CACX,GAAGhB,SAAS;EAEb,MAAMiB,mBAAmB,GAGpBA,CAAC;IAAE9E,QAAQ;IAAE+E;EAAa,CAAE,KAAI;IACnC,MAAMC,QAAQ,GAAG/L,KAAK,CAACqC,UAAU,CAACjD,UAAA,CAAA4M,eAAe,CAAC;IAClD,MAAMC,KAAK,GAAG,IAAA7M,UAAA,CAAA+D,YAAY,EAACoD,SAAS,CAAC;IACrC,MAAMU,YAAY,GAAG,IAAA7H,UAAA,CAAAqE,UAAU,EAAC8C,SAAS,CAAC;IAC1C,MAAM2F,UAAU,GAAG,IAAA9M,UAAA,CAAAqE,UAAU,EAACkI,UAAU,CAAC;IACzC,MAAMQ,gBAAgB,GAAGnM,KAAK,CAACiE,MAAM,CAAC,KAAK,CAAC;IAE5CjE,KAAK,CAACkE,SAAS,CAAC,MAAK;MACnB,MAAMkI,WAAW,GAAGL,QAAQ,CAACjL,GAAG,CAACsK,mBAAmB,CAAC;MACrD,MAAMiB,YAAY,GAAGN,QAAQ,CAACjL,GAAG,CAACyF,SAAS,CAAC;MAE5C,IAAI,CAAC6F,WAAW,EAAE;QAChBnF,YAAY,CAACrH,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAAC8F,kBAAkB,CAACR,aAAa,CAAC,CAAC,CAAC;MACzE,CAAC,MAAM,IAAIlM,MAAM,CAAC6H,MAAM,CAAC4E,YAAY,CAAC,EAAE;QACtCpF,YAAY,CAACrH,MAAM,CAACwF,IAAI,CAACoB,UAAU,CAAC8F,kBAAkB,CAACR,aAAa,CAAC,CAAC,CAAC;MACzE;MAEAK,gBAAgB,CAAChI,OAAO,GAAG,IAAI;MAC/B;IACF,CAAC,EAAE,CAAC4H,QAAQ,CAAC,CAAC;IAEd,MAAMQ,mBAAmB,GAAG,IAAAtM,aAAA,CAAA8D,YAAY,EAAC,MAAK;MAC5C,MAAMyI,WAAW,GAAGT,QAAQ,CAACjL,GAAG,CAACyF,SAAS,CAAC;MAC3C,IAAI3G,MAAM,CAAC6H,MAAM,CAAC+E,WAAW,CAAC,EAAE;MAChCN,UAAU,CAACO,SAAS,CAAC;IACvB,CAAC,EAAE3K,UAAU,CAAC+B,UAAU,IAAI/B,UAAU,CAAC6B,UAAU,KAAK,UAAU,GAAG7B,UAAU,CAAC8B,QAAQ,GAAG,IAAI,CAAC;IAE9F;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,MAAM8I,aAAa,GAAG1M,KAAK,CAACiE,MAAM,CAAU,IAAI,CAAC;IACjD,MAAM0I,iBAAiB,GAAG3M,KAAK,CAACiE,MAAM,CAAC,KAAK,CAAC;IAC7C,MAAM2I,gBAAgB,GAAG5M,KAAK,CAACiE,MAAM,CAAC,KAAK,CAAC;IAE5C,IAAA7E,UAAA,CAAAyN,gBAAgB,EACdtG,SAAS,EACTvG,KAAK,CAACuF,WAAW,CAAC,MAAK;MACrB,IAAI,CAAC4G,gBAAgB,CAAChI,OAAO,EAAE;MAE/B,MAAM8H,KAAK,GAAGF,QAAQ,CAACjL,GAAG,CAACyF,SAAS,CAAC;MACrC,IAAI3G,MAAM,CAAC6H,MAAM,CAACwE,KAAK,CAAC,EAAE;MAC1B,MAAMa,aAAa,GAAGb,KAAK,CAACpJ,KAAK,CAACyE,MAAM;MAExC;MACA;MACA,IAAIwF,aAAa,KAAKJ,aAAa,CAACvI,OAAO,EAAE;MAC7CuI,aAAa,CAACvI,OAAO,GAAG2I,aAAa;MAErC,IAAI,CAAChL,UAAU,CAAC+B,UAAU,IAAI/B,UAAU,CAAC6B,UAAU,KAAK,UAAU,EAAE;MAEpE,MAAMoJ,YAAY,GAAGhB,QAAQ,CAACjL,GAAG,CAAC6K,UAAU,CAAC;MAC7C,IAAIoB,YAAY,CAAC/H,OAAO,EAAE;QACxB2H,iBAAiB,CAACxI,OAAO,GAAG,IAAI;MAClC,CAAC,MAAM;QACLoI,mBAAmB,EAAE;MACvB;IACF,CAAC,EAAE,CAACA,mBAAmB,EAAER,QAAQ,CAAC,CAAC,EACnC;MAAEiB,SAAS,EAAE;IAAK,CAAE,CACrB;IAED,IAAA5N,UAAA,CAAAyN,gBAAgB,EACdlB,UAAU,EACV3L,KAAK,CAACuF,WAAW,CACd0H,MAAM,IAAI;MACT,IAAI,CAACnL,UAAU,CAAC+B,UAAU,IAAI/B,UAAU,CAAC6B,UAAU,KAAK,UAAU,EAAE;MAEpE,MAAMuJ,YAAY,GAAGD,MAAM,CAACjI,OAAO;MACnC,MAAMmI,aAAa,GAAGP,gBAAgB,CAACzI,OAAO;MAC9CyI,gBAAgB,CAACzI,OAAO,GAAG+I,YAAY;MAEvC;MACA,IAAIC,aAAa,IAAI,CAACD,YAAY,EAAE;QAClC,IAAIP,iBAAiB,CAACxI,OAAO,EAAE;UAC7BwI,iBAAiB,CAACxI,OAAO,GAAG,KAAK;UACjCoI,mBAAmB,EAAE;QACvB;MACF;IACF,CAAC,EACD,CAACA,mBAAmB,CAAC,CACtB,EACD;MAAES,SAAS,EAAE;IAAK,CAAE,CACrB;IAED,MAAMI,gBAAgB,GAAGpN,KAAK,CAACuF,WAAW,CAAC,MAAK;MAC9C,IAAI,CAACzD,UAAU,CAAC+B,UAAU,IAAI/B,UAAU,CAAC6B,UAAU,KAAK,QAAQ,EAAE;MAElE,MAAM6I,WAAW,GAAGT,QAAQ,CAACjL,GAAG,CAACyF,SAAS,CAAC;MAC3C,IAAI3G,MAAM,CAAC6H,MAAM,CAAC+E,WAAW,CAAC,EAAE;MAEhC,MAAM;QAAEa,mBAAmB;QAAE/F;MAAM,CAAE,GAAGkF,WAAW,CAAC3J,KAAK;MACzD,IAAIjD,MAAM,CAAC8E,MAAM,CAAC2I,mBAAmB,CAAC,IAAI/F,MAAM,KAAK+F,mBAAmB,CAACxK,KAAK,CAACyK,OAAO,EAAE;MAExFpB,UAAU,CAACO,SAAS,CAAC;IACvB,CAAC,EAAE,CAACV,QAAQ,EAAEG,UAAU,CAAC,CAAC;IAE1B,IAAItM,MAAM,CAAC6H,MAAM,CAACwE,KAAK,CAAC,EAAE,OAAO,IAAI;IAErC,OAAO,IAAAjG,WAAA,CAAAC,GAAA,EAAC1E,iBAAiB,CAACkH,QAAQ;MAAC5F,KAAK,EAAEuK,gBAAgB;MAAArG,QAAA,EAAGA;IAAQ,EAA8B;EACrG,CAAC;EAED,MAAMwG,eAAe,GAAG9D,mBAAmB,CACzCC,MAAM,EACNnD,SAAS,EACT5E,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBwE,UAAU,EACVmD,UAAU,CACX;EAED,MAAM6D,SAAS,GAAaA,CAAA,KAAK;IAC/B,MAAMC,kBAAkB,GAAG,IAAArO,UAAA,CAAAqE,UAAU,EAAC2H,mBAAmB,CAAC;IAE1DpL,KAAK,CAAC0N,eAAe,CAAC,MAAK;MACzBD,kBAAkB,CAAC,IAAI,CAAC;MACxB,OAAO,MAAMA,kBAAkB,CAAC,KAAK,CAAC;IACxC,CAAC,EAAE,CAACA,kBAAkB,CAAC,CAAC;IAExB,IAAArO,UAAA,CAAAuO,YAAY,EAACrC,SAAS,CAAC;IACvB,OAAO,IAAI;EACb,CAAC;EAED,OAAO;IACLhE,MAAM,EAAEsE,UAAU;IAClBjG,OAAO,EAAEwF,WAAW;IACpByC,qBAAqB,EAAE1C,yBAAyB;IAChDmC,mBAAmB,EAAEhC,uBAAuB;IAC5CjI,WAAW,EAAExB,eAAe;IAC5BiM,SAAS,EAAEpC,aAAa;IACxBnI,MAAM,EAAEyH,cAAc;IACtBrB,MAAM,EAAEsB,SAAS;IACjB8C,UAAU,EAAEjC,mBAAmB;IAC/BkC,MAAM,EAAEpC,UAAU;IAClBqC,KAAK,EAAEzC,SAAS;IAChB0C,kBAAkB,EAAEzC,sBAAsB;IAC1C0C,SAAS,EAAExC,aAAa;IACxB5I,QAAQ;IACRmI,YAAY;IACZkD,KAAK,EAAE7C,SAAS;IAChBkC,SAAS;IACT,GAAGD;GACJ;AACH,CAAC;AAAAa,OAAA,CAAAlE,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["_atomReact","require","Atom","_interopRequireWildcard","_effectForm","_Path","Cause","Layer","Option","ParseResult","AST","_react","React","_useDebounced","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ArrayItemContext","createContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","useContext","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","isDirtyAtom","touchedAtom","valueAtom","useMemo","value","setValue","useAtom","isTouched","setTouched","storedError","useAtomValue","submitCount","validationAtom","schema","validationResult","validateImmediate","useAtomSet","shouldDebounceValidation","validation","debounce","autoSubmit","validate","useDebounced","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","Validation","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","isDirty","shouldShowError","fieldState","error","_jsxRuntime","jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","dirtyFieldsAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","getNestedValue","values","append","prev","isNone","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","Field","makeField","itemComponent","properties","Item","Proxy","target","Reflect","makeFieldComponents","fields","components","key","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","Mode","parse","formAtoms","FormAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","RegistryContext","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","useAtomSubscribe","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","useAtomMount","hasChangedSinceSubmit","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount","exports"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../../src/FormReact.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,IAAI,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"FormReact.d.ts","sourceRoot":"","sources":["../../src/FormReact.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/FormReact.js
CHANGED
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import { RegistryContext, useAtom, useAtomMount, useAtomSet, useAtomSubscribe, useAtomValue } from "@effect-atom/atom-react";
|
|
3
3
|
import * as Atom from "@effect-atom/atom/Atom";
|
|
4
4
|
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form";
|
|
5
|
-
import { getNestedValue
|
|
5
|
+
import { getNestedValue } from "@lucas-barake/effect-form/Path";
|
|
6
6
|
import * as Cause from "effect/Cause";
|
|
7
7
|
import * as Layer from "effect/Layer";
|
|
8
8
|
import * as Option from "effect/Option";
|
|
@@ -13,13 +13,14 @@ import { createContext, useContext } from "react";
|
|
|
13
13
|
import { useDebounced } from "./internal/use-debounced.js";
|
|
14
14
|
const ArrayItemContext = /*#__PURE__*/createContext(null);
|
|
15
15
|
const AutoSubmitContext = /*#__PURE__*/createContext(null);
|
|
16
|
-
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom,
|
|
16
|
+
const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, Component) => {
|
|
17
17
|
const FieldComponent = extraProps => {
|
|
18
18
|
const arrayCtx = useContext(ArrayItemContext);
|
|
19
19
|
const autoSubmitOnBlur = useContext(AutoSubmitContext);
|
|
20
20
|
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
21
21
|
const {
|
|
22
22
|
errorAtom,
|
|
23
|
+
isDirtyAtom,
|
|
23
24
|
touchedAtom,
|
|
24
25
|
valueAtom
|
|
25
26
|
} = React.useMemo(() => getOrCreateFieldAtoms(fieldPath), [fieldPath]);
|
|
@@ -78,8 +79,7 @@ const makeFieldComponent = (fieldKey, fieldDef, errorsAtom, submitCountAtom, dir
|
|
|
78
79
|
}
|
|
79
80
|
autoSubmitOnBlur?.();
|
|
80
81
|
}, [setTouched, validate, value, autoSubmitOnBlur]);
|
|
81
|
-
const
|
|
82
|
-
const isDirty = React.useMemo(() => isPathOrParentDirty(dirtyFields, fieldPath), [dirtyFields, fieldPath]);
|
|
82
|
+
const isDirty = useAtomValue(isDirtyAtom);
|
|
83
83
|
const shouldShowError = parsedMode.validation === "onChange" ? isDirty || submitCount > 0 : parsedMode.validation === "onBlur" ? isTouched || submitCount > 0 : submitCount > 0;
|
|
84
84
|
const fieldState = React.useMemo(() => ({
|
|
85
85
|
value,
|
|
@@ -175,7 +175,7 @@ const makeArrayFieldComponent = (fieldKey, def, stateAtom, errorsAtom, submitCou
|
|
|
175
175
|
};
|
|
176
176
|
const itemDef = Field.makeField(itemKey, itemSchema);
|
|
177
177
|
const itemComponent = componentMap[itemKey];
|
|
178
|
-
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom,
|
|
178
|
+
itemFieldComponents[itemKey] = makeFieldComponent(itemKey, itemDef, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, itemComponent);
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
181
|
const properties = {
|
|
@@ -199,7 +199,7 @@ const makeFieldComponents = (fields, stateAtom, errorsAtom, submitCountAtom, dir
|
|
|
199
199
|
components[key] = makeArrayFieldComponent(key, def, stateAtom, errorsAtom, submitCountAtom, dirtyFieldsAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, operations, arrayComponentMap);
|
|
200
200
|
} else if (Field.isFieldDef(def)) {
|
|
201
201
|
const fieldComponent = componentMap[key];
|
|
202
|
-
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom,
|
|
202
|
+
components[key] = makeFieldComponent(key, def, errorsAtom, submitCountAtom, parsedMode, getOrCreateValidationAtom, getOrCreateFieldAtoms, fieldComponent);
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
return components;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomSubscribe","useAtomValue","Atom","Field","FormAtoms","Mode","Validation","getNestedValue","isPathOrParentDirty","Cause","Layer","Option","ParseResult","AST","React","createContext","useContext","useDebounced","ArrayItemContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","dirtyFieldsAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","touchedAtom","valueAtom","useMemo","value","setValue","isTouched","setTouched","storedError","submitCount","validationAtom","schema","validationResult","validateImmediate","shouldDebounceValidation","validation","debounce","autoSubmit","validate","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","dirtyFields","isDirty","shouldShowError","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","makeField","itemComponent","properties","Item","Proxy","get","target","Reflect","makeFieldComponents","fields","components","key","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","parse","formAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","isDirtyAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","rootError","Initialize","submit","reset","revertToLastSubmit","setValues","mount"],"sources":["../../src/FormReact.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,eAAe,EACfC,OAAO,EACPC,YAAY,EACZC,UAAU,EACVC,gBAAgB,EAChBC,YAAY,QACP,yBAAyB;AAChC,OAAO,KAAKC,IAAI,MAAM,wBAAwB;AAC9C,SAASC,KAAK,EAAEC,SAAS,EAAEC,IAAI,EAAEC,UAAU,QAAQ,2BAA2B;AAE9E,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,gCAAgC;AACpF,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AAEjD,OAAO,KAAKC,GAAG,MAAM,kBAAkB;AACvC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,aAAa,EAAEC,UAAU,QAAQ,OAAO;AACjD,SAASC,YAAY,QAAQ,6BAA6B;AAkH1D,MAAMC,gBAAgB,gBAAGH,aAAa,CAA+B,IAAI,CAAC;AAC1E,MAAMI,iBAAiB,gBAAGJ,aAAa,CAAsB,IAAI,CAAC;AAElE,MAAMK,kBAAkB,GAAGA,CACzBC,QAAgB,EAChBC,QAAmC,EACnCC,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEC,SAAqE,KACtD;EACf,MAAMC,cAAc,GAAiBC,UAAU,IAAI;IACjD,MAAMC,QAAQ,GAAGhB,UAAU,CAACE,gBAAgB,CAAC;IAC7C,MAAMe,gBAAgB,GAAGjB,UAAU,CAACG,iBAAiB,CAAC;IACtD,MAAMe,SAAS,GAAGF,QAAQ,GAAG,GAAGA,QAAQ,CAACG,UAAU,IAAId,QAAQ,EAAE,GAAGA,QAAQ;IAE5E,MAAM;MAAEe,SAAS;MAAEC,WAAW;MAAEC;IAAS,CAAE,GAAGxB,KAAK,CAACyB,OAAO,CACzD,MAAMX,qBAAqB,CAACM,SAAS,CAAC,EACtC,CAACA,SAAS,CAAC,CACZ;IAED,MAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAG5C,OAAO,CAACyC,SAAS,CAAqD;IAChG,MAAM,CAACI,SAAS,EAAEC,UAAU,CAAC,GAAG9C,OAAO,CAACwC,WAAW,CAAC;IACpD,MAAMO,WAAW,GAAG3C,YAAY,CAACmC,SAAS,CAAC;IAC3C,MAAMS,WAAW,GAAG5C,YAAY,CAACuB,eAAe,CAAC;IAEjD,MAAMsB,cAAc,GAAGhC,KAAK,CAACyB,OAAO,CAClC,MAAMZ,yBAAyB,CAACO,SAAS,EAAEZ,QAAQ,CAACyB,MAAM,CAAC,EAC3D,CAACb,SAAS,CAAC,CACZ;IACD,MAAMc,gBAAgB,GAAG/C,YAAY,CAAC6C,cAAc,CAAC;IACrD,MAAMG,iBAAiB,GAAGlD,UAAU,CAAC+C,cAAc,CAAC;IAEpD,MAAMI,wBAAwB,GAAGxB,UAAU,CAACyB,UAAU,KAAK,UAAU,IAChEzB,UAAU,CAAC0B,QAAQ,KAAK,IAAI,IAC5B,CAAC1B,UAAU,CAAC2B,UAAU;IAC3B,MAAMC,QAAQ,GAAGrC,YAAY,CAACgC,iBAAiB,EAAEC,wBAAwB,GAAGxB,UAAU,CAAC0B,QAAQ,GAAG,IAAI,CAAC;IAEvG,MAAMG,YAAY,GAAGzC,KAAK,CAAC0C,MAAM,CAAChB,KAAK,CAAC;IACxC1B,KAAK,CAAC2C,SAAS,CAAC,MAAK;MACnB,IAAIF,YAAY,CAACG,OAAO,KAAKlB,KAAK,EAAE;QAClC;MACF;MACAe,YAAY,CAACG,OAAO,GAAGlB,KAAK;MAE5B,MAAMmB,cAAc,GAAGjC,UAAU,CAACyB,UAAU,KAAK,UAAU,IACrDzB,UAAU,CAACyB,UAAU,KAAK,QAAQ,IAAIT,SAAU,IAChDhB,UAAU,CAACyB,UAAU,KAAK,UAAU,IAAIN,WAAW,GAAG,CAAE;MAE9D,IAAIc,cAAc,EAAE;QAClBL,QAAQ,CAACd,KAAK,CAAC;MACjB;IACF,CAAC,EAAE,CAACA,KAAK,EAAEE,SAAS,EAAEG,WAAW,EAAES,QAAQ,CAAC,CAAC;IAE7C,MAAMM,iBAAiB,GAA0B9C,KAAK,CAACyB,OAAO,CAAC,MAAK;MAClE,IAAIS,gBAAgB,CAACa,IAAI,KAAK,SAAS,EAAE;QACvC,MAAMC,UAAU,GAAGrD,KAAK,CAACsD,aAAa,CAACf,gBAAgB,CAACgB,KAAK,CAAC;QAC9D,IAAIrD,MAAM,CAACsD,MAAM,CAACH,UAAU,CAAC,IAAIlD,WAAW,CAACsD,YAAY,CAACJ,UAAU,CAACtB,KAAK,CAAC,EAAE;UAC3E,OAAOlC,UAAU,CAAC6D,iBAAiB,CAACL,UAAU,CAACtB,KAAK,CAAC;QACvD;MACF;MACA,OAAO7B,MAAM,CAACyD,IAAI,EAAE;IACtB,CAAC,EAAE,CAACpB,gBAAgB,CAAC,CAAC;IAEtB,MAAMqB,YAAY,GAAGrB,gBAAgB,CAACsB,OAAO;IAE7C,MAAMC,eAAe,GAA0BzD,KAAK,CAACyB,OAAO,CAAC,MAAK;MAChE,IAAI5B,MAAM,CAACsD,MAAM,CAACL,iBAAiB,CAAC,EAAE;QACpC,OAAOA,iBAAiB;MAC1B;MAEA,IAAIjD,MAAM,CAACsD,MAAM,CAACrB,WAAW,CAAC,EAAE;QAC9B;QACA;QACA,MAAM4B,qBAAqB,GAAG5B,WAAW,CAACJ,KAAK,CAACiC,MAAM,KAAK,OAAO,KAC/DzB,gBAAgB,CAACa,IAAI,KAAK,SAAS,IAAIQ,YAAY,CAAC;QAEvD,IAAIG,qBAAqB,EAAE;UACzB,OAAO7D,MAAM,CAACyD,IAAI,EAAE;QACtB;QACA,OAAOzD,MAAM,CAAC+D,IAAI,CAAC9B,WAAW,CAACJ,KAAK,CAACmC,OAAO,CAAC;MAC/C;MAEA,OAAOhE,MAAM,CAACyD,IAAI,EAAE;IACtB,CAAC,EAAE,CAACR,iBAAiB,EAAEhB,WAAW,EAAEI,gBAAgB,EAAEqB,YAAY,CAAC,CAAC;IAEpE,MAAMO,QAAQ,GAAG9D,KAAK,CAAC+D,WAAW,CAC/BC,QAAkC,IAAI;MACrCrC,QAAQ,CAACqC,QAAQ,CAAC;IACpB,CAAC,EACD,CAACrC,QAAQ,CAAC,CACX;IAED,MAAMsC,MAAM,GAAGjE,KAAK,CAAC+D,WAAW,CAAC,MAAK;MACpClC,UAAU,CAAC,IAAI,CAAC;MAChB,IAAIjB,UAAU,CAACyB,UAAU,KAAK,QAAQ,EAAE;QACtCG,QAAQ,CAACd,KAAK,CAAC;MACjB;MACAP,gBAAgB,GAAE,CAAE;IACtB,CAAC,EAAE,CAACU,UAAU,EAAEW,QAAQ,EAAEd,KAAK,EAAEP,gBAAgB,CAAC,CAAC;IAEnD,MAAM+C,WAAW,GAAG/E,YAAY,CAACwB,eAAe,CAAC;IACjD,MAAMwD,OAAO,GAAGnE,KAAK,CAACyB,OAAO,CAC3B,MAAM/B,mBAAmB,CAACwE,WAAW,EAAE9C,SAAS,CAAC,EACjD,CAAC8C,WAAW,EAAE9C,SAAS,CAAC,CACzB;IACD,MAAMgD,eAAe,GAAGxD,UAAU,CAACyB,UAAU,KAAK,UAAU,GACvD8B,OAAO,IAAIpC,WAAW,GAAG,CAAC,GAC3BnB,UAAU,CAACyB,UAAU,KAAK,QAAQ,GACjCT,SAAS,IAAIG,WAAW,GAAG,CAAC,GAC7BA,WAAW,GAAG,CAAC;IAEnB,MAAMsC,UAAU,GAAyCrE,KAAK,CAACyB,OAAO,CAAC,OAAO;MAC5EC,KAAK;MACLoC,QAAQ;MACRG,MAAM;MACNK,KAAK,EAAEF,eAAe,GAAGX,eAAe,GAAG5D,MAAM,CAACyD,IAAI,EAAU;MAChE1B,SAAS;MACT2B,YAAY;MACZY;KACD,CAAC,EAAE,CAACzC,KAAK,EAAEoC,QAAQ,EAAEG,MAAM,EAAEG,eAAe,EAAEX,eAAe,EAAE7B,SAAS,EAAE2B,YAAY,EAAEY,OAAO,CAAC,CAAC;IAElG,OAAOI,IAAA,CAACxD,SAAS;MAACyD,KAAK,EAAEH,UAAU;MAAEI,KAAK,EAAExD;IAAU,EAAI;EAC5D,CAAC;EAED,OAAOjB,KAAK,CAAC0E,IAAI,CAAC1D,cAAc,CAAgB;AAClD,CAAC;AAED,MAAM2D,uBAAuB,GAAGA,CAC9BpE,QAAgB,EAChBqE,GAAmC,EACnCC,SAA8G,EAC9GpE,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEgE,UAAyC,EACzCC,YAAsC,KACP;EAC/B,MAAMC,cAAc,GAAGjF,GAAG,CAACkF,aAAa,CAACL,GAAG,CAACM,UAAU,CAACC,GAAG,CAAC;EAE5D,MAAMC,YAAY,GAEbA,CAAC;IAAEC;EAAQ,CAAE,KAAI;IACpB,MAAMnE,QAAQ,GAAGhB,UAAU,CAACE,gBAAgB,CAAC;IAC7C,MAAM,CAACkF,eAAe,EAAEC,YAAY,CAAC,GAAGxG,OAAO,CAAC8F,SAAS,CAAC;IAC1D,MAAMW,SAAS,GAAG3F,MAAM,CAAC4F,UAAU,CAACH,eAAe,CAAC;IAEpD,MAAMlE,SAAS,GAAGF,QAAQ,GAAG,GAAGA,QAAQ,CAACG,UAAU,IAAId,QAAQ,EAAE,GAAGA,QAAQ;IAC5E,MAAMmF,KAAK,GAAG1F,KAAK,CAACyB,OAAO,CACzB,MAAOhC,cAAc,CAAC+F,SAAS,CAACG,MAAM,EAAEvE,SAAS,CAAC,IAAI,EAA8C,EACpG,CAACoE,SAAS,CAACG,MAAM,EAAEvE,SAAS,CAAC,CAC9B;IAED,MAAMwE,MAAM,GAAG5F,KAAK,CAAC+D,WAAW,CAC7BrC,KAAgC,IAAI;MACnC6D,YAAY,CAAEM,IAAI,IAAI;QACpB,IAAIhG,MAAM,CAACiG,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAOhG,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAACiB,eAAe,CAACF,IAAI,CAACnE,KAAK,EAAEN,SAAS,EAAEwD,GAAG,CAACM,UAAU,EAAExD,KAAK,CAAC,CAAC;MAC9F,CAAC,CAAC;IACJ,CAAC,EACD,CAACN,SAAS,EAAEmE,YAAY,CAAC,CAC1B;IAED,MAAMS,MAAM,GAAGhG,KAAK,CAAC+D,WAAW,CAC7BkC,KAAa,IAAI;MAChBV,YAAY,CAAEM,IAAI,IAAI;QACpB,IAAIhG,MAAM,CAACiG,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAOhG,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAACoB,eAAe,CAACL,IAAI,CAACnE,KAAK,EAAEN,SAAS,EAAE6E,KAAK,CAAC,CAAC;MAC9E,CAAC,CAAC;IACJ,CAAC,EACD,CAAC7E,SAAS,EAAEmE,YAAY,CAAC,CAC1B;IAED,MAAMY,IAAI,GAAGnG,KAAK,CAAC+D,WAAW,CAC5B,CAACqC,MAAc,EAAEC,MAAc,KAAI;MACjCd,YAAY,CAAEM,IAAI,IAAI;QACpB,IAAIhG,MAAM,CAACiG,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAOhG,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAACwB,cAAc,CAACT,IAAI,CAACnE,KAAK,EAAEN,SAAS,EAAEgF,MAAM,EAAEC,MAAM,CAAC,CAAC;MACtF,CAAC,CAAC;IACJ,CAAC,EACD,CAACjF,SAAS,EAAEmE,YAAY,CAAC,CAC1B;IAED,MAAMgB,IAAI,GAAGvG,KAAK,CAAC+D,WAAW,CAC5B,CAACyC,IAAY,EAAEC,EAAU,KAAI;MAC3BlB,YAAY,CAAEM,IAAI,IAAI;QACpB,IAAIhG,MAAM,CAACiG,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAOhG,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAAC4B,aAAa,CAACb,IAAI,CAACnE,KAAK,EAAEN,SAAS,EAAEoF,IAAI,EAAEC,EAAE,CAAC,CAAC;MAC/E,CAAC,CAAC;IACJ,CAAC,EACD,CAACrF,SAAS,EAAEmE,YAAY,CAAC,CAC1B;IAED,OAAOhB,IAAA,CAAAoC,SAAA;MAAAtB,QAAA,EAAGA,QAAQ,CAAC;QAAEK,KAAK;QAAEE,MAAM;QAAEI,MAAM;QAAEG,IAAI;QAAEI;MAAI,CAAE;IAAC,EAAI;EAC/D,CAAC;EAED,MAAMK,WAAW,GAGZA,CAAC;IAAEvB,QAAQ;IAAEY;EAAK,CAAE,KAAI;IAC3B,MAAM/E,QAAQ,GAAGhB,UAAU,CAACE,gBAAgB,CAAC;IAC7C,MAAMmF,YAAY,GAAGtG,UAAU,CAAC4F,SAAS,CAAC;IAE1C,MAAMxD,UAAU,GAAGH,QAAQ,GAAG,GAAGA,QAAQ,CAACG,UAAU,IAAId,QAAQ,EAAE,GAAGA,QAAQ;IAC7E,MAAMsG,QAAQ,GAAG,GAAGxF,UAAU,IAAI4E,KAAK,GAAG;IAE1C,MAAMD,MAAM,GAAGhG,KAAK,CAAC+D,WAAW,CAAC,MAAK;MACpCwB,YAAY,CAAEM,IAAI,IAAI;QACpB,IAAIhG,MAAM,CAACiG,MAAM,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI;QACpC,OAAOhG,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAACoB,eAAe,CAACL,IAAI,CAACnE,KAAK,EAAEL,UAAU,EAAE4E,KAAK,CAAC,CAAC;MAC/E,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC5E,UAAU,EAAE4E,KAAK,EAAEV,YAAY,CAAC,CAAC;IAErC,OACEhB,IAAA,CAACnE,gBAAgB,CAAC0G,QAAQ;MAACpF,KAAK,EAAE;QAAEuE,KAAK;QAAE5E,UAAU,EAAEwF;MAAQ,CAAE;MAAAxB,QAAA,EAC9D,OAAOA,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAAC;QAAEW;MAAM,CAAE,CAAC,GAAGX;IAAQ,EACvC;EAEhC,CAAC;EAED,MAAM0B,mBAAmB,GAA6B,EAAE;EAExD,IAAI/B,cAAc,EAAE;IAClB,MAAMG,GAAG,GAAGP,GAAG,CAACM,UAAU,CAACC,GAAsB;IACjD,KAAK,MAAM6B,IAAI,IAAI7B,GAAG,CAAC8B,kBAAkB,EAAE;MACzC,MAAMC,OAAO,GAAGF,IAAI,CAACG,IAAc;MACnC,MAAMjC,UAAU,GAAG;QAAEC,GAAG,EAAE6B,IAAI,CAACI;MAAI,CAAuB;MAC1D,MAAMC,OAAO,GAAGhI,KAAK,CAACiI,SAAS,CAACJ,OAAO,EAAEhC,UAAU,CAAC;MACpD,MAAMqC,aAAa,GAAIxC,YAAwE,CAACmC,OAAO,CAAC;MACxGH,mBAAmB,CAACG,OAAO,CAAC,GAAG5G,kBAAkB,CAC/C4G,OAAO,EACPG,OAAO,EACP5G,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrByG,aAAa,CACd;IACH;EACF;EAEA,MAAMC,UAAU,GAA4B;IAC1CC,IAAI,EAAEb,WAAW;IACjB,GAAGG;GACJ;EAED,OAAO,IAAIW,KAAK,CAACtC,YAAY,EAAE;IAC7BuC,GAAGA,CAACC,MAAM,EAAEZ,IAAI;MACd,IAAIA,IAAI,IAAIQ,UAAU,EAAE;QACtB,OAAOA,UAAU,CAACR,IAAc,CAAC;MACnC;MACA,OAAOa,OAAO,CAACF,GAAG,CAACC,MAAM,EAAEZ,IAAI,CAAC;IAClC;GACD,CAAgC;AACnC,CAAC;AAED,MAAMc,mBAAmB,GAAGA,CAI1BC,MAAe,EACflD,SAGC,EACDpE,UAAiG,EACjGC,eAAkC,EAClCC,eAA+C,EAC/CC,UAA2B,EAC3BC,yBAG6D,EAC7DC,qBAAkE,EAClEgE,UAA6C,EAC7CC,YAAgB,KACgB;EAChC,MAAMiD,UAAU,GAAwB,EAAE;EAE1C,KAAK,MAAM,CAACC,GAAG,EAAErD,GAAG,CAAC,IAAIsD,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;IAC/C,IAAI1I,KAAK,CAAC+I,eAAe,CAACxD,GAAG,CAAC,EAAE;MAC9B,MAAMyD,iBAAiB,GAAItD,YAAoC,CAACkD,GAAG,CAAC;MACpED,UAAU,CAACC,GAAG,CAAC,GAAGtD,uBAAuB,CACvCsD,GAAG,EACHrD,GAAqD,EACrDC,SAAS,EACTpE,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBgE,UAAU,EACVuD,iBAAiB,CAClB;IACH,CAAC,MAAM,IAAIhJ,KAAK,CAACiJ,UAAU,CAAC1D,GAAG,CAAC,EAAE;MAChC,MAAM2D,cAAc,GAAIxD,YAAwE,CAACkD,GAAG,CAAC;MACrGD,UAAU,CAACC,GAAG,CAAC,GAAG3H,kBAAkB,CAClC2H,GAAG,EACHrD,GAAG,EACHnE,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrByH,cAAc,CACf;IACH;EACF;EAEA,OAAOP,UAA0C;AACnD,CAAC;AAED,OAAO,MAAMQ,IAAI,GAgDbA,CAACC,IAAS,EAAEC,OAAY,KAAS;EACnC,MAAM;IAAEX,MAAM,EAAEC,UAAU;IAAEW,IAAI;IAAEC,QAAQ;IAAEC,OAAO,EAAEC;EAAe,CAAE,GAAGJ,OAAO;EAChF,MAAMG,OAAO,GAAGC,eAAe,IAAI1J,IAAI,CAACyJ,OAAO,CAACjJ,KAAK,CAACmJ,KAAK,CAAC;EAC5D,MAAMnI,UAAU,GAAGrB,IAAI,CAACyJ,KAAK,CAACL,IAAI,CAAC;EACnC,MAAM;IAAEZ;EAAM,CAAE,GAAGU,IAAI;EAEvB,MAAMQ,SAAS,GAAG3J,SAAS,CAACkJ,IAAI,CAAC;IAC/BU,WAAW,EAAET,IAAI;IACjBI,OAAO;IACPD;GACD,CAAC;EAEF,MAAM;IACJO,cAAc;IACdxI,eAAe;IACfF,UAAU;IACV2I,SAAS;IACTC,YAAY;IACZvI,qBAAqB;IACrBD,yBAAyB;IACzByI,yBAAyB;IACzBC,WAAW;IACXC,mBAAmB;IACnBC,uBAAuB;IACvBC,SAAS;IACT5E,UAAU;IACV6E,SAAS;IACTC,sBAAsB;IACtBC,aAAa;IACblI,QAAQ;IACRmI,aAAa;IACbjF,SAAS;IACTkF,UAAU;IACVrJ,eAAe;IACfsJ;EAAU,CACX,GAAGf,SAAS;EAEb,MAAMgB,mBAAmB,GAGpBA,CAAC;IAAE5E,QAAQ;IAAE6E;EAAa,CAAE,KAAI;IACnC,MAAMC,QAAQ,GAAGnK,KAAK,CAACE,UAAU,CAACpB,eAAe,CAAC;IAClD,MAAMsL,KAAK,GAAGjL,YAAY,CAAC0F,SAAS,CAAC;IACrC,MAAMU,YAAY,GAAGtG,UAAU,CAAC4F,SAAS,CAAC;IAC1C,MAAMwF,UAAU,GAAGpL,UAAU,CAAC8K,UAAU,CAAC;IACzC,MAAMO,gBAAgB,GAAGtK,KAAK,CAAC0C,MAAM,CAAC,KAAK,CAAC;IAE5C1C,KAAK,CAAC2C,SAAS,CAAC,MAAK;MACnB,MAAM4H,WAAW,GAAGJ,QAAQ,CAACxC,GAAG,CAAC6B,mBAAmB,CAAC;MACrD,MAAMgB,YAAY,GAAGL,QAAQ,CAACxC,GAAG,CAAC9C,SAAS,CAAC;MAE5C,IAAI,CAAC0F,WAAW,EAAE;QAChBhF,YAAY,CAAC1F,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAAC2F,kBAAkB,CAACP,aAAa,CAAC,CAAC,CAAC;MACzE,CAAC,MAAM,IAAIrK,MAAM,CAACiG,MAAM,CAAC0E,YAAY,CAAC,EAAE;QACtCjF,YAAY,CAAC1F,MAAM,CAAC+D,IAAI,CAACkB,UAAU,CAAC2F,kBAAkB,CAACP,aAAa,CAAC,CAAC,CAAC;MACzE;MAEAI,gBAAgB,CAAC1H,OAAO,GAAG,IAAI;MAC/B;IACF,CAAC,EAAE,CAACuH,QAAQ,CAAC,CAAC;IAEd,MAAMO,mBAAmB,GAAGvK,YAAY,CAAC,MAAK;MAC5C,MAAMwK,WAAW,GAAGR,QAAQ,CAACxC,GAAG,CAAC9C,SAAS,CAAC;MAC3C,IAAIhF,MAAM,CAACiG,MAAM,CAAC6E,WAAW,CAAC,EAAE;MAChCN,UAAU,CAACO,SAAS,CAAC;IACvB,CAAC,EAAEhK,UAAU,CAAC2B,UAAU,IAAI3B,UAAU,CAACyB,UAAU,KAAK,UAAU,GAAGzB,UAAU,CAAC0B,QAAQ,GAAG,IAAI,CAAC;IAE9F;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,MAAMuI,aAAa,GAAG7K,KAAK,CAAC0C,MAAM,CAAU,IAAI,CAAC;IACjD,MAAMoI,iBAAiB,GAAG9K,KAAK,CAAC0C,MAAM,CAAC,KAAK,CAAC;IAC7C,MAAMqI,gBAAgB,GAAG/K,KAAK,CAAC0C,MAAM,CAAC,KAAK,CAAC;IAE5CxD,gBAAgB,CACd2F,SAAS,EACT7E,KAAK,CAAC+D,WAAW,CAAC,MAAK;MACrB,IAAI,CAACuG,gBAAgB,CAAC1H,OAAO,EAAE;MAE/B,MAAMwH,KAAK,GAAGD,QAAQ,CAACxC,GAAG,CAAC9C,SAAS,CAAC;MACrC,IAAIhF,MAAM,CAACiG,MAAM,CAACsE,KAAK,CAAC,EAAE;MAC1B,MAAMY,aAAa,GAAGZ,KAAK,CAAC1I,KAAK,CAACiE,MAAM;MAExC;MACA;MACA,IAAIqF,aAAa,KAAKH,aAAa,CAACjI,OAAO,EAAE;MAC7CiI,aAAa,CAACjI,OAAO,GAAGoI,aAAa;MAErC,IAAI,CAACpK,UAAU,CAAC2B,UAAU,IAAI3B,UAAU,CAACyB,UAAU,KAAK,UAAU,EAAE;MAEpE,MAAM4I,YAAY,GAAGd,QAAQ,CAACxC,GAAG,CAACoC,UAAU,CAAC;MAC7C,IAAIkB,YAAY,CAACzH,OAAO,EAAE;QACxBsH,iBAAiB,CAAClI,OAAO,GAAG,IAAI;MAClC,CAAC,MAAM;QACL8H,mBAAmB,EAAE;MACvB;IACF,CAAC,EAAE,CAACA,mBAAmB,EAAEP,QAAQ,CAAC,CAAC,EACnC;MAAEe,SAAS,EAAE;IAAK,CAAE,CACrB;IAEDhM,gBAAgB,CACd6K,UAAU,EACV/J,KAAK,CAAC+D,WAAW,CACdoH,MAAM,IAAI;MACT,IAAI,CAACvK,UAAU,CAAC2B,UAAU,IAAI3B,UAAU,CAACyB,UAAU,KAAK,UAAU,EAAE;MAEpE,MAAM+I,YAAY,GAAGD,MAAM,CAAC3H,OAAO;MACnC,MAAM6H,aAAa,GAAGN,gBAAgB,CAACnI,OAAO;MAC9CmI,gBAAgB,CAACnI,OAAO,GAAGwI,YAAY;MAEvC;MACA,IAAIC,aAAa,IAAI,CAACD,YAAY,EAAE;QAClC,IAAIN,iBAAiB,CAAClI,OAAO,EAAE;UAC7BkI,iBAAiB,CAAClI,OAAO,GAAG,KAAK;UACjC8H,mBAAmB,EAAE;QACvB;MACF;IACF,CAAC,EACD,CAACA,mBAAmB,CAAC,CACtB,EACD;MAAEQ,SAAS,EAAE;IAAK,CAAE,CACrB;IAED,MAAMI,gBAAgB,GAAGtL,KAAK,CAAC+D,WAAW,CAAC,MAAK;MAC9C,IAAI,CAACnD,UAAU,CAAC2B,UAAU,IAAI3B,UAAU,CAACyB,UAAU,KAAK,QAAQ,EAAE;MAElE,MAAMsI,WAAW,GAAGR,QAAQ,CAACxC,GAAG,CAAC9C,SAAS,CAAC;MAC3C,IAAIhF,MAAM,CAACiG,MAAM,CAAC6E,WAAW,CAAC,EAAE;MAEhC,MAAM;QAAEY,mBAAmB;QAAE5F;MAAM,CAAE,GAAGgF,WAAW,CAACjJ,KAAK;MACzD,IAAI7B,MAAM,CAACsD,MAAM,CAACoI,mBAAmB,CAAC,IAAI5F,MAAM,KAAK4F,mBAAmB,CAAC7J,KAAK,CAAC8J,OAAO,EAAE;MAExFnB,UAAU,CAACO,SAAS,CAAC;IACvB,CAAC,EAAE,CAACT,QAAQ,EAAEE,UAAU,CAAC,CAAC;IAE1B,IAAIxK,MAAM,CAACiG,MAAM,CAACsE,KAAK,CAAC,EAAE,OAAO,IAAI;IAErC,OAAO7F,IAAA,CAAClE,iBAAiB,CAACyG,QAAQ;MAACpF,KAAK,EAAE4J,gBAAgB;MAAAjG,QAAA,EAAGA;IAAQ,EAA8B;EACrG,CAAC;EAED,MAAMoG,eAAe,GAAG3D,mBAAmB,CACzCC,MAAM,EACNlD,SAAS,EACTpE,UAAU,EACVC,eAAe,EACfC,eAAe,EACfC,UAAU,EACVC,yBAAyB,EACzBC,qBAAqB,EACrBgE,UAAU,EACVkD,UAAU,CACX;EAED,MAAM0D,SAAS,GAAaA,CAAA,KAAK;IAC/B,MAAMC,kBAAkB,GAAG1M,UAAU,CAACuK,mBAAmB,CAAC;IAE1DxJ,KAAK,CAAC4L,eAAe,CAAC,MAAK;MACzBD,kBAAkB,CAAC,IAAI,CAAC;MACxB,OAAO,MAAMA,kBAAkB,CAAC,KAAK,CAAC;IACxC,CAAC,EAAE,CAACA,kBAAkB,CAAC,CAAC;IAExB3M,YAAY,CAAC0K,SAAS,CAAC;IACvB,OAAO,IAAI;EACb,CAAC;EAED,OAAO;IACL/D,MAAM,EAAEqE,UAAU;IAClB7F,OAAO,EAAEoF,WAAW;IACpBsC,qBAAqB,EAAEvC,yBAAyB;IAChDiC,mBAAmB,EAAE9B,uBAAuB;IAC5C1H,WAAW,EAAErB,eAAe;IAC5BoL,SAAS,EAAEjC,aAAa;IACxB5H,MAAM,EAAEkH,cAAc;IACtBpB,MAAM,EAAEqB,SAAS;IACjB2C,UAAU,EAAE9B,mBAAmB;IAC/B+B,MAAM,EAAEjC,UAAU;IAClBkC,KAAK,EAAEtC,SAAS;IAChBuC,kBAAkB,EAAEtC,sBAAsB;IAC1CuC,SAAS,EAAErC,aAAa;IACxBnI,QAAQ;IACR0H,YAAY;IACZ+C,KAAK,EAAE1C,SAAS;IAChBgC,SAAS;IACT,GAAGD;GACJ;AACH,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"FormReact.js","names":["RegistryContext","useAtom","useAtomMount","useAtomSet","useAtomSubscribe","useAtomValue","Atom","Field","FormAtoms","Mode","Validation","getNestedValue","Cause","Layer","Option","ParseResult","AST","React","createContext","useContext","useDebounced","ArrayItemContext","AutoSubmitContext","makeFieldComponent","fieldKey","fieldDef","errorsAtom","submitCountAtom","parsedMode","getOrCreateValidationAtom","getOrCreateFieldAtoms","Component","FieldComponent","extraProps","arrayCtx","autoSubmitOnBlur","fieldPath","parentPath","errorAtom","isDirtyAtom","touchedAtom","valueAtom","useMemo","value","setValue","isTouched","setTouched","storedError","submitCount","validationAtom","schema","validationResult","validateImmediate","shouldDebounceValidation","validation","debounce","autoSubmit","validate","prevValueRef","useRef","useEffect","current","shouldValidate","livePerFieldError","_tag","parseError","failureOption","cause","isSome","isParseError","extractFirstError","none","isValidating","waiting","validationError","shouldHideStoredError","source","some","message","onChange","useCallback","newValue","onBlur","isDirty","shouldShowError","fieldState","error","_jsx","field","props","memo","makeArrayFieldComponent","def","stateAtom","dirtyFieldsAtom","operations","componentMap","isStructSchema","isTypeLiteral","itemSchema","ast","ArrayWrapper","children","formStateOption","setFormState","formState","getOrThrow","items","values","append","prev","isNone","appendArrayItem","remove","index","removeArrayItem","swap","indexA","indexB","swapArrayItems","move","from","to","moveArrayItem","_Fragment","ItemWrapper","itemPath","Provider","itemFieldComponents","prop","propertySignatures","itemKey","name","type","itemDef","makeField","itemComponent","properties","Item","Proxy","get","target","Reflect","makeFieldComponents","fields","components","key","Object","entries","isArrayFieldDef","arrayComponentMap","isFieldDef","fieldComponent","make","self","options","mode","onSubmit","runtime","providedRuntime","empty","parse","formAtoms","formBuilder","combinedSchema","fieldRefs","getFieldAtom","hasChangedSinceSubmitAtom","keepAliveActiveAtom","lastSubmittedValuesAtom","mountAtom","resetAtom","revertToLastSubmitAtom","rootErrorAtom","setValuesAtom","submitAtom","valuesAtom","InitializeComponent","defaultValues","registry","state","callSubmit","isInitializedRef","isKeptAlive","currentState","createInitialState","debouncedAutoSubmit","stateOption","undefined","lastValuesRef","pendingChangesRef","wasSubmittingRef","currentValues","submitResult","immediate","result","isSubmitting","wasSubmitting","onBlurAutoSubmit","lastSubmittedValues","encoded","fieldComponents","KeepAlive","setKeepAliveActive","useLayoutEffect","hasChangedSinceSubmit","rootError","Initialize","submit","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.15.0",
|
|
4
4
|
"description": "React bindings for @lucas-barake/effect-form",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"author": "Lucas Barake",
|
|
12
12
|
"homepage": "https://github.com/lucas-barake/effect-form",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@lucas-barake/effect-form": "^0.
|
|
14
|
+
"@lucas-barake/effect-form": "^0.15.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@effect-atom/atom": "^0.4.8",
|
package/src/FormReact.tsx
CHANGED
|
@@ -5,65 +5,65 @@ import {
|
|
|
5
5
|
useAtomSet,
|
|
6
6
|
useAtomSubscribe,
|
|
7
7
|
useAtomValue,
|
|
8
|
-
} from "@effect-atom/atom-react"
|
|
9
|
-
import * as Atom from "@effect-atom/atom/Atom"
|
|
10
|
-
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form"
|
|
11
|
-
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder"
|
|
12
|
-
import { getNestedValue
|
|
13
|
-
import * as Cause from "effect/Cause"
|
|
14
|
-
import type * as Effect from "effect/Effect"
|
|
15
|
-
import * as Layer from "effect/Layer"
|
|
16
|
-
import * as Option from "effect/Option"
|
|
17
|
-
import * as ParseResult from "effect/ParseResult"
|
|
18
|
-
import type * as Schema from "effect/Schema"
|
|
19
|
-
import * as AST from "effect/SchemaAST"
|
|
20
|
-
import * as React from "react"
|
|
21
|
-
import { createContext, useContext } from "react"
|
|
22
|
-
import { useDebounced } from "./internal/use-debounced.js"
|
|
23
|
-
|
|
24
|
-
export type FieldValue<T> = T extends Schema.Schema.Any ? Schema.Schema.Encoded<T> : T
|
|
8
|
+
} from "@effect-atom/atom-react";
|
|
9
|
+
import * as Atom from "@effect-atom/atom/Atom";
|
|
10
|
+
import { Field, FormAtoms, Mode, Validation } from "@lucas-barake/effect-form";
|
|
11
|
+
import type * as FormBuilder from "@lucas-barake/effect-form/FormBuilder";
|
|
12
|
+
import { getNestedValue } from "@lucas-barake/effect-form/Path";
|
|
13
|
+
import * as Cause from "effect/Cause";
|
|
14
|
+
import type * as Effect from "effect/Effect";
|
|
15
|
+
import * as Layer from "effect/Layer";
|
|
16
|
+
import * as Option from "effect/Option";
|
|
17
|
+
import * as ParseResult from "effect/ParseResult";
|
|
18
|
+
import type * as Schema from "effect/Schema";
|
|
19
|
+
import * as AST from "effect/SchemaAST";
|
|
20
|
+
import * as React from "react";
|
|
21
|
+
import { createContext, useContext } from "react";
|
|
22
|
+
import { useDebounced } from "./internal/use-debounced.js";
|
|
23
|
+
|
|
24
|
+
export type FieldValue<T> = T extends Schema.Schema.Any ? Schema.Schema.Encoded<T> : T;
|
|
25
25
|
|
|
26
26
|
export interface FieldState<E> {
|
|
27
|
-
readonly value: E
|
|
28
|
-
readonly onChange: (value: E) => void
|
|
29
|
-
readonly onBlur: () => void
|
|
30
|
-
readonly error: Option.Option<string
|
|
31
|
-
readonly isTouched: boolean
|
|
32
|
-
readonly isValidating: boolean
|
|
33
|
-
readonly isDirty: boolean
|
|
27
|
+
readonly value: E;
|
|
28
|
+
readonly onChange: (value: E) => void;
|
|
29
|
+
readonly onBlur: () => void;
|
|
30
|
+
readonly error: Option.Option<string>;
|
|
31
|
+
readonly isTouched: boolean;
|
|
32
|
+
readonly isValidating: boolean;
|
|
33
|
+
readonly isDirty: boolean;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
export interface FieldComponentProps<E, P = Record<string, never>> {
|
|
37
|
-
readonly field: FieldState<E
|
|
38
|
-
readonly props: P
|
|
37
|
+
readonly field: FieldState<E>;
|
|
38
|
+
readonly props: P;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export type FieldComponent<T, P = Record<string, never>> = React.FC<FieldComponentProps<FieldValue<T>, P
|
|
41
|
+
export type FieldComponent<T, P = Record<string, never>> = React.FC<FieldComponentProps<FieldValue<T>, P>>;
|
|
42
42
|
|
|
43
|
-
export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P : Record<string, never
|
|
43
|
+
export type ExtractExtraProps<C> = C extends React.FC<FieldComponentProps<any, infer P>> ? P : Record<string, never>;
|
|
44
44
|
|
|
45
45
|
export type ArrayItemComponentMap<S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields> ? {
|
|
46
46
|
readonly [K in keyof Fields]: Fields[K] extends Schema.Schema.Any
|
|
47
47
|
? React.FC<FieldComponentProps<Schema.Schema.Encoded<Fields[K]>, any>>
|
|
48
|
-
: never
|
|
48
|
+
: never;
|
|
49
49
|
}
|
|
50
|
-
: React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any
|
|
50
|
+
: React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>;
|
|
51
51
|
|
|
52
52
|
export type FieldComponentMap<TFields extends Field.FieldsRecord> = {
|
|
53
53
|
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, infer S>
|
|
54
54
|
? React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, any>>
|
|
55
55
|
: TFields[K] extends Field.ArrayFieldDef<any, infer S> ? ArrayItemComponentMap<S>
|
|
56
|
-
: never
|
|
57
|
-
}
|
|
56
|
+
: never;
|
|
57
|
+
};
|
|
58
58
|
|
|
59
|
-
export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields
|
|
59
|
+
export type FieldRefs<TFields extends Field.FieldsRecord> = FormAtoms.FieldRefs<TFields>;
|
|
60
60
|
|
|
61
61
|
export interface ArrayFieldOperations<TItem> {
|
|
62
|
-
readonly items: ReadonlyArray<TItem
|
|
63
|
-
readonly append: (value?: TItem) => void
|
|
64
|
-
readonly remove: (index: number) => void
|
|
65
|
-
readonly swap: (indexA: number, indexB: number) => void
|
|
66
|
-
readonly move: (from: number, to: number) => void
|
|
62
|
+
readonly items: ReadonlyArray<TItem>;
|
|
63
|
+
readonly append: (value?: TItem) => void;
|
|
64
|
+
readonly remove: (index: number) => void;
|
|
65
|
+
readonly swap: (indexA: number, indexB: number) => void;
|
|
66
|
+
readonly move: (from: number, to: number) => void;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export type BuiltForm<
|
|
@@ -74,74 +74,73 @@ export type BuiltForm<
|
|
|
74
74
|
SubmitArgs = void,
|
|
75
75
|
CM extends FieldComponentMap<TFields> = FieldComponentMap<TFields>,
|
|
76
76
|
> = {
|
|
77
|
-
readonly values: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields
|
|
78
|
-
readonly isDirty: Atom.Atom<boolean
|
|
79
|
-
readonly hasChangedSinceSubmit: Atom.Atom<boolean
|
|
80
|
-
readonly lastSubmittedValues: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields
|
|
81
|
-
readonly submitCount: Atom.Atom<number
|
|
77
|
+
readonly values: Atom.Atom<Option.Option<Field.EncodedFromFields<TFields>>>;
|
|
78
|
+
readonly isDirty: Atom.Atom<boolean>;
|
|
79
|
+
readonly hasChangedSinceSubmit: Atom.Atom<boolean>;
|
|
80
|
+
readonly lastSubmittedValues: Atom.Atom<Option.Option<FormBuilder.SubmittedValues<TFields>>>;
|
|
81
|
+
readonly submitCount: Atom.Atom<number>;
|
|
82
82
|
|
|
83
|
-
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R
|
|
84
|
-
readonly fields: FieldRefs<TFields
|
|
83
|
+
readonly schema: Schema.Schema<Field.DecodedFromFields<TFields>, Field.EncodedFromFields<TFields>, R>;
|
|
84
|
+
readonly fields: FieldRefs<TFields>;
|
|
85
85
|
|
|
86
86
|
readonly Initialize: React.FC<{
|
|
87
|
-
readonly defaultValues: Field.EncodedFromFields<TFields
|
|
88
|
-
readonly children: React.ReactNode
|
|
89
|
-
}
|
|
87
|
+
readonly defaultValues: Field.EncodedFromFields<TFields>;
|
|
88
|
+
readonly children: React.ReactNode;
|
|
89
|
+
}>;
|
|
90
90
|
|
|
91
|
-
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | ParseResult.ParseError
|
|
92
|
-
readonly reset: Atom.Writable<void, void
|
|
93
|
-
readonly revertToLastSubmit: Atom.Writable<void, void
|
|
94
|
-
readonly setValues: Atom.Writable<void, Field.EncodedFromFields<TFields
|
|
95
|
-
readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)
|
|
96
|
-
readonly getFieldAtom: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S
|
|
91
|
+
readonly submit: Atom.AtomResultFn<SubmitArgs, A, E | ParseResult.ParseError>;
|
|
92
|
+
readonly reset: Atom.Writable<void, void>;
|
|
93
|
+
readonly revertToLastSubmit: Atom.Writable<void, void>;
|
|
94
|
+
readonly setValues: Atom.Writable<void, Field.EncodedFromFields<TFields>>;
|
|
95
|
+
readonly setValue: <S>(field: FormBuilder.FieldRef<S>) => Atom.Writable<void, S | ((prev: S) => S)>;
|
|
96
|
+
readonly getFieldAtom: <S>(field: FormBuilder.FieldRef<S>) => Atom.Atom<Option.Option<S>>;
|
|
97
97
|
|
|
98
|
-
readonly mount: Atom.Atom<void
|
|
99
|
-
readonly KeepAlive: React.FC
|
|
100
|
-
} & FieldComponents<TFields, CM
|
|
98
|
+
readonly mount: Atom.Atom<void>;
|
|
99
|
+
readonly KeepAlive: React.FC;
|
|
100
|
+
} & FieldComponents<TFields, CM>;
|
|
101
101
|
|
|
102
102
|
type FieldComponents<TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>> = {
|
|
103
103
|
readonly [K in keyof TFields]: TFields[K] extends Field.FieldDef<any, any> ? React.FC<ExtractExtraProps<CM[K]>>
|
|
104
104
|
: TFields[K] extends Field.ArrayFieldDef<any, infer S>
|
|
105
105
|
? ArrayFieldComponent<S, ExtractArrayItemExtraProps<CM[K], S>>
|
|
106
|
-
: never
|
|
107
|
-
}
|
|
106
|
+
: never;
|
|
107
|
+
};
|
|
108
108
|
|
|
109
109
|
type ExtractArrayItemExtraProps<CM, S extends Schema.Schema.Any> = S extends Schema.Struct<infer Fields>
|
|
110
|
-
? { readonly [K in keyof Fields]: CM extends { readonly [P in K]: infer C } ? ExtractExtraProps<C> : never }
|
|
110
|
+
? { readonly [K in keyof Fields]: CM extends { readonly [P in K]: infer C; } ? ExtractExtraProps<C> : never; }
|
|
111
111
|
: CM extends React.FC<FieldComponentProps<any, infer P>> ? P
|
|
112
|
-
: never
|
|
112
|
+
: never;
|
|
113
113
|
|
|
114
114
|
type ArrayFieldComponent<S extends Schema.Schema.Any, ExtraPropsMap> =
|
|
115
115
|
& React.FC<{
|
|
116
|
-
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode
|
|
116
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode;
|
|
117
117
|
}>
|
|
118
118
|
& {
|
|
119
119
|
readonly Item: React.FC<{
|
|
120
|
-
readonly index: number
|
|
121
|
-
readonly children: React.ReactNode | ((props: { readonly remove: () => void }) => React.ReactNode)
|
|
122
|
-
}
|
|
120
|
+
readonly index: number;
|
|
121
|
+
readonly children: React.ReactNode | ((props: { readonly remove: () => void; }) => React.ReactNode);
|
|
122
|
+
}>;
|
|
123
123
|
}
|
|
124
124
|
& (S extends Schema.Struct<infer Fields> ? {
|
|
125
125
|
readonly [K in keyof Fields]: React.FC<
|
|
126
|
-
ExtraPropsMap extends { readonly [P in K]: infer EP } ? EP : Record<string, never>
|
|
127
|
-
|
|
126
|
+
ExtraPropsMap extends { readonly [P in K]: infer EP; } ? EP : Record<string, never>
|
|
127
|
+
>;
|
|
128
128
|
}
|
|
129
|
-
: unknown)
|
|
129
|
+
: unknown);
|
|
130
130
|
|
|
131
131
|
interface ArrayItemContextValue {
|
|
132
|
-
readonly index: number
|
|
133
|
-
readonly parentPath: string
|
|
132
|
+
readonly index: number;
|
|
133
|
+
readonly parentPath: string;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
const ArrayItemContext = createContext<ArrayItemContextValue | null>(null)
|
|
137
|
-
const AutoSubmitContext = createContext<(() => void) | null>(null)
|
|
136
|
+
const ArrayItemContext = createContext<ArrayItemContextValue | null>(null);
|
|
137
|
+
const AutoSubmitContext = createContext<(() => void) | null>(null);
|
|
138
138
|
|
|
139
139
|
const makeFieldComponent = <S extends Schema.Schema.Any, P>(
|
|
140
140
|
fieldKey: string,
|
|
141
141
|
fieldDef: Field.FieldDef<string, S>,
|
|
142
142
|
errorsAtom: Atom.Writable<Map<string, Validation.ErrorEntry>, Map<string, Validation.ErrorEntry>>,
|
|
143
143
|
submitCountAtom: Atom.Atom<number>,
|
|
144
|
-
dirtyFieldsAtom: Atom.Atom<ReadonlySet<string>>,
|
|
145
144
|
parsedMode: Mode.ParsedMode,
|
|
146
145
|
getOrCreateValidationAtom: (
|
|
147
146
|
fieldPath: string,
|
|
@@ -151,121 +150,116 @@ const makeFieldComponent = <S extends Schema.Schema.Any, P>(
|
|
|
151
150
|
Component: React.FC<FieldComponentProps<Schema.Schema.Encoded<S>, P>>,
|
|
152
151
|
): React.FC<P> => {
|
|
153
152
|
const FieldComponent: React.FC<P> = (extraProps) => {
|
|
154
|
-
const arrayCtx = useContext(ArrayItemContext)
|
|
155
|
-
const autoSubmitOnBlur = useContext(AutoSubmitContext)
|
|
156
|
-
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
153
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
154
|
+
const autoSubmitOnBlur = useContext(AutoSubmitContext);
|
|
155
|
+
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
157
156
|
|
|
158
|
-
const { errorAtom, touchedAtom, valueAtom } = React.useMemo(
|
|
157
|
+
const { errorAtom, isDirtyAtom, touchedAtom, valueAtom } = React.useMemo(
|
|
159
158
|
() => getOrCreateFieldAtoms(fieldPath),
|
|
160
159
|
[fieldPath],
|
|
161
|
-
)
|
|
160
|
+
);
|
|
162
161
|
|
|
163
|
-
const [value, setValue] = useAtom(valueAtom) as [Schema.Schema.Encoded<S>, (v: unknown) => void]
|
|
164
|
-
const [isTouched, setTouched] = useAtom(touchedAtom)
|
|
165
|
-
const storedError = useAtomValue(errorAtom)
|
|
166
|
-
const submitCount = useAtomValue(submitCountAtom)
|
|
162
|
+
const [value, setValue] = useAtom(valueAtom) as [Schema.Schema.Encoded<S>, (v: unknown) => void];
|
|
163
|
+
const [isTouched, setTouched] = useAtom(touchedAtom);
|
|
164
|
+
const storedError = useAtomValue(errorAtom);
|
|
165
|
+
const submitCount = useAtomValue(submitCountAtom);
|
|
167
166
|
|
|
168
|
-
const validationAtom = React.useMemo(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
)
|
|
172
|
-
const validationResult = useAtomValue(validationAtom)
|
|
173
|
-
const validateImmediate = useAtomSet(validationAtom)
|
|
167
|
+
const validationAtom = React.useMemo(() => getOrCreateValidationAtom(fieldPath, fieldDef.schema), [fieldPath]);
|
|
168
|
+
const validationResult = useAtomValue(validationAtom);
|
|
169
|
+
const validateImmediate = useAtomSet(validationAtom);
|
|
174
170
|
|
|
175
|
-
const shouldDebounceValidation = parsedMode.validation === "onChange"
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
const validate = useDebounced(validateImmediate, shouldDebounceValidation ? parsedMode.debounce : null)
|
|
171
|
+
const shouldDebounceValidation = parsedMode.validation === "onChange" && parsedMode.debounce !== null &&
|
|
172
|
+
!parsedMode.autoSubmit;
|
|
173
|
+
const validate = useDebounced(validateImmediate, shouldDebounceValidation ? parsedMode.debounce : null);
|
|
179
174
|
|
|
180
|
-
const prevValueRef = React.useRef(value)
|
|
175
|
+
const prevValueRef = React.useRef(value);
|
|
181
176
|
React.useEffect(() => {
|
|
182
177
|
if (prevValueRef.current === value) {
|
|
183
|
-
return
|
|
178
|
+
return;
|
|
184
179
|
}
|
|
185
|
-
prevValueRef.current = value
|
|
180
|
+
prevValueRef.current = value;
|
|
186
181
|
|
|
187
|
-
const shouldValidate = parsedMode.validation === "onChange"
|
|
188
|
-
|
|
189
|
-
|
|
182
|
+
const shouldValidate = parsedMode.validation === "onChange" ||
|
|
183
|
+
(parsedMode.validation === "onBlur" && isTouched) ||
|
|
184
|
+
(parsedMode.validation === "onSubmit" && submitCount > 0);
|
|
190
185
|
|
|
191
186
|
if (shouldValidate) {
|
|
192
|
-
validate(value)
|
|
187
|
+
validate(value);
|
|
193
188
|
}
|
|
194
|
-
}, [value, isTouched, submitCount, validate])
|
|
189
|
+
}, [value, isTouched, submitCount, validate]);
|
|
195
190
|
|
|
196
191
|
const livePerFieldError: Option.Option<string> = React.useMemo(() => {
|
|
197
192
|
if (validationResult._tag === "Failure") {
|
|
198
|
-
const parseError = Cause.failureOption(validationResult.cause)
|
|
193
|
+
const parseError = Cause.failureOption(validationResult.cause);
|
|
199
194
|
if (Option.isSome(parseError) && ParseResult.isParseError(parseError.value)) {
|
|
200
|
-
return Validation.extractFirstError(parseError.value)
|
|
195
|
+
return Validation.extractFirstError(parseError.value);
|
|
201
196
|
}
|
|
202
197
|
}
|
|
203
|
-
return Option.none()
|
|
204
|
-
}, [validationResult])
|
|
198
|
+
return Option.none();
|
|
199
|
+
}, [validationResult]);
|
|
205
200
|
|
|
206
|
-
const isValidating = validationResult.waiting
|
|
201
|
+
const isValidating = validationResult.waiting;
|
|
207
202
|
|
|
208
203
|
const validationError: Option.Option<string> = React.useMemo(() => {
|
|
209
204
|
if (Option.isSome(livePerFieldError)) {
|
|
210
|
-
return livePerFieldError
|
|
205
|
+
return livePerFieldError;
|
|
211
206
|
}
|
|
212
207
|
|
|
213
208
|
if (Option.isSome(storedError)) {
|
|
214
209
|
// Hide field-sourced errors when validation passes or is pending (async gap).
|
|
215
210
|
// Refinement errors persist until re-submit - they can't be cleared by typing.
|
|
216
211
|
const shouldHideStoredError = storedError.value.source === "field" &&
|
|
217
|
-
(validationResult._tag === "Success" || isValidating)
|
|
212
|
+
(validationResult._tag === "Success" || isValidating);
|
|
218
213
|
|
|
219
214
|
if (shouldHideStoredError) {
|
|
220
|
-
return Option.none()
|
|
215
|
+
return Option.none();
|
|
221
216
|
}
|
|
222
|
-
return Option.some(storedError.value.message)
|
|
217
|
+
return Option.some(storedError.value.message);
|
|
223
218
|
}
|
|
224
219
|
|
|
225
|
-
return Option.none()
|
|
226
|
-
}, [livePerFieldError, storedError, validationResult, isValidating])
|
|
220
|
+
return Option.none();
|
|
221
|
+
}, [livePerFieldError, storedError, validationResult, isValidating]);
|
|
227
222
|
|
|
228
223
|
const onChange = React.useCallback(
|
|
229
224
|
(newValue: Schema.Schema.Encoded<S>) => {
|
|
230
|
-
setValue(newValue)
|
|
225
|
+
setValue(newValue);
|
|
231
226
|
},
|
|
232
227
|
[setValue],
|
|
233
|
-
)
|
|
228
|
+
);
|
|
234
229
|
|
|
235
230
|
const onBlur = React.useCallback(() => {
|
|
236
|
-
setTouched(true)
|
|
231
|
+
setTouched(true);
|
|
237
232
|
if (parsedMode.validation === "onBlur") {
|
|
238
|
-
validate(value)
|
|
233
|
+
validate(value);
|
|
239
234
|
}
|
|
240
|
-
autoSubmitOnBlur?.()
|
|
241
|
-
}, [setTouched, validate, value, autoSubmitOnBlur])
|
|
242
|
-
|
|
243
|
-
const
|
|
244
|
-
const isDirty = React.useMemo(
|
|
245
|
-
() => isPathOrParentDirty(dirtyFields, fieldPath),
|
|
246
|
-
[dirtyFields, fieldPath],
|
|
247
|
-
)
|
|
235
|
+
autoSubmitOnBlur?.();
|
|
236
|
+
}, [setTouched, validate, value, autoSubmitOnBlur]);
|
|
237
|
+
|
|
238
|
+
const isDirty = useAtomValue(isDirtyAtom);
|
|
248
239
|
const shouldShowError = parsedMode.validation === "onChange"
|
|
249
|
-
?
|
|
240
|
+
? isDirty || submitCount > 0
|
|
250
241
|
: parsedMode.validation === "onBlur"
|
|
251
|
-
?
|
|
252
|
-
: submitCount > 0
|
|
253
|
-
|
|
254
|
-
const fieldState: FieldState<Schema.Schema.Encoded<S>> = React.useMemo(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
242
|
+
? isTouched || submitCount > 0
|
|
243
|
+
: submitCount > 0;
|
|
244
|
+
|
|
245
|
+
const fieldState: FieldState<Schema.Schema.Encoded<S>> = React.useMemo(
|
|
246
|
+
() => ({
|
|
247
|
+
value,
|
|
248
|
+
onChange,
|
|
249
|
+
onBlur,
|
|
250
|
+
error: shouldShowError ? validationError : Option.none<string>(),
|
|
251
|
+
isTouched,
|
|
252
|
+
isValidating,
|
|
253
|
+
isDirty,
|
|
254
|
+
}),
|
|
255
|
+
[value, onChange, onBlur, shouldShowError, validationError, isTouched, isValidating, isDirty],
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
return <Component field={fieldState} props={extraProps} />;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
return React.memo(FieldComponent) as React.FC<P>;
|
|
262
|
+
};
|
|
269
263
|
|
|
270
264
|
const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
271
265
|
fieldKey: string,
|
|
@@ -283,130 +277,126 @@ const makeArrayFieldComponent = <S extends Schema.Schema.Any>(
|
|
|
283
277
|
operations: FormAtoms.FormOperations<any>,
|
|
284
278
|
componentMap: ArrayItemComponentMap<S>,
|
|
285
279
|
): ArrayFieldComponent<S, any> => {
|
|
286
|
-
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast)
|
|
280
|
+
const isStructSchema = AST.isTypeLiteral(def.itemSchema.ast);
|
|
287
281
|
|
|
288
282
|
const ArrayWrapper: React.FC<{
|
|
289
|
-
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode
|
|
283
|
+
readonly children: (ops: ArrayFieldOperations<Schema.Schema.Encoded<S>>) => React.ReactNode;
|
|
290
284
|
}> = ({ children }) => {
|
|
291
|
-
const arrayCtx = useContext(ArrayItemContext)
|
|
292
|
-
const [formStateOption, setFormState] = useAtom(stateAtom)
|
|
293
|
-
const formState = Option.getOrThrow(formStateOption)
|
|
285
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
286
|
+
const [formStateOption, setFormState] = useAtom(stateAtom);
|
|
287
|
+
const formState = Option.getOrThrow(formStateOption);
|
|
294
288
|
|
|
295
|
-
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
289
|
+
const fieldPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
296
290
|
const items = React.useMemo(
|
|
297
291
|
() => (getNestedValue(formState.values, fieldPath) ?? []) as ReadonlyArray<Schema.Schema.Encoded<S>>,
|
|
298
292
|
[formState.values, fieldPath],
|
|
299
|
-
)
|
|
293
|
+
);
|
|
300
294
|
|
|
301
295
|
const append = React.useCallback(
|
|
302
296
|
(value?: Schema.Schema.Encoded<S>) => {
|
|
303
297
|
setFormState((prev) => {
|
|
304
|
-
if (Option.isNone(prev)) return prev
|
|
305
|
-
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value))
|
|
306
|
-
})
|
|
298
|
+
if (Option.isNone(prev)) return prev;
|
|
299
|
+
return Option.some(operations.appendArrayItem(prev.value, fieldPath, def.itemSchema, value));
|
|
300
|
+
});
|
|
307
301
|
},
|
|
308
302
|
[fieldPath, setFormState],
|
|
309
|
-
)
|
|
303
|
+
);
|
|
310
304
|
|
|
311
305
|
const remove = React.useCallback(
|
|
312
306
|
(index: number) => {
|
|
313
307
|
setFormState((prev) => {
|
|
314
|
-
if (Option.isNone(prev)) return prev
|
|
315
|
-
return Option.some(operations.removeArrayItem(prev.value, fieldPath, index))
|
|
316
|
-
})
|
|
308
|
+
if (Option.isNone(prev)) return prev;
|
|
309
|
+
return Option.some(operations.removeArrayItem(prev.value, fieldPath, index));
|
|
310
|
+
});
|
|
317
311
|
},
|
|
318
312
|
[fieldPath, setFormState],
|
|
319
|
-
)
|
|
313
|
+
);
|
|
320
314
|
|
|
321
315
|
const swap = React.useCallback(
|
|
322
316
|
(indexA: number, indexB: number) => {
|
|
323
317
|
setFormState((prev) => {
|
|
324
|
-
if (Option.isNone(prev)) return prev
|
|
325
|
-
return Option.some(operations.swapArrayItems(prev.value, fieldPath, indexA, indexB))
|
|
326
|
-
})
|
|
318
|
+
if (Option.isNone(prev)) return prev;
|
|
319
|
+
return Option.some(operations.swapArrayItems(prev.value, fieldPath, indexA, indexB));
|
|
320
|
+
});
|
|
327
321
|
},
|
|
328
322
|
[fieldPath, setFormState],
|
|
329
|
-
)
|
|
323
|
+
);
|
|
330
324
|
|
|
331
325
|
const move = React.useCallback(
|
|
332
326
|
(from: number, to: number) => {
|
|
333
327
|
setFormState((prev) => {
|
|
334
|
-
if (Option.isNone(prev)) return prev
|
|
335
|
-
return Option.some(operations.moveArrayItem(prev.value, fieldPath, from, to))
|
|
336
|
-
})
|
|
328
|
+
if (Option.isNone(prev)) return prev;
|
|
329
|
+
return Option.some(operations.moveArrayItem(prev.value, fieldPath, from, to));
|
|
330
|
+
});
|
|
337
331
|
},
|
|
338
332
|
[fieldPath, setFormState],
|
|
339
|
-
)
|
|
333
|
+
);
|
|
340
334
|
|
|
341
|
-
return <>{children({ items, append, remove, swap, move })}
|
|
342
|
-
}
|
|
335
|
+
return <>{children({ items, append, remove, swap, move })}</>;
|
|
336
|
+
};
|
|
343
337
|
|
|
344
338
|
const ItemWrapper: React.FC<{
|
|
345
|
-
readonly index: number
|
|
346
|
-
readonly children: React.ReactNode | ((props: { readonly remove: () => void }) => React.ReactNode)
|
|
339
|
+
readonly index: number;
|
|
340
|
+
readonly children: React.ReactNode | ((props: { readonly remove: () => void; }) => React.ReactNode);
|
|
347
341
|
}> = ({ children, index }) => {
|
|
348
|
-
const arrayCtx = useContext(ArrayItemContext)
|
|
349
|
-
const setFormState = useAtomSet(stateAtom)
|
|
342
|
+
const arrayCtx = useContext(ArrayItemContext);
|
|
343
|
+
const setFormState = useAtomSet(stateAtom);
|
|
350
344
|
|
|
351
|
-
const parentPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey
|
|
352
|
-
const itemPath = `${parentPath}[${index}]
|
|
345
|
+
const parentPath = arrayCtx ? `${arrayCtx.parentPath}.${fieldKey}` : fieldKey;
|
|
346
|
+
const itemPath = `${parentPath}[${index}]`;
|
|
353
347
|
|
|
354
348
|
const remove = React.useCallback(() => {
|
|
355
349
|
setFormState((prev) => {
|
|
356
|
-
if (Option.isNone(prev)) return prev
|
|
357
|
-
return Option.some(operations.removeArrayItem(prev.value, parentPath, index))
|
|
358
|
-
})
|
|
359
|
-
}, [parentPath, index, setFormState])
|
|
350
|
+
if (Option.isNone(prev)) return prev;
|
|
351
|
+
return Option.some(operations.removeArrayItem(prev.value, parentPath, index));
|
|
352
|
+
});
|
|
353
|
+
}, [parentPath, index, setFormState]);
|
|
360
354
|
|
|
361
355
|
return (
|
|
362
356
|
<ArrayItemContext.Provider value={{ index, parentPath: itemPath }}>
|
|
363
357
|
{typeof children === "function" ? children({ remove }) : children}
|
|
364
358
|
</ArrayItemContext.Provider>
|
|
365
|
-
)
|
|
366
|
-
}
|
|
359
|
+
);
|
|
360
|
+
};
|
|
367
361
|
|
|
368
|
-
const itemFieldComponents: Record<string, React.FC> = {}
|
|
362
|
+
const itemFieldComponents: Record<string, React.FC> = {};
|
|
369
363
|
|
|
370
364
|
if (isStructSchema) {
|
|
371
|
-
const ast = def.itemSchema.ast as AST.TypeLiteral
|
|
365
|
+
const ast = def.itemSchema.ast as AST.TypeLiteral;
|
|
372
366
|
for (const prop of ast.propertySignatures) {
|
|
373
|
-
const itemKey = prop.name as string
|
|
374
|
-
const itemSchema = { ast: prop.type } as Schema.Schema.Any
|
|
375
|
-
const itemDef = Field.makeField(itemKey, itemSchema)
|
|
376
|
-
const itemComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[itemKey]
|
|
367
|
+
const itemKey = prop.name as string;
|
|
368
|
+
const itemSchema = { ast: prop.type } as Schema.Schema.Any;
|
|
369
|
+
const itemDef = Field.makeField(itemKey, itemSchema);
|
|
370
|
+
const itemComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[itemKey];
|
|
377
371
|
itemFieldComponents[itemKey] = makeFieldComponent(
|
|
378
372
|
itemKey,
|
|
379
373
|
itemDef,
|
|
380
374
|
errorsAtom,
|
|
381
375
|
submitCountAtom,
|
|
382
|
-
dirtyFieldsAtom,
|
|
383
376
|
parsedMode,
|
|
384
377
|
getOrCreateValidationAtom,
|
|
385
378
|
getOrCreateFieldAtoms,
|
|
386
379
|
itemComponent,
|
|
387
|
-
)
|
|
380
|
+
);
|
|
388
381
|
}
|
|
389
382
|
}
|
|
390
383
|
|
|
391
384
|
const properties: Record<string, unknown> = {
|
|
392
385
|
Item: ItemWrapper,
|
|
393
386
|
...itemFieldComponents,
|
|
394
|
-
}
|
|
387
|
+
};
|
|
395
388
|
|
|
396
389
|
return new Proxy(ArrayWrapper, {
|
|
397
390
|
get(target, prop) {
|
|
398
391
|
if (prop in properties) {
|
|
399
|
-
return properties[prop as string]
|
|
392
|
+
return properties[prop as string];
|
|
400
393
|
}
|
|
401
|
-
return Reflect.get(target, prop)
|
|
394
|
+
return Reflect.get(target, prop);
|
|
402
395
|
},
|
|
403
|
-
}) as ArrayFieldComponent<S, any
|
|
404
|
-
}
|
|
396
|
+
}) as ArrayFieldComponent<S, any>;
|
|
397
|
+
};
|
|
405
398
|
|
|
406
|
-
const makeFieldComponents = <
|
|
407
|
-
TFields extends Field.FieldsRecord,
|
|
408
|
-
CM extends FieldComponentMap<TFields>,
|
|
409
|
-
>(
|
|
399
|
+
const makeFieldComponents = <TFields extends Field.FieldsRecord, CM extends FieldComponentMap<TFields>>(
|
|
410
400
|
fields: TFields,
|
|
411
401
|
stateAtom: Atom.Writable<
|
|
412
402
|
Option.Option<FormBuilder.FormState<TFields>>,
|
|
@@ -424,11 +414,11 @@ const makeFieldComponents = <
|
|
|
424
414
|
operations: FormAtoms.FormOperations<TFields>,
|
|
425
415
|
componentMap: CM,
|
|
426
416
|
): FieldComponents<TFields, CM> => {
|
|
427
|
-
const components: Record<string, any> = {}
|
|
417
|
+
const components: Record<string, any> = {};
|
|
428
418
|
|
|
429
419
|
for (const [key, def] of Object.entries(fields)) {
|
|
430
420
|
if (Field.isArrayFieldDef(def)) {
|
|
431
|
-
const arrayComponentMap = (componentMap as Record<string, any>)[key]
|
|
421
|
+
const arrayComponentMap = (componentMap as Record<string, any>)[key];
|
|
432
422
|
components[key] = makeArrayFieldComponent(
|
|
433
423
|
key,
|
|
434
424
|
def as Field.ArrayFieldDef<string, Schema.Schema.Any>,
|
|
@@ -441,25 +431,24 @@ const makeFieldComponents = <
|
|
|
441
431
|
getOrCreateFieldAtoms,
|
|
442
432
|
operations,
|
|
443
433
|
arrayComponentMap,
|
|
444
|
-
)
|
|
434
|
+
);
|
|
445
435
|
} else if (Field.isFieldDef(def)) {
|
|
446
|
-
const fieldComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[key]
|
|
436
|
+
const fieldComponent = (componentMap as Record<string, React.FC<FieldComponentProps<any, any>>>)[key];
|
|
447
437
|
components[key] = makeFieldComponent(
|
|
448
438
|
key,
|
|
449
439
|
def,
|
|
450
440
|
errorsAtom,
|
|
451
441
|
submitCountAtom,
|
|
452
|
-
dirtyFieldsAtom,
|
|
453
442
|
parsedMode,
|
|
454
443
|
getOrCreateValidationAtom,
|
|
455
444
|
getOrCreateFieldAtoms,
|
|
456
445
|
fieldComponent,
|
|
457
|
-
)
|
|
446
|
+
);
|
|
458
447
|
}
|
|
459
448
|
}
|
|
460
449
|
|
|
461
|
-
return components as FieldComponents<TFields, CM
|
|
462
|
-
}
|
|
450
|
+
return components as FieldComponents<TFields, CM>;
|
|
451
|
+
};
|
|
463
452
|
|
|
464
453
|
export const make: {
|
|
465
454
|
<
|
|
@@ -471,19 +460,19 @@ export const make: {
|
|
|
471
460
|
>(
|
|
472
461
|
self: FormBuilder.FormBuilder<TFields, never>,
|
|
473
462
|
options: {
|
|
474
|
-
readonly runtime?: Atom.AtomRuntime<never, never
|
|
475
|
-
readonly fields: CM
|
|
476
|
-
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit
|
|
463
|
+
readonly runtime?: Atom.AtomRuntime<never, never>;
|
|
464
|
+
readonly fields: CM;
|
|
465
|
+
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit;
|
|
477
466
|
readonly onSubmit: (
|
|
478
467
|
args: SubmitArgs,
|
|
479
468
|
ctx: {
|
|
480
|
-
readonly decoded: Field.DecodedFromFields<TFields
|
|
481
|
-
readonly encoded: Field.EncodedFromFields<TFields
|
|
482
|
-
readonly get: Atom.FnContext
|
|
469
|
+
readonly decoded: Field.DecodedFromFields<TFields>;
|
|
470
|
+
readonly encoded: Field.EncodedFromFields<TFields>;
|
|
471
|
+
readonly get: Atom.FnContext;
|
|
483
472
|
},
|
|
484
|
-
) => A | Effect.Effect<A, E, never
|
|
473
|
+
) => A | Effect.Effect<A, E, never>;
|
|
485
474
|
},
|
|
486
|
-
): BuiltForm<TFields, never, A, E, SubmitArgs, CM
|
|
475
|
+
): BuiltForm<TFields, never, A, E, SubmitArgs, CM>;
|
|
487
476
|
|
|
488
477
|
<
|
|
489
478
|
TFields extends Field.FieldsRecord,
|
|
@@ -496,30 +485,30 @@ export const make: {
|
|
|
496
485
|
>(
|
|
497
486
|
self: FormBuilder.FormBuilder<TFields, R>,
|
|
498
487
|
options: {
|
|
499
|
-
readonly runtime: Atom.AtomRuntime<R, ER
|
|
500
|
-
readonly fields: CM
|
|
501
|
-
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit
|
|
488
|
+
readonly runtime: Atom.AtomRuntime<R, ER>;
|
|
489
|
+
readonly fields: CM;
|
|
490
|
+
readonly mode?: SubmitArgs extends void ? Mode.FormMode : Mode.FormModeWithoutAutoSubmit;
|
|
502
491
|
readonly onSubmit: (
|
|
503
492
|
args: SubmitArgs,
|
|
504
493
|
ctx: {
|
|
505
|
-
readonly decoded: Field.DecodedFromFields<TFields
|
|
506
|
-
readonly encoded: Field.EncodedFromFields<TFields
|
|
507
|
-
readonly get: Atom.FnContext
|
|
494
|
+
readonly decoded: Field.DecodedFromFields<TFields>;
|
|
495
|
+
readonly encoded: Field.EncodedFromFields<TFields>;
|
|
496
|
+
readonly get: Atom.FnContext;
|
|
508
497
|
},
|
|
509
|
-
) => A | Effect.Effect<A, E, R
|
|
498
|
+
) => A | Effect.Effect<A, E, R>;
|
|
510
499
|
},
|
|
511
|
-
): BuiltForm<TFields, R, A, E, SubmitArgs, CM
|
|
500
|
+
): BuiltForm<TFields, R, A, E, SubmitArgs, CM>;
|
|
512
501
|
} = (self: any, options: any): any => {
|
|
513
|
-
const { fields: components, mode, onSubmit, runtime: providedRuntime } = options
|
|
514
|
-
const runtime = providedRuntime ?? Atom.runtime(Layer.empty)
|
|
515
|
-
const parsedMode = Mode.parse(mode)
|
|
516
|
-
const { fields } = self
|
|
502
|
+
const { fields: components, mode, onSubmit, runtime: providedRuntime } = options;
|
|
503
|
+
const runtime = providedRuntime ?? Atom.runtime(Layer.empty);
|
|
504
|
+
const parsedMode = Mode.parse(mode);
|
|
505
|
+
const { fields } = self;
|
|
517
506
|
|
|
518
507
|
const formAtoms = FormAtoms.make({
|
|
519
508
|
formBuilder: self,
|
|
520
509
|
runtime,
|
|
521
510
|
onSubmit,
|
|
522
|
-
})
|
|
511
|
+
});
|
|
523
512
|
|
|
524
513
|
const {
|
|
525
514
|
combinedSchema,
|
|
@@ -544,37 +533,40 @@ export const make: {
|
|
|
544
533
|
submitAtom,
|
|
545
534
|
submitCountAtom,
|
|
546
535
|
valuesAtom,
|
|
547
|
-
} = formAtoms
|
|
536
|
+
} = formAtoms;
|
|
548
537
|
|
|
549
538
|
const InitializeComponent: React.FC<{
|
|
550
|
-
readonly defaultValues: any
|
|
551
|
-
readonly children: React.ReactNode
|
|
539
|
+
readonly defaultValues: any;
|
|
540
|
+
readonly children: React.ReactNode;
|
|
552
541
|
}> = ({ children, defaultValues }) => {
|
|
553
|
-
const registry = React.useContext(RegistryContext)
|
|
554
|
-
const state = useAtomValue(stateAtom)
|
|
555
|
-
const setFormState = useAtomSet(stateAtom)
|
|
556
|
-
const callSubmit = useAtomSet(submitAtom)
|
|
557
|
-
const isInitializedRef = React.useRef(false)
|
|
542
|
+
const registry = React.useContext(RegistryContext);
|
|
543
|
+
const state = useAtomValue(stateAtom);
|
|
544
|
+
const setFormState = useAtomSet(stateAtom);
|
|
545
|
+
const callSubmit = useAtomSet(submitAtom);
|
|
546
|
+
const isInitializedRef = React.useRef(false);
|
|
558
547
|
|
|
559
548
|
React.useEffect(() => {
|
|
560
|
-
const isKeptAlive = registry.get(keepAliveActiveAtom)
|
|
561
|
-
const currentState = registry.get(stateAtom)
|
|
549
|
+
const isKeptAlive = registry.get(keepAliveActiveAtom);
|
|
550
|
+
const currentState = registry.get(stateAtom);
|
|
562
551
|
|
|
563
552
|
if (!isKeptAlive) {
|
|
564
|
-
setFormState(Option.some(operations.createInitialState(defaultValues)))
|
|
553
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
565
554
|
} else if (Option.isNone(currentState)) {
|
|
566
|
-
setFormState(Option.some(operations.createInitialState(defaultValues)))
|
|
555
|
+
setFormState(Option.some(operations.createInitialState(defaultValues)));
|
|
567
556
|
}
|
|
568
557
|
|
|
569
|
-
isInitializedRef.current = true
|
|
558
|
+
isInitializedRef.current = true;
|
|
570
559
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- mount-only
|
|
571
|
-
}, [registry])
|
|
560
|
+
}, [registry]);
|
|
572
561
|
|
|
573
|
-
const debouncedAutoSubmit = useDebounced(
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
562
|
+
const debouncedAutoSubmit = useDebounced(
|
|
563
|
+
() => {
|
|
564
|
+
const stateOption = registry.get(stateAtom);
|
|
565
|
+
if (Option.isNone(stateOption)) return;
|
|
566
|
+
callSubmit(undefined);
|
|
567
|
+
},
|
|
568
|
+
parsedMode.autoSubmit && parsedMode.validation === "onChange" ? parsedMode.debounce : null,
|
|
569
|
+
);
|
|
578
570
|
|
|
579
571
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
580
572
|
// Auto-Submit Coordination
|
|
@@ -587,75 +579,75 @@ export const make: {
|
|
|
587
579
|
// metadata updates (submitCount, lastSubmittedValues).
|
|
588
580
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
589
581
|
|
|
590
|
-
const lastValuesRef = React.useRef<unknown>(null)
|
|
591
|
-
const pendingChangesRef = React.useRef(false)
|
|
592
|
-
const wasSubmittingRef = React.useRef(false)
|
|
582
|
+
const lastValuesRef = React.useRef<unknown>(null);
|
|
583
|
+
const pendingChangesRef = React.useRef(false);
|
|
584
|
+
const wasSubmittingRef = React.useRef(false);
|
|
593
585
|
|
|
594
586
|
useAtomSubscribe(
|
|
595
587
|
stateAtom,
|
|
596
588
|
React.useCallback(() => {
|
|
597
|
-
if (!isInitializedRef.current) return
|
|
589
|
+
if (!isInitializedRef.current) return;
|
|
598
590
|
|
|
599
|
-
const state = registry.get(stateAtom)
|
|
600
|
-
if (Option.isNone(state)) return
|
|
601
|
-
const currentValues = state.value.values
|
|
591
|
+
const state = registry.get(stateAtom);
|
|
592
|
+
if (Option.isNone(state)) return;
|
|
593
|
+
const currentValues = state.value.values;
|
|
602
594
|
|
|
603
595
|
// Reference equality filters out submit metadata changes.
|
|
604
596
|
// Works because setFieldValue creates new values object (immutable update).
|
|
605
|
-
if (currentValues === lastValuesRef.current) return
|
|
606
|
-
lastValuesRef.current = currentValues
|
|
597
|
+
if (currentValues === lastValuesRef.current) return;
|
|
598
|
+
lastValuesRef.current = currentValues;
|
|
607
599
|
|
|
608
|
-
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return
|
|
600
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
609
601
|
|
|
610
|
-
const submitResult = registry.get(submitAtom)
|
|
602
|
+
const submitResult = registry.get(submitAtom);
|
|
611
603
|
if (submitResult.waiting) {
|
|
612
|
-
pendingChangesRef.current = true
|
|
604
|
+
pendingChangesRef.current = true;
|
|
613
605
|
} else {
|
|
614
|
-
debouncedAutoSubmit()
|
|
606
|
+
debouncedAutoSubmit();
|
|
615
607
|
}
|
|
616
608
|
}, [debouncedAutoSubmit, registry]),
|
|
617
609
|
{ immediate: false },
|
|
618
|
-
)
|
|
610
|
+
);
|
|
619
611
|
|
|
620
612
|
useAtomSubscribe(
|
|
621
613
|
submitAtom,
|
|
622
614
|
React.useCallback(
|
|
623
615
|
(result) => {
|
|
624
|
-
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return
|
|
616
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onChange") return;
|
|
625
617
|
|
|
626
|
-
const isSubmitting = result.waiting
|
|
627
|
-
const wasSubmitting = wasSubmittingRef.current
|
|
628
|
-
wasSubmittingRef.current = isSubmitting
|
|
618
|
+
const isSubmitting = result.waiting;
|
|
619
|
+
const wasSubmitting = wasSubmittingRef.current;
|
|
620
|
+
wasSubmittingRef.current = isSubmitting;
|
|
629
621
|
|
|
630
622
|
// Flush queued changes when submit completes
|
|
631
623
|
if (wasSubmitting && !isSubmitting) {
|
|
632
624
|
if (pendingChangesRef.current) {
|
|
633
|
-
pendingChangesRef.current = false
|
|
634
|
-
debouncedAutoSubmit()
|
|
625
|
+
pendingChangesRef.current = false;
|
|
626
|
+
debouncedAutoSubmit();
|
|
635
627
|
}
|
|
636
628
|
}
|
|
637
629
|
},
|
|
638
630
|
[debouncedAutoSubmit],
|
|
639
631
|
),
|
|
640
632
|
{ immediate: false },
|
|
641
|
-
)
|
|
633
|
+
);
|
|
642
634
|
|
|
643
635
|
const onBlurAutoSubmit = React.useCallback(() => {
|
|
644
|
-
if (!parsedMode.autoSubmit || parsedMode.validation !== "onBlur") return
|
|
636
|
+
if (!parsedMode.autoSubmit || parsedMode.validation !== "onBlur") return;
|
|
645
637
|
|
|
646
|
-
const stateOption = registry.get(stateAtom)
|
|
647
|
-
if (Option.isNone(stateOption)) return
|
|
638
|
+
const stateOption = registry.get(stateAtom);
|
|
639
|
+
if (Option.isNone(stateOption)) return;
|
|
648
640
|
|
|
649
|
-
const { lastSubmittedValues, values } = stateOption.value
|
|
650
|
-
if (Option.isSome(lastSubmittedValues) && values === lastSubmittedValues.value.encoded) return
|
|
641
|
+
const { lastSubmittedValues, values } = stateOption.value;
|
|
642
|
+
if (Option.isSome(lastSubmittedValues) && values === lastSubmittedValues.value.encoded) return;
|
|
651
643
|
|
|
652
|
-
callSubmit(undefined)
|
|
653
|
-
}, [registry, callSubmit])
|
|
644
|
+
callSubmit(undefined);
|
|
645
|
+
}, [registry, callSubmit]);
|
|
654
646
|
|
|
655
|
-
if (Option.isNone(state)) return null
|
|
647
|
+
if (Option.isNone(state)) return null;
|
|
656
648
|
|
|
657
|
-
return <AutoSubmitContext.Provider value={onBlurAutoSubmit}>{children}</AutoSubmitContext.Provider
|
|
658
|
-
}
|
|
649
|
+
return <AutoSubmitContext.Provider value={onBlurAutoSubmit}>{children}</AutoSubmitContext.Provider>;
|
|
650
|
+
};
|
|
659
651
|
|
|
660
652
|
const fieldComponents = makeFieldComponents(
|
|
661
653
|
fields,
|
|
@@ -668,19 +660,19 @@ export const make: {
|
|
|
668
660
|
getOrCreateFieldAtoms,
|
|
669
661
|
operations,
|
|
670
662
|
components,
|
|
671
|
-
)
|
|
663
|
+
);
|
|
672
664
|
|
|
673
665
|
const KeepAlive: React.FC = () => {
|
|
674
|
-
const setKeepAliveActive = useAtomSet(keepAliveActiveAtom)
|
|
666
|
+
const setKeepAliveActive = useAtomSet(keepAliveActiveAtom);
|
|
675
667
|
|
|
676
668
|
React.useLayoutEffect(() => {
|
|
677
|
-
setKeepAliveActive(true)
|
|
678
|
-
return () => setKeepAliveActive(false)
|
|
679
|
-
}, [setKeepAliveActive])
|
|
669
|
+
setKeepAliveActive(true);
|
|
670
|
+
return () => setKeepAliveActive(false);
|
|
671
|
+
}, [setKeepAliveActive]);
|
|
680
672
|
|
|
681
|
-
useAtomMount(mountAtom)
|
|
682
|
-
return null
|
|
683
|
-
}
|
|
673
|
+
useAtomMount(mountAtom);
|
|
674
|
+
return null;
|
|
675
|
+
};
|
|
684
676
|
|
|
685
677
|
return {
|
|
686
678
|
values: valuesAtom,
|
|
@@ -701,5 +693,5 @@ export const make: {
|
|
|
701
693
|
mount: mountAtom,
|
|
702
694
|
KeepAlive,
|
|
703
695
|
...fieldComponents,
|
|
704
|
-
}
|
|
705
|
-
}
|
|
696
|
+
};
|
|
697
|
+
};
|