react-crud-mui 0.2.36 → 0.2.38

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,6 +1,8 @@
1
- interface AutoSaveProps {
2
- onValuesChange: () => void;
1
+ interface AutoSaveProps extends AutoSaveOptions {
2
+ onAutoSave: () => void;
3
+ }
4
+ export interface AutoSaveOptions {
3
5
  delay?: number;
4
6
  }
5
- declare function AutoSave({ onValuesChange, delay }: AutoSaveProps): null;
7
+ declare function AutoSave({ onAutoSave, delay }: AutoSaveProps): null;
6
8
  export default AutoSave;
@@ -8,8 +8,10 @@ export type DetailPageLayoutProps = {
8
8
  content?: ReactNode;
9
9
  stepsContent?: ReactNode;
10
10
  autoSaveContent?: ReactNode;
11
+ valuesChangeContent?: ReactNode;
12
+ errorsContent?: ReactNode;
11
13
  options: DetailPageLayoutOptions;
12
14
  };
13
15
  type DetailPageDefaultLayoutProps = DetailPageLayoutProps;
14
- declare function DetailPageDefaultLayout({ content, stepsContent, autoSaveContent, }: DetailPageDefaultLayoutProps): import("react/jsx-runtime").JSX.Element;
16
+ declare function DetailPageDefaultLayout({ content, stepsContent, autoSaveContent, valuesChangeContent, errorsContent, }: DetailPageDefaultLayoutProps): import("react/jsx-runtime").JSX.Element;
15
17
  export default DetailPageDefaultLayout;
@@ -26,6 +26,23 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
26
26
  readonly schema?: import('zod').ZodType<TModel, import('zod').ZodTypeDef, TModel> | undefined;
27
27
  readonly validationOptions?: import('../../form/hooks/useForm').ValidationOptions<TModel> | undefined;
28
28
  readonly defaultValues?: import('../pages/DetailPageForm').DefaultData<TModel> | undefined;
29
+ readonly formProps?: Partial<Partial<{
30
+ mode: import('react-hook-form').Mode;
31
+ disabled: boolean;
32
+ reValidateMode: Exclude<import('react-hook-form').Mode, "onTouched" | "all">;
33
+ defaultValues: ((payload?: unknown) => Promise<TModel>) | import('react-hook-form').DefaultValues<TModel>;
34
+ values: TModel;
35
+ errors: import('react-hook-form').FieldErrors<TModel>;
36
+ resetOptions: Parameters<import('react-hook-form').UseFormReset<TFieldValues>>[1];
37
+ resolver: import('react-hook-form').Resolver<TModel, any>;
38
+ context: any;
39
+ shouldFocusError: boolean;
40
+ shouldUnregister: boolean;
41
+ shouldUseNativeValidation: boolean;
42
+ progressive: boolean;
43
+ criteriaMode: import('react-hook-form').CriteriaMode;
44
+ delayError: number;
45
+ }>> | undefined;
29
46
  readonly className?: string;
30
47
  readonly style?: React.CSSProperties;
31
48
  readonly classes?: Partial<import('@mui/material').ClassNameMap<never>> | undefined;
@@ -172,7 +189,7 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
172
189
  readonly vocab?: string | undefined;
173
190
  readonly autoCapitalize?: string | undefined;
174
191
  readonly autoCorrect?: string | undefined;
175
- readonly autoSave?: boolean;
192
+ readonly autoSave?: boolean | import('../components/AutoSave').AutoSaveOptions;
176
193
  readonly itemProp?: string | undefined;
177
194
  readonly itemScope?: boolean | undefined;
178
195
  readonly itemType?: string | undefined;
@@ -410,6 +427,7 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
410
427
  readonly moreOptions?: import('../../..').MoreButtonProps["options"];
411
428
  readonly useHeaderIconWrapper?: boolean;
412
429
  readonly tabs?: import('../../..').TabPane[];
430
+ readonly onValuesChange?: ((values: Partial<TModel>) => void) | undefined;
413
431
  readonly error?: import('../../utils').ServerError;
414
432
  readonly footerContent?: import('react').ReactNode;
415
433
  readonly moreContent?: import('react').ReactNode;
@@ -447,6 +465,7 @@ declare function useDetailPageModal<TModel extends FieldValues>({ models, unique
447
465
  readonly onCreate?: () => void;
448
466
  readonly onSave?: import('../pages/DetailPageData').DataEvent<TModel, import('../pages/DetailPageData').SavePayload<TModel>> | undefined;
449
467
  readonly onDiscardChanges?: () => void;
468
+ readonly onFormErrors?: ((errors: import('react-hook-form').FieldErrors<TModel>, isValid?: boolean) => void) | undefined;
450
469
  readonly onContentLayout?: (props: import('../components/DetailPageDefaultLayout').DetailPageLayoutProps) => React.ReactNode;
451
470
  readonly onWrapperLayout?: (props: import('../pages/DetailPageContent').DetailPageWrapperLayoutProps) => React.ReactNode;
452
471
  readonly defaultSaveMode?: import('../pages/DetailPageData').SaveMode;
@@ -1,8 +1,9 @@
1
1
  import { default as React, ReactNode } from 'react';
2
- import { FieldValues } from 'react-hook-form';
2
+ import { FieldErrors, FieldValues } from 'react-hook-form';
3
3
  import { Message } from '../../page/hooks/useNormalizeMessages';
4
4
  import { PageProps } from '../../page/Page';
5
5
  import { ServerError } from '../../utils';
6
+ import { AutoSaveOptions } from '../components/AutoSave';
6
7
  import { DetailPageCommandsProps } from '../components/DetailPageCommands';
7
8
  import { DetailPageLayoutProps } from '../components/DetailPageDefaultLayout';
8
9
  import { DetailPageHeaderProps } from '../components/DetailPageHeader';
@@ -73,6 +74,16 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
73
74
  * Custom header function
74
75
  */
75
76
  onHeader?: (props: DetailPageHeaderProps) => ReactNode;
77
+ /**
78
+ * Values change tracker
79
+ * MUST BE MEMOIZED
80
+ */
81
+ onValuesChange?: (values: Partial<TModel>) => void;
82
+ /**
83
+ * Error tracker,called when form errors has changed
84
+ * MUST BE MEMOIZED
85
+ */
86
+ onFormErrors?: (errors: FieldErrors<TModel>, isValid?: boolean) => void;
76
87
  /**
77
88
  * Page opening reason Default create.
78
89
  */
@@ -104,7 +115,7 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
104
115
  /**
105
116
  * Having called "onSave" once changing form values
106
117
  */
107
- autoSave?: boolean;
118
+ autoSave?: boolean | AutoSaveOptions;
108
119
  onContentLayout?: (props: DetailPageLayoutProps) => React.ReactNode;
109
120
  onWrapperLayout?: (props: DetailPageWrapperLayoutProps) => React.ReactNode;
110
121
  defaultSaveMode?: SaveMode;
@@ -122,5 +133,5 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
122
133
  stepsProps?: Partial<DetailPageStepsProps>;
123
134
  tabExtraContent?: ReactNode | ((data?: TModel) => ReactNode);
124
135
  }
125
- declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onWrapperLayout, reason, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
136
+ declare function DetailPageContent<TModel extends FieldValues>({ activeSegmentIndex, alerts, autoSave, children, commandsPosition, customSteps: CustomSteps, createCommandLabel, data, defaultSaveMode, disabled, disableShortCuts, enableClose, enableCopy, enableCreate, enableDelete, enableDiscardChanges, enableSave, error, hotkeyScopes, loading, onClose, onCommands, onContentLayout, onCopy, onCreate, onDelete, onDiscardChanges, onFormErrors, onSegmentChanged, onExtraCommands, onHeader, onSave, onSaveClose, onSaveCreate, onValuesChange, onWrapperLayout, reason, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
126
137
  export default DetailPageContent;
@@ -1,4 +1,4 @@
1
- import { FieldValues } from 'react-hook-form';
1
+ import { FieldValues, UseFormProps } from 'react-hook-form';
2
2
  import { z } from 'zod';
3
3
  import { UseFormReturn, ValidationOptions } from '../../form/hooks/useForm';
4
4
  import { DeepNullable } from '../../utils';
@@ -11,6 +11,7 @@ export interface DetailPageFormProps<TModel extends FieldValues> extends Omit<De
11
11
  schema?: z.ZodType<TModel>;
12
12
  validationOptions?: ValidationOptions<TModel>;
13
13
  defaultValues?: DefaultData<TModel>;
14
+ formProps?: Partial<UseFormProps<TModel>>;
14
15
  }
15
- declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, schema, defaultValues, validationOptions, data, reason, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
16
+ declare function DetailPageForm<TModel extends FieldValues>({ activeSegmentIndex, schema, defaultValues, validationOptions, data, reason, formProps, ...dpProps }: DetailPageFormProps<TModel>): import("react/jsx-runtime").JSX.Element;
16
17
  export default DetailPageForm;
@@ -0,0 +1,6 @@
1
+ import { FieldErrors, FieldValues } from 'react-hook-form';
2
+ interface FormValuesTrackerProps<TModel extends FieldValues> {
3
+ onErrorsChange(errors: FieldErrors<TModel>, isValid?: boolean): void;
4
+ }
5
+ declare function FormErrorsTracker<TModel extends FieldValues>({ onErrorsChange, }: FormValuesTrackerProps<TModel>): null;
6
+ export default FormErrorsTracker;
@@ -0,0 +1,6 @@
1
+ import { FieldValues } from 'react-hook-form';
2
+ interface FormValuesTrackerProps<TModel extends FieldValues> {
3
+ onValuesChange(values: Partial<TModel>): void;
4
+ }
5
+ declare function FormValuesTracker<TModel extends FieldValues>({ onValuesChange, }: FormValuesTrackerProps<TModel>): null;
6
+ export default FormValuesTracker;