@paragrav/rhf-utils 0.63.0 → 0.65.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 +8 -6
- package/dist/dts/_exports/form.d.ts +1 -1
- package/dist/dts/client/config/RhfUtilsClientConfigType.d.ts +6 -2
- package/dist/dts/form/{RhfUtilsFormComponentPropsType.d.ts → RhfUtilsFormInjectorProps.d.ts} +6 -2
- package/dist/dts/form/_Controller.d.ts +1 -1
- package/dist/dts/form/providers/RhfUtilsFormProviders.d.ts +1 -1
- package/dist/dts/form/with-handlers-and-children/RhfUtilsForm.d.ts +1 -1
- package/dist/dts/form/with-handlers-and-children/RhfUtilsFormProps.d.ts +2 -10
- package/dist/dts/form/with-handlers-and-children/RhfUtilsFormPropsOnBeforeSubmitInvariants.d.ts +12 -0
- package/dist/dts/form/with-handlers-and-children/_ChildrenViaProviders.d.ts +1 -1
- package/dist/dts/form/with-handlers-and-children/_FormWithSubmitHandler.d.ts +1 -1
- package/dist/dts/form/with-providers/RhfUtilsFormWithProviders.d.ts +1 -1
- package/dist/dts/form/with-providers/RhfUtilsFormWithProvidersProps.d.ts +5 -1
- package/dist/dts/playwright/index.d.ts +0 -0
- package/dist/dts/playwright-ct.config.d.ts +5 -0
- package/dist/dts/resolvers/zod/form/RhfUtilsZodForm.d.ts +1 -1
- package/dist/dts/resolvers/zod/providers/RhfUtilsZodFormProviders.d.ts +1 -1
- package/dist/dts/resolvers/zod/with-providers/RhfUtilsZodFormWithProviders.d.ts +1 -1
- package/dist/dts/submit/error/FormSubmitFieldErrors.d.ts +1 -1
- package/dist/esm/index.mjs +81 -85
- package/package.json +27 -25
package/README.md
CHANGED
|
@@ -77,20 +77,22 @@ export const rhfUtilsClientConfig: RhfUtilsClientConfig = {
|
|
|
77
77
|
// inject your own hooks and components
|
|
78
78
|
// into all RhfUtilsZodForm instances
|
|
79
79
|
FormChildren: (
|
|
80
|
-
//
|
|
80
|
+
// RhfUtilsFormInjectorProps
|
|
81
81
|
{
|
|
82
|
+
Outlet, // Form instance (RhfUtilsZodForm.Children) "outlet"
|
|
83
|
+
|
|
82
84
|
formId, // unique id string
|
|
83
85
|
formRef, // form element ref
|
|
84
86
|
context, // rhf UseFormReturn (without proxy `formState`)
|
|
85
87
|
options, // RhfUtilsFormOptions (with any custom props)
|
|
86
88
|
Controller, // rhf controller (SafeFieldValues-typed; no schema at this level)
|
|
87
89
|
FormSubmitError, // error class (SafeFieldValues-typed; no schema at this level)
|
|
88
|
-
children, // RhfUtilsZodForm's Children instance
|
|
89
90
|
},
|
|
90
91
|
) => {
|
|
92
|
+
// hook injected across all instances
|
|
91
93
|
useMyGlobalFormHook();
|
|
92
94
|
|
|
93
|
-
//
|
|
95
|
+
// hook injected across all instances with per-instance opt-in flag via custom option props
|
|
94
96
|
// (see "Extend RhfUtilsFormOptions" section for more info)
|
|
95
97
|
useMyOptionalFormHook({
|
|
96
98
|
enabled: !!options.enableMyOptionalFormHook,
|
|
@@ -98,8 +100,8 @@ export const rhfUtilsClientConfig: RhfUtilsClientConfig = {
|
|
|
98
100
|
|
|
99
101
|
return (
|
|
100
102
|
<>
|
|
101
|
-
{/* RhfUtilsZodForm.Children "outlet" (see "Component Hierarchy" section) */}
|
|
102
|
-
|
|
103
|
+
{/* Form instance (RhfUtilsZodForm.Children) "outlet" (see "Component Hierarchy" section). */}
|
|
104
|
+
<Outlet />
|
|
103
105
|
|
|
104
106
|
{/* root errors list */}
|
|
105
107
|
<RootErrorsList />
|
|
@@ -190,7 +192,7 @@ Currently, only `zod` schemas are supported.
|
|
|
190
192
|
{
|
|
191
193
|
field: 'passwordConfirm', // type safe
|
|
192
194
|
message: 'Passwords must match.',
|
|
193
|
-
|
|
195
|
+
validate: data.password === data.passwordConfirm,
|
|
194
196
|
},
|
|
195
197
|
]}
|
|
196
198
|
onBeforeSubmit={({ input, output, api }, context, event) => {
|
|
@@ -2,6 +2,6 @@ export { useRhfUtilsContext } from '../form/context/utils/useRhfUtilsContext';
|
|
|
2
2
|
export type { RhfUtilsFormOptions } from '../form/options/RhfUtilsFormOptionsType';
|
|
3
3
|
export type { SafeFieldValues } from '../form/rhf/SafeFieldValuesType';
|
|
4
4
|
export type { RHF_UseFormReturnWithoutProxies as UseFormReturnWithoutProxies } from '../form/RHF_UseFormReturnWithoutProxiesType';
|
|
5
|
-
export type {
|
|
5
|
+
export type { RhfUtilsFormInjectorProps } from '../form/RhfUtilsFormInjectorProps';
|
|
6
6
|
export type { UseRhfUtilsFormChildrenProps } from '../form/UseRhfUtilsFormChildrenPropsType';
|
|
7
7
|
export { useFormRequestSubmit } from '../form/utils/useFormRequestSubmit';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FlatFieldErrorsOutputConfig } from '../../errors/flat/context/FlatFieldErrorsOutputConfig';
|
|
2
2
|
import { UseRhfUtilsFormGlobalDefaults } from '../../form/defaults/UseRhfUtilsFormGlobalDefaults';
|
|
3
|
-
import {
|
|
3
|
+
import { RhfUtilsFormInjectorProps } from '../../form/RhfUtilsFormInjectorProps';
|
|
4
4
|
import { FormSubmitFieldErrors } from '../../submit/error/FormSubmitFieldErrors';
|
|
5
5
|
import { UseRhfUtilsFormOnSubmitContext } from '../../submit/UseRhfUtilsFormOnSubmitContextType';
|
|
6
6
|
import { MaybePromise } from '../../utils/types';
|
|
@@ -26,8 +26,12 @@ export type RhfUtilsClientConfig = {
|
|
|
26
26
|
* @description
|
|
27
27
|
*
|
|
28
28
|
* (NOTE: context params are not schema-typed as not possible at this level.)
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
*
|
|
32
|
+
* See README.
|
|
29
33
|
*/
|
|
30
|
-
|
|
34
|
+
FormInjector?: React.FC<RhfUtilsFormInjectorProps>;
|
|
31
35
|
/**
|
|
32
36
|
* A hook that returns a callback that determines whether form can be cancelled at event-time.
|
|
33
37
|
*
|
package/dist/dts/form/{RhfUtilsFormComponentPropsType.d.ts → RhfUtilsFormInjectorProps.d.ts}
RENAMED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { UseFormReturn } from 'react-hook-form';
|
|
2
2
|
import { FormSubmitError } from '../submit/error/FormSubmitError';
|
|
3
|
+
import { Merge } from '../utils/types';
|
|
3
4
|
import { _Controller } from './_Controller';
|
|
4
5
|
import { RhfUtilsContext } from './context/utils/RhfUtilsContextType';
|
|
5
6
|
import { SafeFieldValues } from './rhf/SafeFieldValuesType';
|
|
6
7
|
/**
|
|
7
8
|
* RhfUtilsClientConfig's FormComponent props.
|
|
8
9
|
*/
|
|
9
|
-
export type
|
|
10
|
+
export type RhfUtilsFormInjectorProps<TFieldValues extends SafeFieldValues = SafeFieldValues, TTransformedValues extends SafeFieldValues = TFieldValues> = Merge<{
|
|
11
|
+
/** Form instance children (`RhfUtilsZodForm.Children`) to output amid globally-injected code. */
|
|
12
|
+
Outlet: React.FC;
|
|
13
|
+
}, RhfUtilsContext, {
|
|
10
14
|
rhf: UseFormReturn<TFieldValues, unknown, TTransformedValues>;
|
|
11
15
|
Controller: typeof _Controller<TFieldValues>;
|
|
12
16
|
FormSubmitError: typeof FormSubmitError<TFieldValues>;
|
|
13
|
-
}
|
|
17
|
+
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ControllerProps, FieldPath } from 'react-hook-form';
|
|
2
2
|
import { SafeFieldValues } from './rhf/SafeFieldValuesType';
|
|
3
3
|
export type _ControllerProps<TFieldValues extends SafeFieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Omit<ControllerProps<TFieldValues, TName>, 'control'>;
|
|
4
|
-
export declare const _Controller: <TFieldValues extends SafeFieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: _ControllerProps<TFieldValues, TName>) => import("react
|
|
4
|
+
export declare const _Controller: <TFieldValues extends SafeFieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: _ControllerProps<TFieldValues, TName>) => import("react").JSX.Element;
|
|
@@ -2,5 +2,5 @@ import { default as React } from 'react';
|
|
|
2
2
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
3
3
|
import { RhfUtilsFormProvidersProps } from './RhfUtilsFormProvidersPropsType';
|
|
4
4
|
type Props<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues> = React.PropsWithChildren<RhfUtilsFormProvidersProps<TFieldValues, TTransformedValues>>;
|
|
5
|
-
export declare function RhfUtilsFormProviders<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues>({ formId, rhf, resolver, defaultValues, options, relay, children, }: Props<TFieldValues, TTransformedValues>):
|
|
5
|
+
export declare function RhfUtilsFormProviders<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues>({ formId, rhf, resolver, defaultValues, options, relay, children, }: Props<TFieldValues, TTransformedValues>): React.JSX.Element;
|
|
6
6
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
2
2
|
import { RhfUtilsFormProps, RhfUtilsFormPropsGetApiValues } from './RhfUtilsFormProps';
|
|
3
|
-
export declare const RhfUtilsForm: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, onCancel, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, Children, form, className, }: RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>) => import("react
|
|
3
|
+
export declare const RhfUtilsForm: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, onCancel, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, Children, form, className, }: RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>) => import("react").JSX.Element;
|
|
@@ -4,16 +4,8 @@ import { UseRhfUtilsFormOnSubmitContext, UseRhfUtilsFormOnSubmitErrorContext } f
|
|
|
4
4
|
import { UseRhfUtilsFormInstanceFormProps } from '../defaults/form/UseRhfUtilsFormInstanceFormProps';
|
|
5
5
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
6
6
|
import { UseRhfUtilsFormChildrenProps } from '../UseRhfUtilsFormChildrenPropsType';
|
|
7
|
+
import { RhfUtilsFormPropsOnBeforeSubmitInvariants } from './RhfUtilsFormPropsOnBeforeSubmitInvariants';
|
|
7
8
|
export type RhfUtilsFormPropsGetApiValues<TTransformedValues extends SafeFieldValues, TApiValues> = (data: TTransformedValues) => TApiValues;
|
|
8
|
-
export type RhfUtilsFormPropsonBeforeSubmitInvariants<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TApiValues extends undefined | SafeFieldValues> = (data: {
|
|
9
|
-
input: TFieldValues;
|
|
10
|
-
output: TTransformedValues;
|
|
11
|
-
api: TApiValues;
|
|
12
|
-
}, context: UseRhfUtilsFormOnSubmitContext<TFieldValues, TTransformedValues, TApiValues>, event: React.BaseSyntheticEvent<SubmitEvent>) => MaybePromise<{
|
|
13
|
-
field: keyof TFieldValues | keyof TApiValues;
|
|
14
|
-
message: string;
|
|
15
|
-
valid: boolean | undefined | null;
|
|
16
|
-
}[]>;
|
|
17
9
|
export type RhfUtilsFormProps<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined> = {
|
|
18
10
|
getApiData?: TGetApiValues;
|
|
19
11
|
/** Cancellation handler -- channeled through {@link RhfUtilsClientConfig.useCanFormBeCancelled} before propagating to `Children` component. */
|
|
@@ -24,7 +16,7 @@ export type RhfUtilsFormProps<TFieldValues extends SafeFieldValues, TTransformed
|
|
|
24
16
|
* List of invariants to run against input/output/api data.
|
|
25
17
|
* For any and all false-y values, a {@link FormSubmitFieldErrors} will be thrown.
|
|
26
18
|
*/
|
|
27
|
-
onBeforeSubmitInvariants?:
|
|
19
|
+
onBeforeSubmitInvariants?: RhfUtilsFormPropsOnBeforeSubmitInvariants<TFieldValues, TTransformedValues, TApiValues>;
|
|
28
20
|
onBeforeSubmit?: (data: {
|
|
29
21
|
input: TFieldValues;
|
|
30
22
|
output: TTransformedValues;
|
package/dist/dts/form/with-handlers-and-children/RhfUtilsFormPropsOnBeforeSubmitInvariants.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UseRhfUtilsFormOnSubmitContext } from '../../submit/UseRhfUtilsFormOnSubmitContextType';
|
|
2
|
+
import { MaybePromise } from '../../utils/types';
|
|
3
|
+
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
4
|
+
export type RhfUtilsFormPropsOnBeforeSubmitInvariants<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TApiValues extends undefined | SafeFieldValues> = (data: {
|
|
5
|
+
input: TFieldValues;
|
|
6
|
+
output: TTransformedValues;
|
|
7
|
+
api: TApiValues;
|
|
8
|
+
}, context: UseRhfUtilsFormOnSubmitContext<TFieldValues, TTransformedValues, TApiValues>, event: React.BaseSyntheticEvent<SubmitEvent>) => MaybePromise<{
|
|
9
|
+
field: keyof TFieldValues | keyof TApiValues;
|
|
10
|
+
message: string;
|
|
11
|
+
validate: boolean | undefined | null;
|
|
12
|
+
}[]>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
2
2
|
import { RhfUtilsFormProps } from './RhfUtilsFormProps';
|
|
3
|
-
export declare const RhfUtilsFormChildrenViaProviders_Internal: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues>({ onCancel, Children, }: Pick<RhfUtilsFormProps<TFieldValues, TTransformedValues, undefined, undefined>, "Children" | "onCancel">) => import("react
|
|
3
|
+
export declare const RhfUtilsFormChildrenViaProviders_Internal: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues>({ onCancel, Children, }: Pick<RhfUtilsFormProps<TFieldValues, TTransformedValues, undefined, undefined>, "Children" | "onCancel">) => import("react").JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
3
3
|
import { RhfUtilsFormProps, RhfUtilsFormPropsGetApiValues } from './RhfUtilsFormProps';
|
|
4
|
-
export declare const RhfUtilsFormWithSubmitHandler_Internal: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, form, className, children, }: React.PropsWithChildren<Pick<RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>, "getApiData" | "onSubmitInvalid" | "onBeforeSubmitInvariants" | "onBeforeSubmit" | "onSubmit" | "onSubmitSuccess" | "onSubmitError" | "onSubmitFinally" | "form" | "className">>) =>
|
|
4
|
+
export declare const RhfUtilsFormWithSubmitHandler_Internal: <TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, form, className, children, }: React.PropsWithChildren<Pick<RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>, "getApiData" | "onSubmitInvalid" | "onBeforeSubmitInvariants" | "onBeforeSubmit" | "onSubmit" | "onSubmitSuccess" | "onSubmitError" | "onSubmitFinally" | "form" | "className">>) => React.JSX.Element;
|
|
@@ -5,4 +5,4 @@ import { RhfUtilsFormWithProvidersProps } from './RhfUtilsFormWithProvidersProps
|
|
|
5
5
|
* Form providers (with utils) with immediate descendent {@link RhfUtilsForm}.
|
|
6
6
|
* (Syntactic sugar for {@link useRhfUtilsForm}. Use this for most applications.)
|
|
7
7
|
*/
|
|
8
|
-
export declare function RhfUtilsFormWithProviders<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, resolver, rhf, defaultValues, options, relay, onCancel, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, Children, form, formId, className, }: RhfUtilsFormWithProvidersProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>): import("react
|
|
8
|
+
export declare function RhfUtilsFormWithProviders<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ getApiData, resolver, rhf, defaultValues, options, relay, onCancel, onSubmitInvalid, onBeforeSubmitInvariants, onBeforeSubmit, onSubmit, onSubmitSuccess, onSubmitError, onSubmitFinally, Children, form, formId, className, }: RhfUtilsFormWithProvidersProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>): import("react").JSX.Element;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import { Resolver } from 'react-hook-form';
|
|
2
|
+
import { Merge } from '../../utils/types';
|
|
1
3
|
import { RhfUtilsFormProvidersProps } from '../providers/RhfUtilsFormProvidersPropsType';
|
|
2
4
|
import { SafeFieldValues } from '../rhf/SafeFieldValuesType';
|
|
3
5
|
import { RhfUtilsFormProps, RhfUtilsFormPropsGetApiValues } from '../with-handlers-and-children/RhfUtilsFormProps';
|
|
4
|
-
export type RhfUtilsFormWithProvidersProps<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined> =
|
|
6
|
+
export type RhfUtilsFormWithProvidersProps<TFieldValues extends SafeFieldValues, TTransformedValues extends SafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined> = Merge<RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>, RhfUtilsFormProvidersProps<TFieldValues, TTransformedValues>, {
|
|
7
|
+
resolver?: Resolver<TFieldValues, unknown, TTransformedValues>;
|
|
8
|
+
}>;
|
|
File without changes
|
|
@@ -3,5 +3,5 @@ import { RhfUtilsFormProps, RhfUtilsFormPropsGetApiValues } from '../../../form/
|
|
|
3
3
|
import { zodTypeInput, zodTypeOutput } from '../consts';
|
|
4
4
|
import { ZodTypeSafeFieldValues } from '../ZodTypeSafeFieldValuesType';
|
|
5
5
|
type Props<TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], infer U> ? U : undefined> = React.PropsWithChildren<RhfUtilsFormProps<TSchema[typeof zodTypeInput], TSchema[typeof zodTypeOutput], TGetApiValues, TOnSubmitReturnType, TApiValues>>;
|
|
6
|
-
export declare const RhfUtilsZodForm: <TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], infer U> ? U : undefined>(props: Props<TSchema, TGetApiValues, TOnSubmitReturnType, TApiValues>) => import("react
|
|
6
|
+
export declare const RhfUtilsZodForm: <TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], SafeFieldValues>, TOnSubmitReturnType, TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TSchema[typeof zodTypeOutput], infer U> ? U : undefined>(props: Props<TSchema, TGetApiValues, TOnSubmitReturnType, TApiValues>) => import("react").JSX.Element;
|
|
7
7
|
export {};
|
|
@@ -4,5 +4,5 @@ import { ZodTypeSafeFieldValues } from '../ZodTypeSafeFieldValuesType';
|
|
|
4
4
|
type Props<TSchema extends ZodTypeSafeFieldValues> = React.PropsWithChildren<{
|
|
5
5
|
schema: TSchema;
|
|
6
6
|
} & RhfUtilsFormProvidersProps<TSchema[typeof zodTypeInput], TSchema[typeof zodTypeOutput]>>;
|
|
7
|
-
export declare const RhfUtilsZodFormProviders: <TSchema extends ZodTypeSafeFieldValues>({ schema, children, ...props }: Props<TSchema>) => import("react
|
|
7
|
+
export declare const RhfUtilsZodFormProviders: <TSchema extends ZodTypeSafeFieldValues>({ schema, children, ...props }: Props<TSchema>) => import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
@@ -6,5 +6,5 @@ import { ZodTypeSafeFieldValues } from '../ZodTypeSafeFieldValuesType';
|
|
|
6
6
|
type Props<TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TFieldValues extends TSchema[typeof zodTypeInput] = TSchema[typeof zodTypeInput], TTransformedValues extends TSchema[typeof zodTypeOutput] = TSchema[typeof zodTypeOutput], TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined> = React.PropsWithChildren<{
|
|
7
7
|
schema: TSchema;
|
|
8
8
|
} & Omit<RhfUtilsFormProvidersProps<TFieldValues, TTransformedValues>, 'resolver'> & RhfUtilsFormProps<TFieldValues, TTransformedValues, TGetApiValues, TOnSubmitReturnType, TApiValues>>;
|
|
9
|
-
export declare const RhfUtilsZodFormWithProviders: <TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TFieldValues extends TSchema[typeof zodTypeInput] = TSchema[typeof zodTypeInput], TTransformedValues extends TSchema[typeof zodTypeOutput] = TSchema[typeof zodTypeOutput], TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ schema, ...props }: Props<TSchema, TGetApiValues, TOnSubmitReturnType, TFieldValues, TTransformedValues, TApiValues>) => import("react
|
|
9
|
+
export declare const RhfUtilsZodFormWithProviders: <TSchema extends ZodTypeSafeFieldValues, TGetApiValues extends undefined | RhfUtilsFormPropsGetApiValues<TTransformedValues, SafeFieldValues>, TOnSubmitReturnType, TFieldValues extends TSchema[typeof zodTypeInput] = TSchema[typeof zodTypeInput], TTransformedValues extends TSchema[typeof zodTypeOutput] = TSchema[typeof zodTypeOutput], TApiValues extends undefined | SafeFieldValues = TGetApiValues extends RhfUtilsFormPropsGetApiValues<TTransformedValues, infer U> ? U : undefined>({ schema, ...props }: Props<TSchema, TGetApiValues, TOnSubmitReturnType, TFieldValues, TTransformedValues, TApiValues>) => import("react").JSX.Element;
|
|
10
10
|
export {};
|
|
@@ -9,6 +9,6 @@ import { SafeFieldValues } from '../../form/rhf/SafeFieldValuesType';
|
|
|
9
9
|
* - simplified `ErrorOption` value.
|
|
10
10
|
*/
|
|
11
11
|
export type FormSubmitFieldErrors<TFieldValues extends SafeFieldValues = SafeFieldValues> = Record<FieldPath<TFieldValues> | `root.${string}`, {
|
|
12
|
-
type?: string;
|
|
13
12
|
message: string;
|
|
13
|
+
type?: string;
|
|
14
14
|
}>;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -13,20 +13,18 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
13
13
|
}, { Provider: y, useRequired: b } = o(), x = () => {
|
|
14
14
|
let e = b();
|
|
15
15
|
return s.useMemo(() => !e.hasErrors || !e.hasOrphans ? !1 : Object.keys(e.orphans).length === Object.keys(e.all).length, [e]);
|
|
16
|
-
}, S = "data-rhfutils-nonfield-error-marker-path", C = ({ path: e }) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
...t
|
|
23
|
-
});
|
|
24
|
-
}, w = (e) => s.useCallback((t) => {
|
|
16
|
+
}, S = "data-rhfutils-nonfield-error-marker-path", C = ({ path: e }) => /* @__PURE__ */ c("div", {
|
|
17
|
+
role: "alert",
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
style: { display: "none" },
|
|
20
|
+
[S]: e
|
|
21
|
+
}), w = (e) => s.useCallback((t) => {
|
|
25
22
|
if (!e.current) throw Error();
|
|
26
23
|
ee(e.current, t);
|
|
27
24
|
}, [e]), ee = (e, t) => {
|
|
28
25
|
e.requestSubmit(t);
|
|
29
26
|
}, T = class extends Error {
|
|
27
|
+
errors;
|
|
30
28
|
constructor(e, t) {
|
|
31
29
|
super(t), this.errors = e;
|
|
32
30
|
}
|
|
@@ -35,39 +33,39 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
35
33
|
if (!t) return null;
|
|
36
34
|
let n = typeof t == "object" ? t : void 0;
|
|
37
35
|
return /* @__PURE__ */ c(s.Suspense, { children: /* @__PURE__ */ c(O, { ...n }) });
|
|
38
|
-
},
|
|
36
|
+
}, A = () => /* @__PURE__ */ c(k, { config: r().options.devTool }), j = (e) => /* @__PURE__ */ c(u, { ...e }), M = () => {
|
|
39
37
|
let e = s.useContext(_);
|
|
40
38
|
if (e === void 0) throw Error();
|
|
41
39
|
return e;
|
|
42
|
-
},
|
|
40
|
+
}, ne = () => ({
|
|
43
41
|
utils: r(),
|
|
44
42
|
rhf: p(),
|
|
45
43
|
FormSubmitError: T
|
|
46
|
-
}),
|
|
44
|
+
}), re = (e, t, n) => {
|
|
47
45
|
let r = t?.();
|
|
48
46
|
return async () => {
|
|
49
47
|
if (e && await Promise.resolve(r?.(n)) !== !1) return Promise.resolve(e());
|
|
50
48
|
};
|
|
51
|
-
},
|
|
52
|
-
let { useCanFormBeCancelled: t } =
|
|
53
|
-
return
|
|
54
|
-
},
|
|
55
|
-
let n = p(), i = r(), a =
|
|
49
|
+
}, ie = (e) => {
|
|
50
|
+
let { useCanFormBeCancelled: t } = M();
|
|
51
|
+
return re(e, t, ne());
|
|
52
|
+
}, ae = ({ onCancel: e, Children: t }) => {
|
|
53
|
+
let n = p(), i = r(), a = ie(e);
|
|
56
54
|
return /* @__PURE__ */ c(t, {
|
|
57
55
|
...i,
|
|
58
56
|
rhf: n,
|
|
59
57
|
onCancel: a,
|
|
60
|
-
Controller:
|
|
58
|
+
Controller: j,
|
|
61
59
|
FormSubmitError: T
|
|
62
60
|
});
|
|
63
|
-
},
|
|
61
|
+
}, N = (e, t) => {
|
|
64
62
|
Object.entries(t).forEach(([t, n]) => {
|
|
65
63
|
e.setError(t, {
|
|
66
64
|
type: "FormSubmitFieldError",
|
|
67
65
|
...n
|
|
68
66
|
});
|
|
69
67
|
});
|
|
70
|
-
},
|
|
68
|
+
}, P = (e, t, n) => ({
|
|
71
69
|
...e,
|
|
72
70
|
...t,
|
|
73
71
|
className: [
|
|
@@ -77,7 +75,7 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
77
75
|
].filter(Boolean).join(" ").trim() || void 0
|
|
78
76
|
}), F = (e, t, n) => ({
|
|
79
77
|
id: t,
|
|
80
|
-
...P(
|
|
78
|
+
...P(M().defaults?.form, e, n)
|
|
81
79
|
}), I = (e) => {
|
|
82
80
|
let t = E();
|
|
83
81
|
return async function(n) {
|
|
@@ -98,52 +96,50 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
98
96
|
i?.();
|
|
99
97
|
});
|
|
100
98
|
};
|
|
101
|
-
}, R = ({ getApiData: e, onSubmitInvalid: t, onBeforeSubmitInvariants: n, onBeforeSubmit: i, onSubmit: a, onSubmitSuccess: o, onSubmitError:
|
|
102
|
-
let
|
|
99
|
+
}, R = ({ getApiData: e, onSubmitInvalid: t, onBeforeSubmitInvariants: n, onBeforeSubmit: i, onSubmit: a, onSubmitSuccess: o, onSubmitError: l, onSubmitFinally: u, form: d, className: f, children: m }) => {
|
|
100
|
+
let h = p(), g = r(), _ = M(), v = F(d, g.formId, { className: f }), y = async (t, r) => {
|
|
103
101
|
let s = {
|
|
104
|
-
input:
|
|
102
|
+
input: h.getValues(),
|
|
105
103
|
output: t,
|
|
106
104
|
api: e?.(t)
|
|
107
105
|
}, c = {
|
|
108
|
-
utils:
|
|
109
|
-
rhf:
|
|
106
|
+
utils: g,
|
|
107
|
+
rhf: h,
|
|
110
108
|
FormSubmitError: T
|
|
111
109
|
}, l = r;
|
|
112
110
|
n && await z(n, s, c, l), await Promise.resolve(i?.(s, c, l));
|
|
113
111
|
let u = await Promise.resolve(a?.(s, c, l));
|
|
114
|
-
|
|
112
|
+
g.lastSubmitStateRef.current = "success", await Promise.resolve(o?.(u, s, c, l));
|
|
115
113
|
};
|
|
116
|
-
function
|
|
117
|
-
let n = e instanceof T ? e.errors :
|
|
118
|
-
n &&
|
|
119
|
-
utils:
|
|
114
|
+
function b(e, t) {
|
|
115
|
+
let n = e instanceof T ? e.errors : _.onSubmitErrorUnknown?.(e);
|
|
116
|
+
n && N(h, n), l?.(e, {
|
|
117
|
+
utils: g,
|
|
120
118
|
errors: n,
|
|
121
|
-
rhf:
|
|
119
|
+
rhf: h
|
|
122
120
|
}, t);
|
|
123
121
|
}
|
|
124
|
-
let
|
|
125
|
-
onValid:
|
|
122
|
+
let x = L({
|
|
123
|
+
onValid: y,
|
|
126
124
|
onInvalid: t,
|
|
127
|
-
onError:
|
|
128
|
-
onFinally:
|
|
129
|
-
}),
|
|
130
|
-
...
|
|
131
|
-
rhf:
|
|
132
|
-
Controller:
|
|
133
|
-
FormSubmitError: T
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
children: f
|
|
143
|
-
})
|
|
125
|
+
onError: b,
|
|
126
|
+
onFinally: u
|
|
127
|
+
}), S = s.useCallback(() => m, []), C = {
|
|
128
|
+
...g,
|
|
129
|
+
rhf: h,
|
|
130
|
+
Controller: j,
|
|
131
|
+
FormSubmitError: T,
|
|
132
|
+
Outlet: S
|
|
133
|
+
};
|
|
134
|
+
return /* @__PURE__ */ c(_.FormComponent ?? "form", {
|
|
135
|
+
...v,
|
|
136
|
+
id: g.formId,
|
|
137
|
+
ref: g.formRef,
|
|
138
|
+
onSubmit: x,
|
|
139
|
+
children: _.FormInjector ? /* @__PURE__ */ c(_.FormInjector, { ...C }) : m
|
|
144
140
|
});
|
|
145
141
|
}, z = async (e, t, n, r) => {
|
|
146
|
-
let i = (await Promise.resolve(e(t, n, r))).filter(({
|
|
142
|
+
let i = (await Promise.resolve(e(t, n, r))).filter(({ validate: e }) => !e).map(({ field: e, message: t }) => [e, { message: t }]);
|
|
147
143
|
if (i.length) throw new n.FormSubmitError(Object.fromEntries(i));
|
|
148
144
|
}, B = ({ getApiData: e, onCancel: t, onSubmitInvalid: n, onBeforeSubmitInvariants: r, onBeforeSubmit: i, onSubmit: a, onSubmitSuccess: o, onSubmitError: s, onSubmitFinally: u, Children: d, form: f, className: p }) => /* @__PURE__ */ l(R, {
|
|
149
145
|
getApiData: e,
|
|
@@ -156,24 +152,24 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
156
152
|
onSubmitFinally: u,
|
|
157
153
|
form: f,
|
|
158
154
|
className: p,
|
|
159
|
-
children: [/* @__PURE__ */ c(
|
|
155
|
+
children: [/* @__PURE__ */ c(A, {}), /* @__PURE__ */ c(ae, {
|
|
160
156
|
onCancel: t,
|
|
161
157
|
Children: d
|
|
162
158
|
})]
|
|
163
|
-
}), V = (e) => /* @__PURE__ */ c(B, { ...e }), H = (e) => (t) => Object.fromEntries(Object.entries(t).filter(e)), U = (e) => !!e.ref, W = H(([, e]) => U(e)), G = (e, t) => [["", ""], ...t?.excludeNested ? [] : [["^", "."]]].map(([t, n]) => K(S + t, e + n)).join(", "), K = (e, t) => `[role="alert"][${e}="${t}"]`, q = (e, t) => !!t.querySelector(G(e)), J = (e) => e === "root" || e.startsWith("root."),
|
|
164
|
-
let { errors: r } = m(), a = i(r), o = e.current ?
|
|
159
|
+
}), V = (e) => /* @__PURE__ */ c(B, { ...e }), H = (e) => (t) => Object.fromEntries(Object.entries(t).filter(e)), U = (e) => !!e.ref, W = H(([, e]) => U(e)), G = (e, t) => [["", ""], ...t?.excludeNested ? [] : [["^", "."]]].map(([t, n]) => K(S + t, e + n)).join(", "), K = (e, t) => `[role="alert"][${e}="${t}"]`, q = (e, t) => !!t.querySelector(G(e)), J = (e) => e === "root" || e.startsWith("root."), oe = (e, t, n) => !U(t) && !J(e) && !q(e, n), se = (e) => ([t, n]) => oe(t, n, e), ce = (e, t) => H(se(t))(e), le = H(([e]) => J(e)), ue = ({ formRef: e, children: t }) => {
|
|
160
|
+
let { errors: r } = m(), a = i(r), o = e.current ? ce(a, e.current) : {};
|
|
165
161
|
return /* @__PURE__ */ c(y, {
|
|
166
162
|
value: {
|
|
167
163
|
all: a,
|
|
168
164
|
fields: W(a),
|
|
169
|
-
roots:
|
|
165
|
+
roots: le(a),
|
|
170
166
|
orphans: o,
|
|
171
167
|
hasErrors: !n(r),
|
|
172
168
|
hasOrphans: !n(o)
|
|
173
169
|
},
|
|
174
170
|
children: t
|
|
175
171
|
});
|
|
176
|
-
},
|
|
172
|
+
}, de = ({ children: e }) => {
|
|
177
173
|
let [t, n] = s.useState(void 0);
|
|
178
174
|
return /* @__PURE__ */ c(te, {
|
|
179
175
|
value: {
|
|
@@ -190,35 +186,35 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
190
186
|
},
|
|
191
187
|
children: e
|
|
192
188
|
});
|
|
193
|
-
},
|
|
189
|
+
}, fe = (e, t, n, r = "debug") => {
|
|
194
190
|
console[r](e, {
|
|
195
191
|
values: t,
|
|
196
192
|
errors: n
|
|
197
193
|
});
|
|
198
|
-
},
|
|
194
|
+
}, pe = (e) => {
|
|
199
195
|
let t = p(), n = b();
|
|
200
196
|
s.useEffect(() => {
|
|
201
197
|
if (!n.hasErrors) return;
|
|
202
198
|
let r = e?.console?.(n);
|
|
203
|
-
r &&
|
|
199
|
+
r && fe(r.message ?? Y, t.getValues(), n, r.type);
|
|
204
200
|
let i = e?.throw?.(n);
|
|
205
201
|
if (i) throw Error(typeof i == "string" ? i : Y);
|
|
206
202
|
}, [n]);
|
|
207
|
-
}, Y = "Form errors",
|
|
203
|
+
}, Y = "Form errors", me = (e) => {
|
|
208
204
|
let t = s.useRef(!1);
|
|
209
205
|
return s.useEffect(() => {
|
|
210
206
|
e && (t.current = !0);
|
|
211
207
|
}, [e]), [t, () => {
|
|
212
208
|
t.current = !1;
|
|
213
209
|
}];
|
|
214
|
-
},
|
|
215
|
-
let { isSubmitSuccessful: n, isSubmitting: r } = m(), [i, a] =
|
|
210
|
+
}, he = (e, t) => {
|
|
211
|
+
let { isSubmitSuccessful: n, isSubmitting: r } = m(), [i, a] = me(r);
|
|
216
212
|
s.useEffect(() => {
|
|
217
213
|
e && (r || i.current && (a(), (t?.successful === void 0 || n === t.successful) && e(n)));
|
|
218
214
|
}, [r]);
|
|
219
|
-
},
|
|
215
|
+
}, ge = (e) => {
|
|
220
216
|
let { getValues: t, reset: n } = p();
|
|
221
|
-
|
|
217
|
+
he((r) => {
|
|
222
218
|
if (!e) return;
|
|
223
219
|
let i = e[r ? "success" : "error"]?.values;
|
|
224
220
|
if (!i) return;
|
|
@@ -231,12 +227,12 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
231
227
|
keepErrors: !0
|
|
232
228
|
});
|
|
233
229
|
});
|
|
234
|
-
},
|
|
230
|
+
}, _e = () => {
|
|
235
231
|
let e = s.useRef(X);
|
|
236
232
|
return s.useEffect(() => (e.current &&= !X, () => {
|
|
237
233
|
e.current = X;
|
|
238
234
|
}), []), e;
|
|
239
|
-
}, X = !0,
|
|
235
|
+
}, X = !0, ve = ({ onChange: e, delay: t }) => {
|
|
240
236
|
let n = s.useRef(null), r = () => {
|
|
241
237
|
n.current &&= (e(n.current.value), null);
|
|
242
238
|
}, i = () => {
|
|
@@ -248,16 +244,16 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
248
244
|
timer: setTimeout(r, t)
|
|
249
245
|
};
|
|
250
246
|
}];
|
|
251
|
-
},
|
|
252
|
-
let n = w(e), [r] =
|
|
247
|
+
}, ye = (e, t) => {
|
|
248
|
+
let n = w(e), [r] = ve({
|
|
253
249
|
delay: t?.debounce ?? 0,
|
|
254
250
|
onChange: () => {
|
|
255
251
|
n();
|
|
256
252
|
}
|
|
257
253
|
});
|
|
258
254
|
return r;
|
|
259
|
-
},
|
|
260
|
-
let n =
|
|
255
|
+
}, be = (e, t) => {
|
|
256
|
+
let n = ye(e, { debounce: t?.debounce }), r = h(), { isValid: i, isDirty: a, isValidating: o, isSubmitting: c } = m(), l = s.useMemo(() => JSON.stringify(r), [r]), u = _e();
|
|
261
257
|
s.useEffect(() => {
|
|
262
258
|
u.current || o || c || i && a && n(r);
|
|
263
259
|
}, [
|
|
@@ -266,9 +262,9 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
266
262
|
l,
|
|
267
263
|
o
|
|
268
264
|
]);
|
|
269
|
-
},
|
|
265
|
+
}, xe = ({ formId: t, formRef: n, options: r, children: i }) => {
|
|
270
266
|
let [a] = s.useState(r);
|
|
271
|
-
return
|
|
267
|
+
return pe(M().fieldErrors?.output), (a.submitOnWatch ? be : void 0)?.(n, a.submitOnWatch), ge(a.resetOnSubmitted), /* @__PURE__ */ c(e, {
|
|
272
268
|
value: {
|
|
273
269
|
formId: t,
|
|
274
270
|
formRef: n,
|
|
@@ -277,48 +273,48 @@ var _ = s.createContext(void 0), v = ({ config: e, children: n }) => {
|
|
|
277
273
|
},
|
|
278
274
|
children: i
|
|
279
275
|
});
|
|
280
|
-
},
|
|
276
|
+
}, Se = (e, t) => ({
|
|
281
277
|
...e,
|
|
282
278
|
...t,
|
|
283
279
|
...(e?.resetOnSubmitted || t?.resetOnSubmitted) && { resetOnSubmitted: {
|
|
284
280
|
...e?.resetOnSubmitted,
|
|
285
281
|
...t?.resetOnSubmitted
|
|
286
282
|
} }
|
|
287
|
-
}),
|
|
283
|
+
}), Z = (e, t) => s.useMemo(() => Se(e.defaults?.options, t), [JSON.stringify(t)]), Ce = (e, t) => ({
|
|
288
284
|
...e,
|
|
289
285
|
...t
|
|
290
|
-
}),
|
|
291
|
-
...
|
|
286
|
+
}), we = (e, t, n, r) => f({
|
|
287
|
+
...Ce(t.defaults?.rhf, e),
|
|
292
288
|
resolver: r,
|
|
293
289
|
defaultValues: n
|
|
294
290
|
});
|
|
295
291
|
//#endregion
|
|
296
292
|
//#region src/form/providers/RhfUtilsFormProviders.tsx
|
|
297
293
|
function Q({ formId: e, rhf: t, resolver: n, defaultValues: r, options: i, relay: o, children: u }) {
|
|
298
|
-
let f =
|
|
294
|
+
let f = M(), p = s.useId(), m = e || p, h = s.useRef(null), g = we(t, f, r, n), _ = Z(f, i);
|
|
299
295
|
return /* @__PURE__ */ c(d, {
|
|
300
296
|
...g,
|
|
301
|
-
children: /* @__PURE__ */ c(
|
|
297
|
+
children: /* @__PURE__ */ c(ue, {
|
|
302
298
|
formRef: h,
|
|
303
|
-
children: /* @__PURE__ */ l(
|
|
299
|
+
children: /* @__PURE__ */ l(xe, {
|
|
304
300
|
formId: m,
|
|
305
301
|
formRef: h,
|
|
306
302
|
options: _,
|
|
307
|
-
children: [/* @__PURE__ */ c(a, { options: o }), /* @__PURE__ */ c(
|
|
303
|
+
children: [/* @__PURE__ */ c(a, { options: o }), /* @__PURE__ */ c(de, { children: u })]
|
|
308
304
|
})
|
|
309
305
|
})
|
|
310
306
|
});
|
|
311
307
|
}
|
|
312
308
|
//#endregion
|
|
313
309
|
//#region src/resolvers/zod/getZodResolver.ts
|
|
314
|
-
var $ = (e) => g(e),
|
|
310
|
+
var $ = (e) => g(e), Te = ({ schema: e, children: t, ...n }) => /* @__PURE__ */ c(Q, {
|
|
315
311
|
...n,
|
|
316
312
|
resolver: $(e),
|
|
317
313
|
children: t
|
|
318
314
|
});
|
|
319
315
|
//#endregion
|
|
320
316
|
//#region src/form/with-providers/RhfUtilsFormWithProviders.tsx
|
|
321
|
-
function
|
|
317
|
+
function Ee({ getApiData: e, resolver: t, rhf: n, defaultValues: r, options: i, relay: a, onCancel: o, onSubmitInvalid: s, onBeforeSubmitInvariants: l, onBeforeSubmit: u, onSubmit: d, onSubmitSuccess: f, onSubmitError: p, onSubmitFinally: m, Children: h, form: g, formId: _, className: v }) {
|
|
322
318
|
let y = {
|
|
323
319
|
formId: _,
|
|
324
320
|
resolver: t,
|
|
@@ -347,9 +343,9 @@ function De({ getApiData: e, resolver: t, rhf: n, defaultValues: r, options: i,
|
|
|
347
343
|
}
|
|
348
344
|
//#endregion
|
|
349
345
|
//#region src/resolvers/zod/with-providers/RhfUtilsZodFormWithProviders.tsx
|
|
350
|
-
var
|
|
346
|
+
var De = ({ schema: e, ...t }) => /* @__PURE__ */ c(Ee, {
|
|
351
347
|
...t,
|
|
352
348
|
resolver: $(e)
|
|
353
349
|
});
|
|
354
350
|
//#endregion
|
|
355
|
-
export { T as FormSubmitError, v as RhfUtilsClientConfigProvider, C as RhfUtilsNonFieldErrorMarker, V as RhfUtilsZodForm,
|
|
351
|
+
export { T as FormSubmitError, v as RhfUtilsClientConfigProvider, C as RhfUtilsNonFieldErrorMarker, V as RhfUtilsZodForm, Te as RhfUtilsZodFormProviders, De as RhfUtilsZodFormWithProviders, b as useFlatFieldErrorsContext, x as useFlatFieldErrorsContextHasOnlyOrphans, w as useFormRequestSubmit, D as useLastSubmitError, r as useRhfUtilsContext };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paragrav/rhf-utils",
|
|
3
3
|
"author": "paragrav.dev",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.65.0",
|
|
5
5
|
"description": "Integration utilities for react-hook-form.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -60,50 +60,52 @@
|
|
|
60
60
|
}
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@eslint/compat": "^2.0
|
|
63
|
+
"@eslint/compat": "^2.1.0",
|
|
64
|
+
"@eslint/config-helpers": "^0.6.0",
|
|
64
65
|
"@eslint/eslintrc": "^3.3.5",
|
|
65
66
|
"@eslint/js": "^9.39.4",
|
|
66
|
-
"@playwright/experimental-ct-react": "^1.
|
|
67
|
-
"@playwright/test": "^1.
|
|
67
|
+
"@playwright/experimental-ct-react": "^1.60.0",
|
|
68
|
+
"@playwright/test": "^1.60.0",
|
|
68
69
|
"@rollup/plugin-typescript": "^12.3.0",
|
|
69
|
-
"@types/node": "^24.
|
|
70
|
-
"@typescript-eslint/eslint-plugin": "
|
|
71
|
-
"@typescript-eslint/parser": "
|
|
72
|
-
"@vitejs/plugin-react": "^6.0.
|
|
73
|
-
"clean-publish": "^
|
|
70
|
+
"@types/node": "^24.13.1",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "8.61.0",
|
|
72
|
+
"@typescript-eslint/parser": "8.61.0",
|
|
73
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
74
|
+
"clean-publish": "^7.1.0",
|
|
74
75
|
"cross-env": "^10.1.0",
|
|
75
76
|
"eslint": "^9.39.4",
|
|
76
77
|
"eslint-config-prettier": "^10.1.8",
|
|
77
78
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
78
|
-
"eslint-import-resolver-typescript": "^4.4.
|
|
79
|
+
"eslint-import-resolver-typescript": "^4.4.5",
|
|
79
80
|
"eslint-plugin-import": "^2.32.0",
|
|
80
81
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
81
|
-
"eslint-plugin-prettier": "^5.5.
|
|
82
|
+
"eslint-plugin-prettier": "^5.5.6",
|
|
82
83
|
"eslint-plugin-react": "^7.37.5",
|
|
83
|
-
"eslint-plugin-react-hooks": "^7.
|
|
84
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
84
85
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
85
|
-
"eslint-plugin-simple-import-sort": "^
|
|
86
|
-
"globals": "^17.
|
|
87
|
-
"happy-dom": "^20.
|
|
86
|
+
"eslint-plugin-simple-import-sort": "^13.0.0",
|
|
87
|
+
"globals": "^17.6.0",
|
|
88
|
+
"happy-dom": "^20.10.2",
|
|
88
89
|
"husky": "^9.1.7",
|
|
89
|
-
"lint-staged": "^
|
|
90
|
-
"prettier": "^3.8.
|
|
91
|
-
"rollup": "^4.
|
|
90
|
+
"lint-staged": "^17.0.7",
|
|
91
|
+
"prettier": "^3.8.4",
|
|
92
|
+
"rollup": "^4.61.1",
|
|
92
93
|
"safe-stable-stringify": "^2.5.0",
|
|
93
|
-
"terser": "^5.
|
|
94
|
-
"typescript": "^6.0.
|
|
95
|
-
"typescript-eslint": "
|
|
96
|
-
"
|
|
97
|
-
"vite
|
|
98
|
-
"vitest": "^4.1.
|
|
94
|
+
"terser": "^5.48.0",
|
|
95
|
+
"typescript": "^6.0.3",
|
|
96
|
+
"typescript-eslint": "8.61.0",
|
|
97
|
+
"unplugin-dts": "^1.0.2",
|
|
98
|
+
"vite": "^8.0.16",
|
|
99
|
+
"vitest": "^4.1.8"
|
|
99
100
|
},
|
|
100
101
|
"resolutions": {
|
|
102
|
+
"unrs-resolver": "1.11.1",
|
|
101
103
|
"eslint": "^9.39.4",
|
|
102
104
|
"@types/react": "^19.0.4",
|
|
103
105
|
"@types/react-dom": "^19.0.2",
|
|
104
106
|
"react": "^19.0.0",
|
|
105
107
|
"react-dom": "^19.0.0",
|
|
106
|
-
"typescript": "^6.0.
|
|
108
|
+
"typescript": "^6.0.3",
|
|
107
109
|
"vite": "^8.0.2"
|
|
108
110
|
},
|
|
109
111
|
"repository": {
|