@paragrav/rhf-utils 0.0.32 → 0.0.36
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/esm/form/context/group/FormGroupContextProvider.mjs +30 -0
- package/dist/esm/form/context/group/index.mjs +11 -0
- package/dist/esm/form/context/group/useAsFormGroupParent.mjs +12 -0
- package/dist/esm/form/context/group/useFormGroupChildIsMountedTracker.mjs +16 -0
- package/dist/esm/form/context/group/useFormGroupChildIsSubmittingTracker.mjs +12 -0
- package/dist/esm/form/context/group/useFormGroupIsAnyBusy.mjs +8 -0
- package/dist/esm/form/context/group/useFormGroupIsChildBusy.mjs +8 -0
- package/dist/esm/form/context/group/useFormGroupIsParentBusy.mjs +8 -0
- package/dist/esm/form/useFormIsBusy.mjs +5 -6
- package/dist/esm/main.mjs +46 -38
- package/dist/types/errors/flat/types.d.ts +10 -0
- package/dist/types/errors/root/getRootFlatFieldErrors.d.ts +1 -1
- package/dist/types/form/Form.d.ts +3 -2
- package/dist/types/form/context/group/FormGroupContextProvider.d.ts +5 -0
- package/dist/types/form/context/group/index.d.ts +13 -0
- package/dist/types/form/context/group/useAsFormGroupParent.d.ts +7 -0
- package/dist/types/form/context/group/useFormGroupChildIsMountedTracker.d.ts +2 -0
- package/dist/types/form/context/group/useFormGroupChildIsSubmittingTracker.d.ts +2 -0
- package/dist/types/form/context/group/useFormGroupIsAnyBusy.d.ts +2 -0
- package/dist/types/form/context/group/useFormGroupIsChildBusy.d.ts +2 -0
- package/dist/types/form/context/group/useFormGroupIsParentBusy.d.ts +2 -0
- package/dist/types/form/useFormOrParentIsBusy.d.ts +2 -0
- package/dist/types/form/utils/getSubmitterButtonData.d.ts +4 -1
- package/dist/types/main.d.ts +7 -3
- package/dist/types/utils/useToggle.d.ts +4 -0
- package/package.json +27 -11
- package/dist/esm/form/context/parent/FormParentContextProvider.mjs +0 -10
- package/dist/esm/form/context/parent/index.mjs +0 -6
- package/dist/esm/form/context/parent/useAsFormParentState.mjs +0 -14
- package/dist/esm/form/context/parent/useFormParentIsBusy.mjs +0 -8
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
2
|
+
import s from "react";
|
|
3
|
+
import { _FormGroupContextProvider as m } from "./index.mjs";
|
|
4
|
+
const B = ({ children: o }) => {
|
|
5
|
+
const [t, u] = s.useState([]), n = t.length, a = s.useCallback((e, l) => {
|
|
6
|
+
u(
|
|
7
|
+
(r) => l ? (
|
|
8
|
+
// add to array
|
|
9
|
+
[...r, e]
|
|
10
|
+
) : (
|
|
11
|
+
// remove from array
|
|
12
|
+
r.filter((c) => c !== e)
|
|
13
|
+
)
|
|
14
|
+
);
|
|
15
|
+
}, []), [d, i] = s.useState(!1);
|
|
16
|
+
return /* @__PURE__ */ y(m, { value: {
|
|
17
|
+
children: {
|
|
18
|
+
busyCount: n,
|
|
19
|
+
busyIds: t,
|
|
20
|
+
setBusyId: a
|
|
21
|
+
},
|
|
22
|
+
parent: {
|
|
23
|
+
isBusy: d,
|
|
24
|
+
setIsBusy: i
|
|
25
|
+
}
|
|
26
|
+
}, children: o });
|
|
27
|
+
}, h = B;
|
|
28
|
+
export {
|
|
29
|
+
h as default
|
|
30
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import r from "react";
|
|
2
|
+
import t from "../../useFormIsBusy.mjs";
|
|
3
|
+
import { _useFormGroupContext as e } from "./index.mjs";
|
|
4
|
+
const u = () => {
|
|
5
|
+
const o = t(), { setIsBusy: s } = e().parent;
|
|
6
|
+
r.useEffect(() => {
|
|
7
|
+
s(o);
|
|
8
|
+
}, [s, o]);
|
|
9
|
+
}, a = u;
|
|
10
|
+
export {
|
|
11
|
+
a as default
|
|
12
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import e from "react";
|
|
2
|
+
import { useFormContext as u } from "react-hook-form";
|
|
3
|
+
import { _useFormGroupContext as n } from "./index.mjs";
|
|
4
|
+
const c = () => {
|
|
5
|
+
u();
|
|
6
|
+
const { setBusyId: r } = n().children, t = e.useId();
|
|
7
|
+
e.useEffect(() => {
|
|
8
|
+
const o = (s) => {
|
|
9
|
+
r(t, s);
|
|
10
|
+
};
|
|
11
|
+
return o(!0), () => o(!1);
|
|
12
|
+
}, []);
|
|
13
|
+
}, i = c;
|
|
14
|
+
export {
|
|
15
|
+
i as default
|
|
16
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import s from "react";
|
|
2
|
+
import { useFormState as e } from "react-hook-form";
|
|
3
|
+
import { _useFormGroupContext as i } from "./index.mjs";
|
|
4
|
+
const u = () => {
|
|
5
|
+
const { isSubmitting: t } = e(), { setBusyId: o } = i().children, r = s.useId();
|
|
6
|
+
s.useEffect(() => {
|
|
7
|
+
o(r, t);
|
|
8
|
+
}, [t, r, o]);
|
|
9
|
+
}, d = u;
|
|
10
|
+
export {
|
|
11
|
+
d as default
|
|
12
|
+
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { useFormState as
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
return !!(t || o || s);
|
|
1
|
+
import { useFormState as s } from "react-hook-form";
|
|
2
|
+
const r = () => {
|
|
3
|
+
const { isSubmitting: o, isLoading: t } = s();
|
|
4
|
+
return !!(o || t);
|
|
6
5
|
};
|
|
7
6
|
export {
|
|
8
|
-
|
|
7
|
+
r as default
|
|
9
8
|
};
|
package/dist/esm/main.mjs
CHANGED
|
@@ -1,48 +1,56 @@
|
|
|
1
1
|
import { default as e } from "./devtool/LazyDevTool.mjs";
|
|
2
2
|
import { default as s } from "./errors/context/index.mjs";
|
|
3
|
-
import { default as
|
|
4
|
-
import { default as
|
|
3
|
+
import { default as a } from "./errors/context/provider.mjs";
|
|
4
|
+
import { default as f } from "./errors/message/FormErrorMessage.mjs";
|
|
5
5
|
import { default as d } from "./errors/message/FormErrorMessageByPath.mjs";
|
|
6
|
-
import { default as
|
|
6
|
+
import { default as F } from "./errors/nonfield/FormNonFieldErrorMarker.mjs";
|
|
7
7
|
import { default as n } from "./errors/nonfield/FormNonFieldErrorMarkerHtmlAttribute.mjs";
|
|
8
|
-
import { default as
|
|
9
|
-
import { default as
|
|
10
|
-
import { default as
|
|
11
|
-
import { default as
|
|
12
|
-
import { default as
|
|
13
|
-
import { default as
|
|
14
|
-
import { default as
|
|
15
|
-
import { default as
|
|
16
|
-
import { default as
|
|
17
|
-
import { default as
|
|
18
|
-
import { default as
|
|
19
|
-
import { default as
|
|
20
|
-
import { default as
|
|
21
|
-
import { default as
|
|
22
|
-
import { default as K } from "./
|
|
23
|
-
import { default as U } from "./
|
|
8
|
+
import { default as E } from "./errors/orphan/useFormHasOrphanAndNoFieldErrors.mjs";
|
|
9
|
+
import { default as S } from "./errors/orphan/useOrphanFormErrorsMemo.mjs";
|
|
10
|
+
import { default as C } from "./errors/orphan/useOrphanFormErrorsToConsole.mjs";
|
|
11
|
+
import { default as h } from "./errors/root/useRootFormFieldErrorsMemo.mjs";
|
|
12
|
+
import { default as A } from "./errors/useFormErrorConsoleDebug.mjs";
|
|
13
|
+
import { default as I } from "./errors/useFormErrorsEffect.mjs";
|
|
14
|
+
import { default as B } from "./errors/useFormErrorsIfAny.mjs";
|
|
15
|
+
import { default as P } from "./errors/useFormErrorsMemo.mjs";
|
|
16
|
+
import { default as R } from "./errors/useFormRequestSubmit.mjs";
|
|
17
|
+
import { default as v } from "./form/context/group/FormGroupContextProvider.mjs";
|
|
18
|
+
import { default as N } from "./form/context/group/useAsFormGroupParent.mjs";
|
|
19
|
+
import { default as q } from "./form/context/group/useFormGroupChildIsMountedTracker.mjs";
|
|
20
|
+
import { default as L } from "./form/context/group/useFormGroupChildIsSubmittingTracker.mjs";
|
|
21
|
+
import { default as w } from "./form/context/group/useFormGroupIsAnyBusy.mjs";
|
|
22
|
+
import { default as K } from "./form/context/group/useFormGroupIsChildBusy.mjs";
|
|
23
|
+
import { default as U } from "./form/context/group/useFormGroupIsParentBusy.mjs";
|
|
24
|
+
import { default as W } from "./form/utils/getSubmitterButtonData.mjs";
|
|
25
|
+
import { default as Y } from "./submit/useFormOnSubmitSuccessful.mjs";
|
|
26
|
+
import { default as _ } from "./submit/useFormOnSubmitSuccessfulAndReset.mjs";
|
|
27
|
+
import { default as rr } from "./submit/useResetFormOnSubmitSuccessful.mjs";
|
|
24
28
|
export {
|
|
25
|
-
|
|
29
|
+
f as FormErrorMessage,
|
|
26
30
|
d as FormErrorMessageByPath,
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
a as FormErrorsFlatContextProvider,
|
|
32
|
+
v as FormGroupContextProvider,
|
|
33
|
+
F as FormNonFieldErrorMarker,
|
|
29
34
|
n as FormNonFieldErrorMarkerHtmlAttribute,
|
|
30
|
-
H as FormParentContextProvider,
|
|
31
35
|
e as LazyDevTool,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
W as getSubmitterButtonData,
|
|
37
|
+
N as useAsFormGroupParent,
|
|
38
|
+
A as useFormErrorConsoleDebug,
|
|
39
|
+
I as useFormErrorsEffect,
|
|
36
40
|
s as useFormErrorsFlatContext,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
B as useFormErrorsIfAny,
|
|
42
|
+
P as useFormErrorsMemo,
|
|
43
|
+
q as useFormGroupChildIsMountedTracker,
|
|
44
|
+
L as useFormGroupChildIsSubmittingTracker,
|
|
45
|
+
w as useFormGroupIsAnyBusy,
|
|
46
|
+
K as useFormGroupIsChildBusy,
|
|
47
|
+
U as useFormGroupIsParentBusy,
|
|
48
|
+
E as useFormHasOrphanAndNoFieldErrors,
|
|
49
|
+
Y as useFormOnSubmitSuccessful,
|
|
50
|
+
_ as useFormOnSubmitSuccessfulAndReset,
|
|
51
|
+
R as useFormRequestSubmit,
|
|
52
|
+
S as useOrphanFormErrorsMemo,
|
|
53
|
+
C as useOrphanFormErrorsToConsole,
|
|
54
|
+
rr as useResetFormAfterSubmitSuccessful,
|
|
55
|
+
h as useRootFormFieldErrorsMemo
|
|
48
56
|
};
|
|
@@ -2,7 +2,7 @@ import { FlatFieldErrors } from '../flat/types';
|
|
|
2
2
|
import { FieldErrors } from 'react-hook-form';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Generate {@link FlatFieldErrors} object from {@link FieldErrors}.
|
|
6
6
|
*/
|
|
7
7
|
declare const getRootFlatFieldErrors: (errors: FieldErrors) => FlatFieldErrors;
|
|
8
8
|
export default getRootFlatFieldErrors;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FormBaseProps } from './FormBase';
|
|
2
|
-
import { LazyDevToolProps } from '../devtool/LazyDevTool';
|
|
3
2
|
import { FieldValues, SubmitErrorHandler, UseFormReturn } from 'react-hook-form';
|
|
4
3
|
import { default as React } from 'react';
|
|
4
|
+
import { DevtoolUIProps } from '@hookform/devtools/dist/devToolUI';
|
|
5
5
|
|
|
6
6
|
export type FormProps<TFieldValues extends FieldValues, TTransformedValues extends FieldValues> = Omit<FormBaseProps, 'onSubmit'> & {
|
|
7
7
|
isDev: boolean;
|
|
@@ -12,8 +12,9 @@ export type FormProps<TFieldValues extends FieldValues, TTransformedValues exten
|
|
|
12
12
|
/** Submit handler when form is invalid. */
|
|
13
13
|
onSubmitInvalid?: SubmitErrorHandler<TFieldValues>;
|
|
14
14
|
options?: {
|
|
15
|
+
stopSubmitPropagation?: boolean;
|
|
15
16
|
disableEmptyRootError?: boolean;
|
|
16
|
-
devTool?:
|
|
17
|
+
devTool?: DevtoolUIProps | 'disabled';
|
|
17
18
|
};
|
|
18
19
|
className?: string;
|
|
19
20
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type FormGroupContext = {
|
|
3
|
+
children: {
|
|
4
|
+
busyIds: string[];
|
|
5
|
+
busyCount: number;
|
|
6
|
+
setBusyId: (id: string, isBusy: boolean) => void;
|
|
7
|
+
};
|
|
8
|
+
parent: {
|
|
9
|
+
isBusy: boolean;
|
|
10
|
+
setIsBusy: (isBusy: boolean) => void;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const _useFormGroupContextMaybe: () => FormGroupContext | undefined, _useFormGroupContext: () => FormGroupContext, _FormGroupContextProvider: import('react').Provider<FormGroupContext | undefined>;
|
|
@@ -4,5 +4,8 @@ import { default as React } from 'react';
|
|
|
4
4
|
* Get [name, value] of button/input that submitted form.
|
|
5
5
|
* Useful when determining user intent
|
|
6
6
|
*/
|
|
7
|
-
declare const getSubmitterButtonData: (event: React.BaseSyntheticEvent) => [
|
|
7
|
+
declare const getSubmitterButtonData: (event: React.BaseSyntheticEvent) => [
|
|
8
|
+
name: string,
|
|
9
|
+
value: string
|
|
10
|
+
] | undefined;
|
|
8
11
|
export default getSubmitterButtonData;
|
package/dist/types/main.d.ts
CHANGED
|
@@ -14,9 +14,13 @@ export { default as useFormErrorsEffect } from './errors/useFormErrorsEffect';
|
|
|
14
14
|
export { default as useFormErrorsIfAny } from './errors/useFormErrorsIfAny';
|
|
15
15
|
export { default as useFormErrorsMemo } from './errors/useFormErrorsMemo';
|
|
16
16
|
export { default as useFormRequestSubmit } from './errors/useFormRequestSubmit';
|
|
17
|
-
export { default as
|
|
18
|
-
export { default as
|
|
19
|
-
export { default as
|
|
17
|
+
export { default as FormGroupContextProvider } from './form/context/group/FormGroupContextProvider';
|
|
18
|
+
export { default as useAsFormGroupParent } from './form/context/group/useAsFormGroupParent';
|
|
19
|
+
export { default as useFormGroupChildIsMountedTracker } from './form/context/group/useFormGroupChildIsMountedTracker';
|
|
20
|
+
export { default as useFormGroupChildIsSubmittingTracker } from './form/context/group/useFormGroupChildIsSubmittingTracker';
|
|
21
|
+
export { default as useFormGroupIsAnyBusy } from './form/context/group/useFormGroupIsAnyBusy';
|
|
22
|
+
export { default as useFormGroupIsChildBusy } from './form/context/group/useFormGroupIsChildBusy';
|
|
23
|
+
export { default as useFormGroupIsParentBusy } from './form/context/group/useFormGroupIsParentBusy';
|
|
20
24
|
export { default as getSubmitterButtonData } from './form/utils/getSubmitterButtonData';
|
|
21
25
|
export { default as useFormOnSubmitSuccessful } from './submit/useFormOnSubmitSuccessful';
|
|
22
26
|
export { default as useFormOnSubmitSuccessfulAndReset } from './submit/useFormOnSubmitSuccessfulAndReset';
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@paragrav/rhf-utils",
|
|
3
3
|
"author": "paragrav.dev",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.36",
|
|
6
6
|
"description": "Integration utilities for react-hook-form.",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"sideEffects": false,
|
|
@@ -71,17 +71,33 @@
|
|
|
71
71
|
"default": "./dist/esm/errors/root/useRootFormFieldErrors.mjs",
|
|
72
72
|
"types": "./dist/types/errors/root/useRootFormFieldErrors.d.ts"
|
|
73
73
|
},
|
|
74
|
-
"./form/context/
|
|
75
|
-
"default": "./dist/esm/form/context/
|
|
76
|
-
"types": "./dist/types/form/context/
|
|
74
|
+
"./form/context/group/FormGroupContextProvider": {
|
|
75
|
+
"default": "./dist/esm/form/context/group/FormGroupContextProvider.mjs",
|
|
76
|
+
"types": "./dist/types/form/context/group/FormGroupContextProvider.d.ts"
|
|
77
77
|
},
|
|
78
|
-
"./form/context/
|
|
79
|
-
"default": "./dist/esm/form/context/
|
|
80
|
-
"types": "./dist/types/form/context/
|
|
78
|
+
"./form/context/group/useAsFormGroupParent": {
|
|
79
|
+
"default": "./dist/esm/form/context/group/useAsFormGroupParent.mjs",
|
|
80
|
+
"types": "./dist/types/form/context/group/useAsFormGroupParent.d.ts"
|
|
81
81
|
},
|
|
82
|
-
"./form/context/
|
|
83
|
-
"default": "./dist/esm/form/context/
|
|
84
|
-
"types": "./dist/types/form/context/
|
|
82
|
+
"./form/context/group/useFormGroupChildIsSubmittingTracker": {
|
|
83
|
+
"default": "./dist/esm/form/context/group/useFormGroupChildIsSubmittingTracker.mjs",
|
|
84
|
+
"types": "./dist/types/form/context/group/useFormGroupChildIsSubmittingTracker.d.ts"
|
|
85
|
+
},
|
|
86
|
+
"./form/context/group/useFormGroupChildIsMountedTracker": {
|
|
87
|
+
"default": "./dist/esm/form/context/group/useFormGroupChildIsMountedTracker.mjs",
|
|
88
|
+
"types": "./dist/types/form/context/group/useFormGroupChildIsMountedTracker.d.ts"
|
|
89
|
+
},
|
|
90
|
+
"./form/context/group/useFormGroupIsAnyBusy": {
|
|
91
|
+
"default": "./dist/esm/form/context/group/useFormGroupIsAnyBusy.mjs",
|
|
92
|
+
"types": "./dist/types/form/context/group/useFormGroupIsAnyBusy.d.ts"
|
|
93
|
+
},
|
|
94
|
+
"./form/context/group/useFormGroupIsChildBusy": {
|
|
95
|
+
"default": "./dist/esm/form/context/group/useFormGroupIsChildBusy.mjs",
|
|
96
|
+
"types": "./dist/types/form/context/group/useFormGroupIsChildBusy.d.ts"
|
|
97
|
+
},
|
|
98
|
+
"./form/context/group/useFormGroupIsParentBusy": {
|
|
99
|
+
"default": "./dist/esm/form/context/group/useFormGroupIsParentBusy.mjs",
|
|
100
|
+
"types": "./dist/types/form/context/group/useFormGroupIsParentBusy.d.ts"
|
|
85
101
|
},
|
|
86
102
|
"./form/context/utils/getSubmitterButtonData": {
|
|
87
103
|
"default": "./dist/esm/form/utils/getSubmitterButtonData.mjs",
|
|
@@ -156,7 +172,7 @@
|
|
|
156
172
|
"packageManager": "npm@10.2.4",
|
|
157
173
|
"repository": {
|
|
158
174
|
"type": "git",
|
|
159
|
-
"url": "https://github.com/paragrav/rhf-utils"
|
|
175
|
+
"url": "git+https://github.com/paragrav/rhf-utils.git"
|
|
160
176
|
},
|
|
161
177
|
"bugs": {
|
|
162
178
|
"url": "https://github.com/paragrav/rhf-utils/issues"
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import s from "react";
|
|
3
|
-
import { _FormParentContextProvider as n } from "./index.mjs";
|
|
4
|
-
const a = ({ children: t }) => {
|
|
5
|
-
const [r, o] = s.useState(!1);
|
|
6
|
-
return /* @__PURE__ */ e(n, { value: { isBusy: r, setIsBusy: o }, children: t });
|
|
7
|
-
}, P = a;
|
|
8
|
-
export {
|
|
9
|
-
P as default
|
|
10
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import o from "react";
|
|
2
|
-
import r from "../../useFormIsBusy.mjs";
|
|
3
|
-
import { _useFormParentContext as s } from "./index.mjs";
|
|
4
|
-
const n = () => {
|
|
5
|
-
const e = r(), t = s();
|
|
6
|
-
if (!t)
|
|
7
|
-
throw new Error("Parent context is not provided.");
|
|
8
|
-
o.useEffect(() => {
|
|
9
|
-
t.setIsBusy(e);
|
|
10
|
-
}, [t, e]);
|
|
11
|
-
}, c = n;
|
|
12
|
-
export {
|
|
13
|
-
c as default
|
|
14
|
-
};
|