@refinedev/antd 5.37.3 → 5.37.5

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.
Files changed (172) hide show
  1. package/CHANGELOG.md +1766 -1776
  2. package/dist/components/autoSaveIndicator/index.d.ts.map +1 -1
  3. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  4. package/dist/components/buttons/create/index.d.ts.map +1 -1
  5. package/dist/components/buttons/delete/index.d.ts.map +1 -1
  6. package/dist/components/buttons/import/index.d.ts.map +1 -1
  7. package/dist/components/buttons/types.d.ts.map +1 -1
  8. package/dist/components/crud/edit/index.d.ts.map +1 -1
  9. package/dist/components/crud/list/index.d.ts.map +1 -1
  10. package/dist/components/crud/show/index.d.ts.map +1 -1
  11. package/dist/components/crud/types.d.ts.map +1 -1
  12. package/dist/components/fields/date/index.d.ts.map +1 -1
  13. package/dist/components/fields/email/index.d.ts.map +1 -1
  14. package/dist/components/fields/number/index.d.ts.map +1 -1
  15. package/dist/components/fields/text/index.d.ts.map +1 -1
  16. package/dist/components/fields/types.d.ts.map +1 -1
  17. package/dist/components/fields/url/index.d.ts.map +1 -1
  18. package/dist/components/layout/header/index.d.ts.map +1 -1
  19. package/dist/components/layout/sider/index.d.ts.map +1 -1
  20. package/dist/components/layout/title/index.d.ts.map +1 -1
  21. package/dist/components/layout/types.d.ts.map +1 -1
  22. package/dist/components/pageHeader/index.d.ts.map +1 -1
  23. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
  24. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
  25. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
  26. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
  27. package/dist/components/pages/auth/index.d.ts.map +1 -1
  28. package/dist/components/pages/error/index.d.ts.map +1 -1
  29. package/dist/components/pages/login/index.d.ts.map +1 -1
  30. package/dist/components/pages/ready/index.d.ts.map +1 -1
  31. package/dist/components/table/components/filterDropdown/index.d.ts.map +1 -1
  32. package/dist/components/themedLayout/header/index.d.ts.map +1 -1
  33. package/dist/components/themedLayout/sider/index.d.ts.map +1 -1
  34. package/dist/components/themedLayout/title/index.d.ts.map +1 -1
  35. package/dist/components/themedLayout/types.d.ts.map +1 -1
  36. package/dist/components/themedLayoutV2/header/index.d.ts.map +1 -1
  37. package/dist/components/themedLayoutV2/index.d.ts.map +1 -1
  38. package/dist/components/themedLayoutV2/sider/index.d.ts.map +1 -1
  39. package/dist/components/themedLayoutV2/title/index.d.ts.map +1 -1
  40. package/dist/components/themedLayoutV2/types.d.ts.map +1 -1
  41. package/dist/components/undoableNotification/index.d.ts.map +1 -1
  42. package/dist/contexts/index.d.ts.map +1 -1
  43. package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts.map +1 -1
  44. package/dist/contexts/themedLayoutContext/index.d.ts.map +1 -1
  45. package/dist/definitions/table/index.d.ts.map +1 -1
  46. package/dist/definitions/themes/index.d.ts.map +1 -1
  47. package/dist/esm/index.js +2 -1
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/hooks/fields/useCheckboxGroup/index.d.ts.map +1 -1
  50. package/dist/hooks/fields/useRadioGroup/index.d.ts.map +1 -1
  51. package/dist/hooks/fields/useSelect/index.d.ts.map +1 -1
  52. package/dist/hooks/form/index.d.ts.map +1 -1
  53. package/dist/hooks/form/useDrawerForm/index.d.ts.map +1 -1
  54. package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts.map +1 -1
  55. package/dist/hooks/form/useForm.d.ts.map +1 -1
  56. package/dist/hooks/form/useModalForm/index.d.ts.map +1 -1
  57. package/dist/hooks/form/useModalForm/useModalForm.d.ts.map +1 -1
  58. package/dist/hooks/form/useStepsForm/index.d.ts.map +1 -1
  59. package/dist/hooks/form/useStepsForm/useStepsForm.d.ts.map +1 -1
  60. package/dist/hooks/import/index.d.ts.map +1 -1
  61. package/dist/hooks/list/useSimpleList/useSimpleList.d.ts.map +1 -1
  62. package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
  63. package/dist/hooks/table/useEditableTable/useEditableTable.d.ts.map +1 -1
  64. package/dist/hooks/table/useTable/paginationLink.d.ts.map +1 -1
  65. package/dist/hooks/table/useTable/useTable.d.ts.map +1 -1
  66. package/dist/hooks/useFileUploadState/index.d.ts.map +1 -1
  67. package/dist/hooks/useSiderVisible/index.d.ts.map +1 -1
  68. package/dist/iife/index.js +11 -10
  69. package/dist/iife/index.js.map +1 -1
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +2 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/interfaces/field.d.ts.map +1 -1
  74. package/dist/interfaces/index.d.ts.map +1 -1
  75. package/dist/interfaces/upload.d.ts.map +1 -1
  76. package/package.json +32 -32
  77. package/refine.config.js +497 -524
  78. package/src/components/autoSaveIndicator/index.tsx +69 -70
  79. package/src/components/breadcrumb/index.tsx +63 -65
  80. package/src/components/buttons/clone/index.tsx +86 -86
  81. package/src/components/buttons/create/index.tsx +85 -86
  82. package/src/components/buttons/delete/index.tsx +114 -119
  83. package/src/components/buttons/edit/index.tsx +86 -86
  84. package/src/components/buttons/export/index.tsx +17 -17
  85. package/src/components/buttons/import/index.tsx +19 -20
  86. package/src/components/buttons/list/index.tsx +105 -105
  87. package/src/components/buttons/refresh/index.tsx +50 -50
  88. package/src/components/buttons/save/index.tsx +17 -17
  89. package/src/components/buttons/show/index.tsx +86 -86
  90. package/src/components/buttons/types.ts +20 -20
  91. package/src/components/crud/create/index.tsx +120 -120
  92. package/src/components/crud/edit/index.tsx +205 -207
  93. package/src/components/crud/list/index.tsx +88 -90
  94. package/src/components/crud/show/index.tsx +175 -185
  95. package/src/components/crud/types.ts +41 -56
  96. package/src/components/fields/boolean/index.tsx +11 -11
  97. package/src/components/fields/date/index.tsx +13 -15
  98. package/src/components/fields/email/index.tsx +5 -7
  99. package/src/components/fields/file/index.tsx +8 -8
  100. package/src/components/fields/image/index.tsx +4 -4
  101. package/src/components/fields/markdown/index.tsx +9 -9
  102. package/src/components/fields/number/index.tsx +17 -19
  103. package/src/components/fields/tag/index.tsx +1 -1
  104. package/src/components/fields/text/index.tsx +1 -3
  105. package/src/components/fields/types.ts +18 -18
  106. package/src/components/fields/url/index.tsx +8 -10
  107. package/src/components/layout/header/index.tsx +25 -26
  108. package/src/components/layout/index.tsx +30 -30
  109. package/src/components/layout/sider/index.tsx +238 -248
  110. package/src/components/layout/sider/styles.ts +5 -5
  111. package/src/components/layout/title/index.tsx +40 -40
  112. package/src/components/layout/types.ts +6 -6
  113. package/src/components/pageHeader/index.tsx +44 -44
  114. package/src/components/pages/auth/components/forgotPassword/index.tsx +177 -183
  115. package/src/components/pages/auth/components/login/index.tsx +258 -274
  116. package/src/components/pages/auth/components/register/index.tsx +247 -266
  117. package/src/components/pages/auth/components/styles.ts +16 -16
  118. package/src/components/pages/auth/components/updatePassword/index.tsx +160 -177
  119. package/src/components/pages/auth/index.tsx +23 -23
  120. package/src/components/pages/error/index.tsx +57 -59
  121. package/src/components/pages/login/index.tsx +120 -147
  122. package/src/components/pages/login/styles.ts +12 -12
  123. package/src/components/pages/ready/index.tsx +72 -80
  124. package/src/components/pages/welcome/index.tsx +1 -1
  125. package/src/components/table/components/filterDropdown/index.tsx +89 -92
  126. package/src/components/themedLayout/header/index.tsx +28 -33
  127. package/src/components/themedLayout/index.tsx +30 -30
  128. package/src/components/themedLayout/sider/index.tsx +279 -282
  129. package/src/components/themedLayout/sider/styles.ts +5 -5
  130. package/src/components/themedLayout/title/index.tsx +66 -68
  131. package/src/components/themedLayout/types.ts +8 -8
  132. package/src/components/themedLayoutV2/header/index.tsx +43 -48
  133. package/src/components/themedLayoutV2/index.tsx +34 -36
  134. package/src/components/themedLayoutV2/sider/index.tsx +309 -316
  135. package/src/components/themedLayoutV2/sider/styles.ts +5 -5
  136. package/src/components/themedLayoutV2/title/index.tsx +66 -68
  137. package/src/components/themedLayoutV2/types.ts +9 -9
  138. package/src/components/undoableNotification/index.tsx +31 -31
  139. package/src/contexts/index.ts +2 -2
  140. package/src/contexts/themedLayoutContext/IThemedLayoutContext.ts +4 -4
  141. package/src/contexts/themedLayoutContext/index.tsx +22 -22
  142. package/src/definitions/table/index.ts +81 -82
  143. package/src/definitions/themes/index.ts +35 -35
  144. package/src/definitions/upload/index.ts +17 -17
  145. package/src/hooks/fields/useCheckboxGroup/index.ts +64 -64
  146. package/src/hooks/fields/useRadioGroup/index.ts +60 -63
  147. package/src/hooks/fields/useSelect/index.ts +30 -30
  148. package/src/hooks/form/index.ts +10 -10
  149. package/src/hooks/form/useDrawerForm/index.ts +4 -4
  150. package/src/hooks/form/useDrawerForm/useDrawerForm.ts +257 -261
  151. package/src/hooks/form/useForm.ts +256 -259
  152. package/src/hooks/form/useModalForm/index.ts +3 -3
  153. package/src/hooks/form/useModalForm/useModalForm.ts +289 -295
  154. package/src/hooks/form/useStepsForm/index.ts +3 -3
  155. package/src/hooks/form/useStepsForm/useStepsForm.ts +96 -96
  156. package/src/hooks/import/index.tsx +104 -106
  157. package/src/hooks/list/useSimpleList/useSimpleList.ts +179 -185
  158. package/src/hooks/modal/useModal/index.tsx +24 -24
  159. package/src/hooks/table/useEditableTable/useEditableTable.ts +85 -85
  160. package/src/hooks/table/useTable/paginationLink.tsx +17 -17
  161. package/src/hooks/table/useTable/useTable.ts +199 -205
  162. package/src/hooks/useFileUploadState/index.ts +20 -20
  163. package/src/hooks/useSiderVisible/index.ts +16 -16
  164. package/src/hooks/useThemedLayoutContext/index.ts +12 -12
  165. package/src/index.tsx +4 -4
  166. package/src/interfaces/field.ts +1 -1
  167. package/src/interfaces/index.ts +7 -8
  168. package/src/interfaces/upload.ts +7 -7
  169. package/src/providers/notificationProvider/index.tsx +78 -78
  170. package/src/types/index.d.ts +2 -2
  171. package/src/types/sunflower.d.ts +68 -68
  172. package/tsconfig.json +26 -26
