@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,30 +2,30 @@ import React from "react";
2
2
 
3
3
  import { Card, Space, Spin } from "antd";
4
4
  import {
5
- useMutationMode,
6
- useNavigation,
7
- useTranslate,
8
- useUserFriendlyName,
9
- useRefineContext,
10
- useRouterType,
11
- useBack,
12
- useResource,
13
- useGo,
14
- useToPath,
5
+ useMutationMode,
6
+ useNavigation,
7
+ useTranslate,
8
+ useUserFriendlyName,
9
+ useRefineContext,
10
+ useRouterType,
11
+ useBack,
12
+ useResource,
13
+ useGo,
14
+ useToPath,
15
15
  } from "@refinedev/core";
16
16
 
17
17
  import {
18
- DeleteButton,
19
- RefreshButton,
20
- ListButton,
21
- SaveButton,
22
- Breadcrumb,
23
- PageHeader,
24
- ListButtonProps,
25
- RefreshButtonProps,
26
- DeleteButtonProps,
27
- SaveButtonProps,
28
- AutoSaveIndicator,
18
+ DeleteButton,
19
+ RefreshButton,
20
+ ListButton,
21
+ SaveButton,
22
+ Breadcrumb,
23
+ PageHeader,
24
+ ListButtonProps,
25
+ RefreshButtonProps,
26
+ DeleteButtonProps,
27
+ SaveButtonProps,
28
+ AutoSaveIndicator,
29
29
  } from "@components";
30
30
  import { EditProps } from "../types";
31
31
 
@@ -36,196 +36,194 @@ import { EditProps } from "../types";
36
36
  * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.
37
37
  */
