@paragrav/rhf-utils 0.62.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.
@@ -1,140 +1,89 @@
1
- import { jsx as F } from "react/jsx-runtime";
2
- import s from "react";
3
- import { get as S, useFormState as R } from "react-hook-form";
4
- import { flatten as b } from "flat";
5
- function f() {
6
- const e = s.createContext(void 0), r = () => s.useContext(e), t = () => {
7
- const o = r();
8
- if (o === void 0) throw new Error();
9
- return o;
10
- };
11
- return {
12
- Provider: e.Provider,
13
- useMaybe: r,
14
- useRequired: t
15
- };
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
+ };
16
17
  }
17
- const {
18
- Provider: x,
19
- useRequired: l
20
- } = f(), k = ({ children: e }) => {
21
- const [r, t] = s.useState({}), o = s.useCallback(
22
- (n, a, c) => {
23
- if (r[a.formId]) throw new Error("Form id already exists.");
24
- t((u) => ({
25
- ...u,
26
- [a.formId]: { state: n, utils: a, options: c }
27
- }));
28
- },
29
- [r]
30
- ), m = s.useCallback(
31
- (n, a) => {
32
- t((c) => {
33
- const u = c[n];
34
- if (!u) throw new Error("Form id doesn't exist");
35
- return {
36
- ...c,
37
- [n]: { ...u, state: a }
38
- };
39
- });
40
- },
41
- []
42
- ), i = s.useCallback((n) => {
43
- t(
44
- (a) => Object.fromEntries(
45
- Object.entries(a).filter(([c]) => c !== n)
46
- )
47
- );
48
- }, []);
49
- return /* @__PURE__ */ F(
50
- x,
51
- {
52
- value: {
53
- // set
54
- add: o,
55
- update: m,
56
- remove: i,
57
- // get
58
- state: r
59
- },
60
- children: e
61
- }
62
- );
63
- }, {
64
- Provider: I,
65
- useRequired: d,
66
- useMaybe: q
67
- } = f(), U = (e) => Object.keys(e).length === 0, E = (e) => b(e), p = (e) => {
68
- const r = E(e), t = Object.keys(r);
69
- return Object.fromEntries(
70
- t.reduce(
71
- (o, m) => {
72
- const i = m.replace(
73
- v,
74
- ""
75
- );
76
- if (i === m) return o;
77
- const n = S(e, i, void 0);
78
- return n && o.push([i, n]), o;
79
- },
80
- []
81
- // entries
82
- )
83
- );
84
- }, v = /\.(?:type|message)\b$/, C = (e) => Object.fromEntries(
85
- Object.entries(p(e)).map(([r, t]) => [
86
- r,
87
- {
88
- type: t.type,
89
- message: t.message,
90
- hasRef: !!t.ref
91
- // strip out actual ref, etc. (avoid circular JSON error)
92
- }
93
- ])
94
- ), O = (e) => {
95
- if (!e) return;
96
- const [r] = s.useState(e);
97
- g(r), h(r);
98
- }, g = (e) => {
99
- const r = d(), t = l(), o = y(e);
100
- s.useEffect(
101
- () => (t.add(o, r, e), () => {
102
- t.remove(r.formId);
103
- }),
104
- // eslint-disable-next-line react-hooks/exhaustive-deps
105
- []
106
- );
107
- }, h = (e) => {
108
- const r = d(), t = l(), o = y(e);
109
- s.useEffect(
110
- // when form state changes, publish to relay context
111
- () => {
112
- t.update(r.formId, o);
113
- },
114
- // eslint-disable-next-line react-hooks/exhaustive-deps
115
- [o]
116
- );
117
- }, y = (e) => {
118
- const r = R(), t = e.select(r), o = JSON.stringify({
119
- ...t,
120
- errors: t.errors && C(t.errors)
121
- });
122
- return s.useMemo(
123
- // when watch JSON changes, update memo
124
- () => t,
125
- // eslint-disable-next-line react-hooks/exhaustive-deps
126
- [o]
127
- );
128
- }, _ = ({ options: e }) => (O(e), null);
129
- export {
130
- k as F,
131
- I as _,
132
- _ as a,
133
- l as b,
134
- f as c,
135
- q as d,
136
- O as e,
137
- p as g,
138
- U as i,
139
- d as u
140
- };
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 };