@@ -2,76 +2,76 @@ import React from "react";
2
2
  import { FormInstance, FormProps, Form, ButtonProps } from "antd";
3
3
  import { useForm as useFormSF } from "sunflower-antd";
4
4
  import {
5
- AutoSaveProps,
6
- flattenObjectKeys,
7
- propertyPathToArray,
5
+ AutoSaveProps,
6
+ flattenObjectKeys,
7
+ propertyPathToArray,
8
8
  } from "@refinedev/core";
9
9
 
10
10
  import {
11
- HttpError,
12
- BaseRecord,
13
- useForm as useFormCore,
14
- UseFormReturnType as UseFormReturnTypeCore,
15
- useWarnAboutChange,
16
- UseFormProps as UseFormPropsCore,
17
- CreateResponse,
18
- UpdateResponse,
19
- pickNotDeprecated,
20
- useTranslate,
21
- useRefineContext,
11
+ HttpError,
12
+ BaseRecord,
13
+ useForm as useFormCore,
14
+ UseFormReturnType as UseFormReturnTypeCore,
15
+ useWarnAboutChange,
16
+ UseFormProps as UseFormPropsCore,
17
+ CreateResponse,
18
+ UpdateResponse,
19
+ pickNotDeprecated,
20
+ useTranslate,
21
+ useRefineContext,
22
22
  } from "@refinedev/core";