38
38
  export const Edit: React.FC<EditProps> = ({
39
- title,
40
- saveButtonProps: saveButtonPropsFromProps,
41
- mutationMode: mutationModeProp,
42
- recordItemId,
43
- children,
44
- deleteButtonProps: deleteButtonPropsFromProps,
45
- canDelete,
46
- resource: resourceFromProps,
47
- isLoading = false,
48
- dataProviderName,
49
- breadcrumb: breadcrumbFromProps,
50
- wrapperProps,
51
- headerProps,
52
- contentProps,
53
- headerButtonProps,
54
- headerButtons,
55
- footerButtonProps,
56
- footerButtons,
57
- goBack: goBackFromProps,
58
- autoSaveProps,
39
+ title,
40
+ saveButtonProps: saveButtonPropsFromProps,
41
+ mutationMode: mutationModeProp,
42
+ recordItemId,
43
+ children,
44
+ deleteButtonProps: deleteButtonPropsFromProps,
45
+ canDelete,
46
+ resource: resourceFromProps,
47
+ isLoading = false,
48
+ dataProviderName,
49
+ breadcrumb: breadcrumbFromProps,
50
+ wrapperProps,
51
+ headerProps,
52
+ contentProps,
53
+ headerButtonProps,
54
+ headerButtons,
55
+ footerButtonProps,
56
+ footerButtons,
57
+ goBack: goBackFromProps,
58
+ autoSaveProps,
59
59
  }) => {
60
- const translate = useTranslate();
61
- const { options: { breadcrumb: globalBreadcrumb } = {} } =
62
- useRefineContext();
63
- const { mutationMode: mutationModeContext } = useMutationMode();
64
- const mutationMode = mutationModeProp ?? mutationModeContext;
65
-
66
- const routerType = useRouterType();
67
- const back = useBack();
68
- const go = useGo();
69
- const { goBack, list: legacyGoList } = useNavigation();
70
- const getUserFriendlyName = useUserFriendlyName();
71
-
72
- const {
73
- resource,
74
- action,
75
- id: idFromParams,
76
- identifier,
77
- } = useResource(resourceFromProps);
78
-
79
- const goListPath = useToPath({
80
- resource,
81
- action: "list",
82
- });
83
-
84
- const id = recordItemId ?? idFromParams;
85
-
86
- const breadcrumb =
87
- typeof breadcrumbFromProps === "undefined"
88
- ? globalBreadcrumb
89
- : breadcrumbFromProps;
90
-
91
- const hasList = resource?.list && !recordItemId;
92
- const isDeleteButtonVisible =
93
- canDelete ??
94
- ((resource?.meta?.canDelete ?? resource?.canDelete) ||
95
- deleteButtonPropsFromProps);
96
-
97
- const listButtonProps: ListButtonProps | undefined = hasList
98
- ? {
99
- ...(isLoading ? { disabled: true } : {}),
100
- resource: routerType === "legacy" ? resource?.route : identifier,
101
- }
102
- : undefined;
60
+ const translate = useTranslate();
61
+ const {
62
+ options: { breadcrumb: globalBreadcrumb } = {},
63
+ } = useRefineContext();
64
+ const { mutationMode: mutationModeContext } = useMutationMode();
65
+ const mutationMode = mutationModeProp ?? mutationModeContext;
66
+
67
+ const routerType = useRouterType();
68
+ const back = useBack();
69
+ const go = useGo();
70
+ const { goBack, list: legacyGoList } = useNavigation();
71
+ const getUserFriendlyName = useUserFriendlyName();
72
+
73
+ const {
74
+ resource,
75
+ action,
76
+ id: idFromParams,
77
+ identifier,
78
+ } = useResource(resourceFromProps);
79
+
80
+ const goListPath = useToPath({
81
+ resource,
82
+ action: "list",
83
+ });
84
+
85
+ const id = recordItemId ?? idFromParams;
86
+
87
+ const breadcrumb =
88
+ typeof breadcrumbFromProps === "undefined"
89
+ ? globalBreadcrumb
90
+ : breadcrumbFromProps;
91
+
92
+ const hasList = resource?.list && !recordItemId;
93
+ const isDeleteButtonVisible =
94
+ canDelete ??
95
+ ((resource?.meta?.canDelete ?? resource?.canDelete) ||
96
+ deleteButtonPropsFromProps);
97
+
98
+ const listButtonProps: ListButtonProps | undefined = hasList
99
+ ? {
100
+ ...(isLoading ? { disabled: true } : {}),
101
+ resource: routerType === "legacy" ? resource?.route : identifier,
102
+ }
103
+ : undefined;
103
104
 
104
- const refreshButtonProps: RefreshButtonProps = {
105
+ const refreshButtonProps: RefreshButtonProps = {
106
+ ...(isLoading ? { disabled: true } : {}),
107
+ resource: routerType === "legacy" ? resource?.route : identifier,
108
+ recordItemId: id,
109
+ dataProviderName,
110
+ };
111
+
112
+ const deleteButtonProps: DeleteButtonProps | undefined = isDeleteButtonVisible
113
+ ? {
105
114
  ...(isLoading ? { disabled: true } : {}),
106
115
  resource: routerType === "legacy" ? resource?.route : identifier,
116
+ mutationMode,
117
+ onSuccess: () => {
118
+ if (routerType === "legacy") {
119
+ legacyGoList(resource?.route ?? resource?.name ?? "");
120
+ } else {
121
+ go({ to: goListPath });
122
+ }
123
+ },
107
124
  recordItemId: id,
108
125
  dataProviderName,
109
- };
110
-
111
- const deleteButtonProps: DeleteButtonProps | undefined =
112
- isDeleteButtonVisible
113
- ? {
114
- ...(isLoading ? { disabled: true } : {}),
115
- resource:
116
- routerType === "legacy" ? resource?.route : identifier,
117
- mutationMode,
118
- onSuccess: () => {
119
- if (routerType === "legacy") {
120
- legacyGoList(resource?.route ?? resource?.name ?? "");
121
- } else {
122
- go({ to: goListPath });
123
- }
124
- },
125
- recordItemId: id,
126
- dataProviderName,
127
- ...deleteButtonPropsFromProps,
128
- }
129
- : undefined;
130
-
131
- const saveButtonProps: SaveButtonProps = {
132
- ...(isLoading ? { disabled: true } : {}),
133
- ...saveButtonPropsFromProps,
134
- };
135
-
136
- const defaultHeaderButtons = (
137
- <>
138
- {autoSaveProps && <AutoSaveIndicator {...autoSaveProps} />}
139
- {hasList && <ListButton {...listButtonProps} />}
140
- <RefreshButton {...refreshButtonProps} />
141
- </>
142
- );
143
-
144
- const defaultFooterButtons = (
145
- <>
146
- {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}
147
- <SaveButton {...saveButtonProps} />
148
- </>
149
- );
150
-
151
- return (
152
- <div {...(wrapperProps ?? {})}>
153
- <PageHeader
154
- ghost={false}
155
- backIcon={goBackFromProps}
156
- onBack={
157
- action !== "list" && typeof action !== "undefined"
158
- ? routerType === "legacy"
159
- ? goBack
160
- : back
161
- : undefined
162
- }
163
- title={
164
- title ??
165
- translate(
166
- `${identifier}.titles.edit`,
167
- `Edit ${getUserFriendlyName(
168
- resource?.meta?.label ??
169
- resource?.options?.label ??
170
- resource?.label ??
171
- identifier,
172
- "singular",
173
- )}`,
174
- )
175
- }
176
- extra={
177
- <Space wrap {...(headerButtonProps ?? {})}>
178
- {headerButtons
179
- ? typeof headerButtons === "function"
180
- ? headerButtons({
181
- defaultButtons: defaultHeaderButtons,
182
- listButtonProps,
183
- refreshButtonProps,
184
- })
185
- : headerButtons
186
- : defaultHeaderButtons}
187
- </Space>
188
- }
189
- breadcrumb={
190
- typeof breadcrumb !== "undefined" ? (
191
- <>{breadcrumb}</> ?? undefined
192
- ) : (
193
- <Breadcrumb />
194
- )
195
- }
196
- {...(headerProps ?? {})}
197
- >
198
- <Spin spinning={isLoading}>
199
- <Card
200
- bordered={false}
201
- actions={[
202
- <Space
203
- key="footer-buttons"
204
- wrap
205
- style={{
206
- float: "right",
207
- marginRight: 24,
208
- }}
209
- {...(footerButtonProps ?? {})}
210
- >
211
- {footerButtons
212
- ? typeof footerButtons === "function"
213
- ? footerButtons({
214
- defaultButtons:
215
- defaultFooterButtons,
216
- deleteButtonProps,
217
- saveButtonProps,
218
- })
219
- : footerButtons
220
- : defaultFooterButtons}
221
- </Space>,
222
- ]}
223
- {...(contentProps ?? {})}
224
- >
225
- {children}
226
- </Card>
227
- </Spin>
228
- </PageHeader>
229
- </div>
230
- );
126
+ ...deleteButtonPropsFromProps,
127
+ }
128
+ : undefined;
129
+
130
+ const saveButtonProps: SaveButtonProps = {
131
+ ...(isLoading ? { disabled: true } : {}),
132
+ ...saveButtonPropsFromProps,
133
+ };
134
+
135
+ const defaultHeaderButtons = (
136
+ <>
137
+ {autoSaveProps && <AutoSaveIndicator {...autoSaveProps} />}
138
+ {hasList && <ListButton {...listButtonProps} />}
139
+ <RefreshButton {...refreshButtonProps} />
140
+ </>
141
+ );
142
+
143
+ const defaultFooterButtons = (
144
+ <>
145
+ {isDeleteButtonVisible && <DeleteButton {...deleteButtonProps} />}
146
+ <SaveButton {...saveButtonProps} />
147
+ </>
148
+ );
149
+
150
+ return (
151
+ <div {...(wrapperProps ?? {})}>
152
+ <PageHeader
153
+ ghost={false}
154
+ backIcon={goBackFromProps}
155
+ onBack={
156
+ action !== "list" && typeof action !== "undefined"
157
+ ? routerType === "legacy"
158
+ ? goBack
159
+ : back
160
+ : undefined
161
+ }
162
+ title={
163
+ title ??
164
+ translate(
165
+ `${identifier}.titles.edit`,
166
+ `Edit ${getUserFriendlyName(
167
+ resource?.meta?.label ??
168
+ resource?.options?.label ??
169
+ resource?.label ??
170
+ identifier,
171
+ "singular",
172
+ )}`,
173
+ )
174
+ }
175
+ extra={
176
+ <Space wrap {...(headerButtonProps ?? {})}>
177
+ {headerButtons
178
+ ? typeof headerButtons === "function"
179
+ ? headerButtons({
180
+ defaultButtons: defaultHeaderButtons,
181
+ listButtonProps,
182
+ refreshButtonProps,
183
+ })
184
+ : headerButtons
185
+ : defaultHeaderButtons}
186
+ </Space>
187
+ }
188
+ breadcrumb={
189
+ typeof breadcrumb !== "undefined" ? (
190
+ <>{breadcrumb}</> ?? undefined
191
+ ) : (
192
+ <Breadcrumb />
193
+ )
194
+ }
195
+ {...(headerProps ?? {})}
196
+ >
197
+ <Spin spinning={isLoading}>
198
+ <Card
199
+ bordered={false}
200
+ actions={[
201
+ <Space
202
+ key="footer-buttons"
203
+ wrap
204
+ style={{
205
+ float: "right",
206
+ marginRight: 24,
207
+ }}
208
+ {...(footerButtonProps ?? {})}
209
+ >
210
+ {footerButtons
211
+ ? typeof footerButtons === "function"
212
+ ? footerButtons({
213
+ defaultButtons: defaultFooterButtons,
214
+ deleteButtonProps,
215
+ saveButtonProps,
216
+ })
217
+ : footerButtons
218
+ : defaultFooterButtons}
219
+ </Space>,
220
+ ]}
221
+ {...(contentProps ?? {})}
222
+ >
223
+ {children}
224
+ </Card>
225
+ </Spin>
226
+ </PageHeader>
227
+ </div>
228
+ );
231
229
  };
