@paragrav/rhf-utils 0.61.0 → 0.63.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/README.md +49 -89
- package/dist/dts/_exports/relay.d.ts +7 -8
- package/dist/dts/errors/flat/getFlatFieldErrors.d.ts +5 -1
- package/dist/dts/form/RhfUtilsFormComponentPropsType.d.ts +2 -2
- package/dist/dts/form/UseRhfUtilsFormChildrenPropsType.d.ts +2 -2
- package/dist/dts/form/context/utils/LastSubmitStateType.d.ts +1 -0
- package/dist/dts/form/context/utils/{RhfUtilsContextPropsType.d.ts → RhfUtilsContextType.d.ts} +3 -2
- package/dist/dts/form/context/utils/useRhfUtilsContext.d.ts +4 -4
- package/dist/dts/form/defaults/form/useRhfUtilsFormResolvedFormProps.d.ts +10 -10
- package/dist/dts/form/providers/RhfUtilsFormProviders.d.ts +1 -1
- package/dist/dts/form/providers/RhfUtilsFormProvidersPropsType.d.ts +2 -0
- package/dist/dts/form/relay/FormRelayOptions.d.ts +16 -0
- package/dist/dts/form/{state/relay/FormStateRelayContextProvider.d.ts → relay/context/FormRelayContextProvider.d.ts} +1 -1
- package/dist/dts/form/relay/context/useFormRelayContext.d.ts +12 -0
- package/dist/dts/form/relay/context/utils.d.ts +4 -0
- package/dist/dts/form/relay/get/FormRelayGroupType.d.ts +16 -0
- package/dist/dts/form/relay/get/grouper/context/hooks.d.ts +8 -0
- package/dist/dts/form/relay/get/grouper/context/index.d.ts +5 -0
- package/dist/dts/form/relay/get/grouper/context/provider.d.ts +9 -0
- package/dist/dts/form/relay/get/grouper/useFirstFormStateGroup.d.ts +9 -0
- package/dist/dts/form/relay/get/useFormRelay.d.ts +13 -0
- package/dist/dts/form/relay/set/FormRelaySetter.d.ts +6 -0
- package/dist/dts/form/relay/set/useFormRelaySet.d.ts +2 -0
- package/dist/dts/form/relay/types.d.ts +12 -0
- package/dist/dts/form/with-handlers-and-children/RhfUtilsFormProps.d.ts +5 -1
- package/dist/dts/form/with-handlers-and-children/_useHandleSubmit.d.ts +1 -1
- package/dist/dts/form/with-providers/RhfUtilsFormWithProviders.d.ts +1 -1
- package/dist/dts/submit/UseRhfUtilsFormOnSubmitContextType.d.ts +3 -3
- package/dist/dts/submit/last-error/useLastSubmitErrorContextWith.d.ts +1 -1
- package/dist/esm/FormRelaySetter.mjs +89 -0
- package/dist/esm/index.mjs +352 -596
- package/dist/esm/relay.mjs +48 -221
- package/dist/esm/trpc.mjs +24 -40
- package/package.json +28 -29
- package/dist/dts/form/RhfUtilsFormStateWithUtilsType.d.ts +0 -7
- package/dist/dts/form/state/relay/FormStateRelayedAggregatedType.d.ts +0 -10
- package/dist/dts/form/state/relay/FormStateRelayedItemType.d.ts +0 -11
- package/dist/dts/form/state/relay/FormStateRelayedOptionsType.d.ts +0 -20
- package/dist/dts/form/state/relay/FormStateRelayedType.d.ts +0 -3
- package/dist/dts/form/state/relay/pull/hooks.d.ts +0 -31
- package/dist/dts/form/state/relay/push/FormStateRelayPusher.d.ts +0 -4
- package/dist/dts/form/state/relay/push/useFormStateRelayPusher.d.ts +0 -3
- package/dist/dts/form/state/relay/useFormStateRelayContext.d.ts +0 -20
- package/dist/dts/form/state/relay/utils.d.ts +0 -4
- package/dist/esm/getFlatFieldErrors.mjs +0 -55
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import e from "react";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import { get as n, useFormState as r } from "react-hook-form";
|
|
4
|
+
import { flatten as i } from "flat";
|
|
5
|
+
//#region src/utils/createContext.ts
|
|
6
|
+
function a() {
|
|
7
|
+
let t = e.createContext(void 0), n = () => e.useContext(t);
|
|
8
|
+
return {
|
|
9
|
+
Provider: t.Provider,
|
|
10
|
+
useMaybe: n,
|
|
11
|
+
useRequired: () => {
|
|
12
|
+
let e = n();
|
|
13
|
+
if (e === void 0) throw Error();
|
|
14
|
+
return e;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/form/relay/context/useFormRelayContext.ts
|
|
20
|
+
var { Provider: o, useRequired: s } = a(), c = ({ children: n }) => {
|
|
21
|
+
let [r, i] = e.useState({});
|
|
22
|
+
return /* @__PURE__ */ t(o, {
|
|
23
|
+
value: {
|
|
24
|
+
add: e.useCallback((e, t, n) => {
|
|
25
|
+
if (r[t.formId]) throw Error("Form id already exists.");
|
|
26
|
+
i((r) => ({
|
|
27
|
+
...r,
|
|
28
|
+
[t.formId]: {
|
|
29
|
+
state: e,
|
|
30
|
+
utils: t,
|
|
31
|
+
options: n
|
|
32
|
+
}
|
|
33
|
+
}));
|
|
34
|
+
}, [r]),
|
|
35
|
+
update: e.useCallback((e, t) => {
|
|
36
|
+
i((n) => {
|
|
37
|
+
let r = n[e];
|
|
38
|
+
if (!r) throw Error("Form id doesn't exist");
|
|
39
|
+
return {
|
|
40
|
+
...n,
|
|
41
|
+
[e]: {
|
|
42
|
+
...r,
|
|
43
|
+
state: t
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
}, []),
|
|
48
|
+
remove: e.useCallback((e) => {
|
|
49
|
+
i((t) => Object.fromEntries(Object.entries(t).filter(([t]) => t !== e)));
|
|
50
|
+
}, []),
|
|
51
|
+
state: r
|
|
52
|
+
},
|
|
53
|
+
children: n
|
|
54
|
+
});
|
|
55
|
+
}, { Provider: l, useRequired: u, useMaybe: d } = a(), f = (e) => Object.keys(e).length === 0, p = (e) => i(e), m = (e) => {
|
|
56
|
+
let t = p(e);
|
|
57
|
+
return Object.fromEntries(Object.keys(t).reduce((t, r) => {
|
|
58
|
+
let i = r.replace(h, "");
|
|
59
|
+
if (i === r) return t;
|
|
60
|
+
let a = n(e, i, void 0);
|
|
61
|
+
return a && t.push([i, a]), t;
|
|
62
|
+
}, []));
|
|
63
|
+
}, h = /\.(?:type|message)\b$/, g = (e) => Object.fromEntries(Object.entries(m(e)).map(([e, t]) => [e, {
|
|
64
|
+
type: t.type,
|
|
65
|
+
message: t.message,
|
|
66
|
+
hasRef: !!t.ref
|
|
67
|
+
}])), _ = (t) => {
|
|
68
|
+
if (!t) return;
|
|
69
|
+
let [n] = e.useState(t);
|
|
70
|
+
v(n), y(n);
|
|
71
|
+
}, v = (t) => {
|
|
72
|
+
let n = u(), r = s(), i = b(t);
|
|
73
|
+
e.useEffect(() => (r.add(i, n, t), () => {
|
|
74
|
+
r.remove(n.formId);
|
|
75
|
+
}), []);
|
|
76
|
+
}, y = (t) => {
|
|
77
|
+
let n = u(), r = s(), i = b(t);
|
|
78
|
+
e.useEffect(() => {
|
|
79
|
+
r.update(n.formId, i);
|
|
80
|
+
}, [i]);
|
|
81
|
+
}, b = (t) => {
|
|
82
|
+
let n = r(), i = t.select(n), a = JSON.stringify({
|
|
83
|
+
...i,
|
|
84
|
+
errors: i.errors && g(i.errors)
|
|
85
|
+
});
|
|
86
|
+
return e.useMemo(() => i, [a]);
|
|
87
|
+
}, x = ({ options: e }) => (_(e), null);
|
|
88
|
+
//#endregion
|
|
89
|
+
export { l as a, c, f as i, s as l, _ as n, u as o, m as r, d as s, x as t, a as u };
|