23
23
 
24
24
  export type UseFormProps<
25
- TQueryFnData extends BaseRecord = BaseRecord,
26
- TError extends HttpError = HttpError,
27
- TVariables = {},
28
- TData extends BaseRecord = TQueryFnData,
29
- TResponse extends BaseRecord = TData,
30
- TResponseError extends HttpError = TError,
25
+ TQueryFnData extends BaseRecord = BaseRecord,
26
+ TError extends HttpError = HttpError,
27
+ TVariables = {},
28
+ TData extends BaseRecord = TQueryFnData,
29
+ TResponse extends BaseRecord = TData,
30
+ TResponseError extends HttpError = TError,
31
31
  > = UseFormPropsCore<
32
- TQueryFnData,
33
- TError,
34
- TVariables,
35
- TData,
36
- TResponse,
37
- TResponseError
32
+ TQueryFnData,
33
+ TError,
34
+ TVariables,
35
+ TData,
36
+ TResponse,
37
+ TResponseError
38
38
  > & {
39
- submitOnEnter?: boolean;
40
- /**
41
- * Shows notification when unsaved changes exist
42
- */
43
- warnWhenUnsavedChanges?: boolean;
44
- /**
45
- * Disables server-side validation
46
- * @default false
47
- * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}
48
- */
49
- disableServerSideValidation?: boolean;
39
+ submitOnEnter?: boolean;
40
+ /**
41
+ * Shows notification when unsaved changes exist
42
+ */
43
+ warnWhenUnsavedChanges?: boolean;
44
+ /**
45
+ * Disables server-side validation
46
+ * @default false
47
+ * @see {@link https://refine.dev/docs/advanced-tutorials/forms/server-side-form-validation/}
48
+ */
49
+ disableServerSideValidation?: boolean;
50
50
  } & AutoSaveProps<TVariables>;