@@ -1,18 +1,18 @@
1
1
  import React from "react";
2
2
  import { Space } from "antd";
3
3
  import {
4
- useTranslate,
5
- useUserFriendlyName,
6
- useRefineContext,
7
- useRouterType,
8
- useResource,
4
+ useTranslate,
5
+ useUserFriendlyName,
6
+ useRefineContext,
7
+ useRouterType,
8
+ useResource,
9
9
  } from "@refinedev/core";
10
10
 
11
11
  import {
12
- Breadcrumb,
13
- CreateButton,
14
- CreateButtonProps,
15
- PageHeader,
12
+ Breadcrumb,
13
+ CreateButton,
14
+ CreateButtonProps,
15
+ PageHeader,
16
16
  } from "@components";
17
17
  import { ListProps } from "../types";
18
18
 
@@ -23,93 +23,91 @@ import { ListProps } from "../types";
23
23
  * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.
24
24
  */
25
25
  export const List: React.FC<ListProps> = ({
26
- canCreate,
27
- title,
28
- children,
29
- createButtonProps: createButtonPropsFromProps,
30
- resource: resourceFromProps,
31
- wrapperProps,
32
- contentProps,
33
- headerProps,
34
- breadcrumb: breadcrumbFromProps,
35
- headerButtonProps,
36
- headerButtons,
26
+ canCreate,
27
+ title,
28
+ children,
29
+ createButtonProps: createButtonPropsFromProps,
30
+ resource: resourceFromProps,
31
+ wrapperProps,
32
+ contentProps,
33
+ headerProps,
34
+ breadcrumb: breadcrumbFromProps,
35
+ headerButtonProps,
36
+ headerButtons,
37
37
  }) => {
38
- const translate = useTranslate();
39
- const { options: { breadcrumb: globalBreadcrumb } = {} } =
40
- useRefineContext();
38
+ const translate = useTranslate();
39
+ const {
40
+ options: { breadcrumb: globalBreadcrumb } = {},
41
+ } = useRefineContext();
41
42
 
42
- const routerType = useRouterType();
43
- const getUserFriendlyName = useUserFriendlyName();
43
+ const routerType = useRouterType();
44
+ const getUserFriendlyName = useUserFriendlyName();
44
45
 
45
- const { resource, identifier } = useResource(resourceFromProps);
46
+ const { resource, identifier } = useResource(resourceFromProps);
46
47
 
47
- const isCreateButtonVisible =
48
- canCreate ??
49
- ((resource?.canCreate ?? !!resource?.create) ||
50
- createButtonPropsFromProps);
48
+ const isCreateButtonVisible =
49
+ canCreate ??
50
+ ((resource?.canCreate ?? !!resource?.create) || createButtonPropsFromProps);
51
51
 
52
- const breadcrumb =
53
- typeof breadcrumbFromProps === "undefined"
54
- ? globalBreadcrumb
55
- : breadcrumbFromProps;
52
+ const breadcrumb =
53
+ typeof breadcrumbFromProps === "undefined"
54
+ ? globalBreadcrumb
55
+ : breadcrumbFromProps;
56
56
 
57
- const createButtonProps: CreateButtonProps | undefined =
58
- isCreateButtonVisible
59
- ? {
60
- size: "middle",
61
- resource:
62
- routerType === "legacy" ? resource?.route : identifier,
63
- ...createButtonPropsFromProps,
64
- }
65
- : undefined;
57
+ const createButtonProps: CreateButtonProps | undefined = isCreateButtonVisible
58
+ ? {
59
+ size: "middle",
60
+ resource: routerType === "legacy" ? resource?.route : identifier,
61
+ ...createButtonPropsFromProps,
62
+ }
63
+ : undefined;
66
64
 
67
- const defaultExtra = isCreateButtonVisible ? (
68
- <CreateButton {...createButtonProps} />
69
- ) : null;
65
+ const defaultExtra = isCreateButtonVisible ? (
66
+ <CreateButton {...createButtonProps} />
67
+ ) : null;
70
68
 
71
- return (
72
- <div {...(wrapperProps ?? {})}>
73
- <PageHeader
74
- ghost={false}
75
- title={
76
- title ??
77
- translate(
78
- `${identifier}.titles.list`,
79
- getUserFriendlyName(
80
- resource?.meta?.label ??
81
- resource?.options?.label ??
82
- resource?.label ??
83
- identifier,
84
- "plural",
85
- ),
86
- )
87
- }
88
- extra={
89
- headerButtons ? (
90
- <Space wrap {...headerButtonProps}>
91
- {typeof headerButtons === "function"
92
- ? headerButtons({
93
- defaultButtons: defaultExtra,
94
- createButtonProps,
95
- })
96
- : headerButtons}
97
- </Space>
98
- ) : (
99
- defaultExtra
100
- )
101
- }
102
- breadcrumb={
103
- typeof breadcrumb !== "undefined" ? (
104
- <>{breadcrumb}</> ?? undefined
105
- ) : (
106
- <Breadcrumb />
107
- )
108
- }
109
- {...(headerProps ?? {})}
110
- >
111
- <div {...(contentProps ?? {})}>{children}</div>
112
- </PageHeader>
113
- </div>
114
- );
69
+ return (
70
+ <div {...(wrapperProps ?? {})}>
71
+ <PageHeader
72
+ ghost={false}
73
+ title={
74
+ title ??
75
+ translate(
76
+ `${identifier}.titles.list`,
77
+ getUserFriendlyName(
78
+ resource?.meta?.label ??
79
+ resource?.options?.label ??
80
+ resource?.label ??
81
+ identifier,
82
+ "plural",
83
+ ),
84
+ )
85
+ }
86
+ extra={
87
+ headerButtons ? (
88
+ <Space wrap {...headerButtonProps}>
89
+ {typeof headerButtons === "function"
90
+ ? headerButtons({
91
+ defaultButtons: defaultExtra,
92
+ createButtonProps,
93
+ })
94
+ : headerButtons}
95
+ </Space>
96
+ ) : (
97
+ defaultExtra
98
+ )
99
+ }
100
+ breadcrumb={
101
+ typeof breadcrumb !== "undefined" ? (
102
+ <>{breadcrumb}</> ?? undefined
103
+ ) : (
104
+ <Breadcrumb />
105
+ )
106
+ }
107
+ {...(headerProps ?? {})}
108
+ >
109
+ <div {...(contentProps ?? {})}>{children}</div>
110
+ </PageHeader>
111
+ </div>
112
+ );
115
113
  };