react-crud-mui 0.2.35 → 0.2.37

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,9 @@ export type DetailPageLayoutProps = {
8
8
  content?: ReactNode;
9
9
  stepsContent?: ReactNode;
10
10
  autoSaveContent?: ReactNode;
11
+ valuesChangeContent?: ReactNode;
11
12
  options: DetailPageLayoutOptions;
12
13
  };
13
14
  type DetailPageDefaultLayoutProps = DetailPageLayoutProps;
14
- declare function DetailPageDefaultLayout({ content, stepsContent, autoSaveContent, }: DetailPageDefaultLayoutProps): import("react/jsx-runtime").JSX.Element;
15
+ declare function DetailPageDefaultLayout({ content, stepsContent, autoSaveContent, valuesChangeContent, }: DetailPageDefaultLayoutProps): import("react/jsx-runtime").JSX.Element;
15
16
  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;
@@ -3,6 +3,7 @@ import { 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,11 @@ 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;
76
82
  /**
77
83
  * Page opening reason Default create.
78
84
  */
@@ -104,7 +110,7 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
104
110
  /**
105
111
  * Having called "onSave" once changing form values
106
112
  */
107
- autoSave?: boolean;
113
+ autoSave?: boolean | AutoSaveOptions;
108
114
  onContentLayout?: (props: DetailPageLayoutProps) => React.ReactNode;
109
115
  onWrapperLayout?: (props: DetailPageWrapperLayoutProps) => React.ReactNode;
110
116
  defaultSaveMode?: SaveMode;
@@ -122,5 +128,5 @@ export interface DetailPageContentProps<TModel extends FieldValues> extends Omit
122
128
  stepsProps?: Partial<DetailPageStepsProps>;
123
129
  tabExtraContent?: ReactNode | ((data?: TModel) => ReactNode);
124
130
  }
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;
131
+ 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, onValuesChange, onWrapperLayout, reason, showHeader, steps, stepsProps, tabExtraContent, ...pageProps }: DetailPageContentProps<TModel>): import("react/jsx-runtime").JSX.Element;
126
132
  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 { 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;