51
51
 
52
52
  export type UseFormReturnType<
53
- TQueryFnData extends BaseRecord = BaseRecord,
54
- TError extends HttpError = HttpError,
55
- TVariables = {},
56
- TData extends BaseRecord = TQueryFnData,
57
- TResponse extends BaseRecord = TData,
58
- TResponseError extends HttpError = TError,
53
+ TQueryFnData extends BaseRecord = BaseRecord,
54
+ TError extends HttpError = HttpError,
55
+ TVariables = {},
56
+ TData extends BaseRecord = TQueryFnData,
57
+ TResponse extends BaseRecord = TData,
58
+ TResponseError extends HttpError = TError,
59
59
  > = UseFormReturnTypeCore<
60
- TQueryFnData,
61
- TError,
62
- TVariables,
63
- TData,
64
- TResponse,
65
- TResponseError
60
+ TQueryFnData,
61
+ TError,
62
+ TVariables,
63
+ TData,
64
+ TResponse,
65
+ TResponseError
66
66
  > & {
67
- form: FormInstance<TVariables>;
68
- formProps: FormProps<TVariables>;
69
- saveButtonProps: ButtonProps & {
70
- onClick: () => void;
71
- };
72
- onFinish: (
73
- values?: TVariables,
74
- ) => Promise<CreateResponse<TResponse> | UpdateResponse<TResponse> | void>;
67
+ form: FormInstance<TVariables>;
68
+ formProps: FormProps<TVariables>;
69
+ saveButtonProps: ButtonProps & {
70
+ onClick: () => void;
71
+ };
72
+ onFinish: (
73
+ values?: TVariables,
74
+ ) => Promise<CreateResponse<TResponse> | UpdateResponse<TResponse> | void>;
75
75
  };
76
76
 
77
77
  /**
@@ -89,25 +89,150 @@ export type UseFormReturnType<
89
89
  *
90
90
  */
91
91
  export const useForm = <
92
- TQueryFnData extends BaseRecord = BaseRecord,
93
- TError extends HttpError = HttpError,
94
- TVariables = {},
95
- TData extends BaseRecord = TQueryFnData,
96
- TResponse extends BaseRecord = TData,
97
- TResponseError extends HttpError = TError,
92
+ TQueryFnData extends BaseRecord = BaseRecord,
93
+ TError extends HttpError = HttpError,
94
+ TVariables = {},
95
+ TData extends BaseRecord = TQueryFnData,
96
+ TResponse extends BaseRecord = TData,
97
+ TResponseError extends HttpError = TError,
98
98
  >({
99
+ action,
100
+ resource,
101
+ onMutationSuccess: onMutationSuccessProp,
102
+ onMutationError: onMutationErrorProp,
103
+ autoSave,
104
+ submitOnEnter = false,
105
+ warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,
106
+ redirect,
107
+ successNotification,
108
+ errorNotification,
109
+ meta,
110
+ metaData,
111
+ queryMeta,
112
+ mutationMeta,
113
+ liveMode,
114
+ liveParams,
115
+ mutationMode,
116
+ dataProviderName,
117
+ onLiveEvent,
118
+ invalidates,
119
+ undoableTimeout,
120
+ queryOptions,
121
+ createMutationOptions,
122
+ updateMutationOptions,
123
+ id: idFromProps,
124
+ overtimeOptions,
125
+ optimisticUpdateMap,
126
+ disableServerSideValidation: disableServerSideValidationProp = false,
127
+ }: UseFormProps<
128
+ TQueryFnData,
129
+ TError,
130
+ TVariables,
131
+ TData,
132
+ TResponse,
133
+ TResponseError
134
+ > = {}): UseFormReturnType<
135
+ TQueryFnData,
136
+ TError,
137
+ TVariables,
138
+ TData,
139
+ TResponse,
140
+ TResponseError
141
+ > => {
142
+ const { options } = useRefineContext();
143
+ const disableServerSideValidation =
144
+ options?.disableServerSideValidation || disableServerSideValidationProp;
145
+
146
+ const translate = useTranslate();
147
+
148
+ const [formAnt] = Form.useForm();
149
+ const formSF = useFormSF<TResponse, TVariables>({
150
+ form: formAnt,
151
+ });
152
+ const { form } = formSF;
153
+
154
+ const useFormCoreResult = useFormCore<
155
+ TQueryFnData,
156
+ TError,
157
+ TVariables,
158
+ TData,
159
+ TResponse,
160
+ TResponseError
161
+ >({
162
+ onMutationSuccess: onMutationSuccessProp
163
+ ? onMutationSuccessProp
164
+ : undefined,
165
+ onMutationError: async (error, _variables, _context) => {
166
+ if (disableServerSideValidation) {
167
+ onMutationErrorProp?.(error, _variables, _context);
168
+ return;
169
+ }
170
+
171
+ // antd form expects error object to be in a specific format.
172
+ let parsedErrors: {
173
+ name: string | number | (string | number)[];
174
+ errors?: string[] | undefined;
175
+ }[] = [];
176
+
177
+ // reset antd errors before setting new errors
178
+ const fieldsValue = form.getFieldsValue() as unknown as object;
179
+
180
+ const fields = Object.keys(flattenObjectKeys(fieldsValue));
181
+
182
+ parsedErrors = fields.map((field) => {
183
+ return {
184
+ name: propertyPathToArray(field),
185
+ errors: undefined,
186
+ };
187
+ });
188
+
189
+ form.setFields(parsedErrors);
190
+
191
+ const errors = error?.errors;
192
+ // parse errors to antd form errors
193
+ for (const key in errors) {
194
+ const fieldError = errors[key];
195
+
196
+ let newError: string[] = [];
197
+
198
+ if (Array.isArray(fieldError)) {
199
+ newError = fieldError;
200
+ }
201
+
202
+ if (typeof fieldError === "string") {
203
+ newError = [fieldError];
204
+ }
205
+
206
+ if (typeof fieldError === "boolean" && fieldError) {
207
+ newError = ["Field is not valid."];
208
+ }
209
+
210
+ if (typeof fieldError === "object" && "key" in fieldError) {
211
+ const translatedMessage = translate(
212
+ fieldError.key,
213
+ fieldError.message,
214
+ );
215
+
216
+ newError = [translatedMessage];
217
+ }
218
+
219
+ parsedErrors.push({
220
+ name: propertyPathToArray(key),
221
+ errors: newError,
222
+ });
223
+ }
224
+
225
+ form.setFields([...parsedErrors]);
226
+
227
+ onMutationErrorProp?.(error, _variables, _context);
228
+ },
229
+ redirect,
99
230
  action,
100
231
  resource,
101
- onMutationSuccess: onMutationSuccessProp,
102
- onMutationError: onMutationErrorProp,
103
- autoSave,
104
- submitOnEnter = false,
105
- warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,
106
- redirect,
107
232
  successNotification,
108
233
  errorNotification,
109
- meta,
110
- metaData,
234
+ meta: pickNotDeprecated(meta, metaData),
235
+ metaData: pickNotDeprecated(meta, metaData),
111
236
  queryMeta,
112
237
  mutationMeta,
113
238
  liveMode,
@@ -123,192 +248,64 @@ export const useForm = <
123
248
  id: idFromProps,
124
249
  overtimeOptions,
125
250
  optimisticUpdateMap,
126
- disableServerSideValidation: disableServerSideValidationProp = false,
127
- }: UseFormProps<
128
- TQueryFnData,
129
- TError,
130
- TVariables,
131
- TData,
132
- TResponse,
133
- TResponseError
134
- > = {}): UseFormReturnType<
135
- TQueryFnData,
136
- TError,
137
- TVariables,
138
- TData,
139
- TResponse,
140
- TResponseError
141
- > => {
142
- const { options } = useRefineContext();
143
- const disableServerSideValidation =
144
- options?.disableServerSideValidation || disableServerSideValidationProp;
145
-
146
- const translate = useTranslate();
147
-
148
- const [formAnt] = Form.useForm();
149
- const formSF = useFormSF<TResponse, TVariables>({
150
- form: formAnt,
151
- });
152
- const { form } = formSF;
153
-
154
- const useFormCoreResult = useFormCore<
155
- TQueryFnData,
156
- TError,
157
- TVariables,
158
- TData,
159
- TResponse,
160
- TResponseError
161
- >({
162
- onMutationSuccess: onMutationSuccessProp
163
- ? onMutationSuccessProp
164
- : undefined,
165
- onMutationError: async (error, _variables, _context) => {
166
- if (disableServerSideValidation) {
167
- onMutationErrorProp?.(error, _variables, _context);
168
- return;
169
- }
170
-
171
- // antd form expects error object to be in a specific format.
172
- let parsedErrors: {
173
- name: string | number | (string | number)[];
174
- errors?: string[] | undefined;
175
- }[] = [];
176
-
177
- // reset antd errors before setting new errors
178
- const fieldsValue = form.getFieldsValue() as unknown as object;
179
-
180
- const fields = Object.keys(flattenObjectKeys(fieldsValue));
181
-
182
- parsedErrors = fields.map((field) => {
183
- return {
184
- name: propertyPathToArray(field),
185
- errors: undefined,
186
- };
187
- });
188
-
189
- form.setFields(parsedErrors);
190
-
191
- const errors = error?.errors;
192
- // parse errors to antd form errors
193
- for (const key in errors) {
194
- const fieldError = errors[key];
195
-
196
- let newError: string[] = [];
197
-
198
- if (Array.isArray(fieldError)) {
199
- newError = fieldError;
200
- }
201
-
202
- if (typeof fieldError === "string") {
203
- newError = [fieldError];
204
- }
205
-
206
- if (typeof fieldError === "boolean" && fieldError) {
207
- newError = ["Field is not valid."];
208
- }
209
-
210
- if (typeof fieldError === "object" && "key" in fieldError) {
211
- const translatedMessage = translate(
212
- fieldError.key,
213
- fieldError.message,
214
- );
215
-
216
- newError = [translatedMessage];
217
- }
218
-
219
- parsedErrors.push({
220
- name: propertyPathToArray(key),
221
- errors: newError,
222
- });
223
- }
224
-
225
- form.setFields([...parsedErrors]);
226
-
227
- onMutationErrorProp?.(error, _variables, _context);
228
- },
229
- redirect,
230
- action,
231
- resource,
232
- successNotification,
233
- errorNotification,
234
- meta: pickNotDeprecated(meta, metaData),
235
- metaData: pickNotDeprecated(meta, metaData),
236
- queryMeta,
237
- mutationMeta,
238
- liveMode,
239
- liveParams,
240
- mutationMode,
241
- dataProviderName,
242
- onLiveEvent,
243
- invalidates,
244
- undoableTimeout,
245
- queryOptions,
246
- createMutationOptions,
247
- updateMutationOptions,
248
- id: idFromProps,
249
- overtimeOptions,
250
- optimisticUpdateMap,
251
- autoSave,
252
- });
253
-
254
- const { formLoading, onFinish, queryResult, id, onFinishAutoSave } =
255
- useFormCoreResult;
256
-
257
- const {
258
- warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,
259
- setWarnWhen,
260
- } = useWarnAboutChange();
261
- const warnWhenUnsavedChanges =
262
- warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;
263
-
264
- React.useEffect(() => {
265
- form.resetFields();
266
- }, [queryResult?.data?.data, id]);
267
-
268
- const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {
269
- if (submitOnEnter && event.key === "Enter") {
270
- form.submit();
271
- }
272
- };
273
-
274
- const onValuesChange = (changeValues: object, allValues: any) => {
275
- if (changeValues && warnWhenUnsavedChanges) {
276
- setWarnWhen(true);
277
- }
278
-
279
- if (autoSave?.enabled) {
280
- setWarnWhen(false);
281
-
282
- const onFinishFromProps =
283
- autoSave?.onFinish ?? ((values) => values);
284
-
285
- return onFinishAutoSave(onFinishFromProps(allValues));
286
- }
287
-
288
- return changeValues;
289
- };
290
-
291
- const saveButtonProps = {
292
- disabled: formLoading,
293
- onClick: () => {
294
- form.submit();
295
- },
296
- };
297
-
298
- return {
299
- form: formSF.form,
300
- formProps: {
301
- ...formSF.formProps,
302
- onFinish: (values: TVariables) =>
303
- onFinish(values).catch((error) => error),
304
- onKeyUp,
305
- onValuesChange,
306
- initialValues: queryResult?.data?.data,
307
- },
308
- saveButtonProps,
309
- ...useFormCoreResult,
310
- onFinish: async (values?: TVariables) => {
311
- return await onFinish(values ?? formSF.form.getFieldsValue(true));
312
- },
313
- };
251
+ autoSave,
252
+ });
253
+
254
+ const { formLoading, onFinish, queryResult, id, onFinishAutoSave } =
255
+ useFormCoreResult;
256
+
257
+ const { warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine, setWarnWhen } =
258
+ useWarnAboutChange();
259
+ const warnWhenUnsavedChanges =
260
+ warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;
261
+
262
+ React.useEffect(() => {
263
+ form.resetFields();
264
+ }, [queryResult?.data?.data, id]);
265
+
266
+ const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {
267
+ if (submitOnEnter && event.key === "Enter") {
268
+ form.submit();
269
+ }
270
+ };
271
+
272
+ const onValuesChange = (changeValues: object, allValues: any) => {
273
+ if (changeValues && warnWhenUnsavedChanges) {
274
+ setWarnWhen(true);
275
+ }
276
+
277
+ if (autoSave?.enabled) {
278
+ setWarnWhen(false);
279
+
280
+ const onFinishFromProps = autoSave?.onFinish ?? ((values) => values);
281
+
282
+ return onFinishAutoSave(onFinishFromProps(allValues));
283
+ }
284
+
285
+ return changeValues;
286
+ };
287
+
288
+ const saveButtonProps = {
289
+ disabled: formLoading,
290
+ onClick: () => {
291
+ form.submit();
292
+ },
293
+ };
294
+
295
+ return {
296
+ form: formSF.form,
297
+ formProps: {
298
+ ...formSF.formProps,
299
+ onFinish: (values: TVariables) =>
300
+ onFinish(values).catch((error) => error),
301
+ onKeyUp,
302
+ onValuesChange,
303
+ initialValues: queryResult?.data?.data,
304
+ },
305
+ saveButtonProps,
306
+ ...useFormCoreResult,
307
+ onFinish: async (values?: TVariables) => {
308
+ return await onFinish(values ?? formSF.form.getFieldsValue(true));
309
+ },
310
+ };
314
311
  };
@@ -1,5 +1,5 @@
1
1
  export {
2
- useModalForm,
3
- UseModalFormProps,
4
- UseModalFormReturnType,
2
+ useModalForm,
3
+ UseModalFormProps,
4
+ UseModalFormReturnType,
5
5
  } from "./useModalForm";