@refinedev/antd 5.37.4 → 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 (162) hide show
  1. package/CHANGELOG.md +1760 -1778
  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/types.d.ts.map +1 -1
  13. package/dist/components/layout/sider/index.d.ts.map +1 -1
  14. package/dist/components/layout/title/index.d.ts.map +1 -1
  15. package/dist/components/layout/types.d.ts.map +1 -1
  16. package/dist/components/pageHeader/index.d.ts.map +1 -1
  17. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -1
  18. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -1
  19. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -1
  20. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -1
  21. package/dist/components/pages/auth/index.d.ts.map +1 -1
  22. package/dist/components/pages/login/index.d.ts.map +1 -1
  23. package/dist/components/pages/ready/index.d.ts.map +1 -1
  24. package/dist/components/table/components/filterDropdown/index.d.ts.map +1 -1
  25. package/dist/components/themedLayout/header/index.d.ts.map +1 -1
  26. package/dist/components/themedLayout/types.d.ts.map +1 -1
  27. package/dist/components/themedLayoutV2/header/index.d.ts.map +1 -1
  28. package/dist/components/themedLayoutV2/index.d.ts.map +1 -1
  29. package/dist/components/themedLayoutV2/sider/index.d.ts.map +1 -1
  30. package/dist/components/themedLayoutV2/types.d.ts.map +1 -1
  31. package/dist/components/undoableNotification/index.d.ts.map +1 -1
  32. package/dist/contexts/index.d.ts.map +1 -1
  33. package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts.map +1 -1
  34. package/dist/contexts/themedLayoutContext/index.d.ts.map +1 -1
  35. package/dist/definitions/table/index.d.ts.map +1 -1
  36. package/dist/definitions/themes/index.d.ts.map +1 -1
  37. package/dist/esm/index.js +1 -1
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/hooks/fields/useCheckboxGroup/index.d.ts.map +1 -1
  40. package/dist/hooks/fields/useRadioGroup/index.d.ts.map +1 -1
  41. package/dist/hooks/fields/useSelect/index.d.ts.map +1 -1
  42. package/dist/hooks/form/index.d.ts.map +1 -1
  43. package/dist/hooks/form/useDrawerForm/index.d.ts.map +1 -1
  44. package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts.map +1 -1
  45. package/dist/hooks/form/useForm.d.ts.map +1 -1
  46. package/dist/hooks/form/useModalForm/index.d.ts.map +1 -1
  47. package/dist/hooks/form/useModalForm/useModalForm.d.ts.map +1 -1
  48. package/dist/hooks/form/useStepsForm/index.d.ts.map +1 -1
  49. package/dist/hooks/form/useStepsForm/useStepsForm.d.ts.map +1 -1
  50. package/dist/hooks/import/index.d.ts.map +1 -1
  51. package/dist/hooks/list/useSimpleList/useSimpleList.d.ts.map +1 -1
  52. package/dist/hooks/modal/useModal/index.d.ts.map +1 -1
  53. package/dist/hooks/table/useEditableTable/useEditableTable.d.ts.map +1 -1
  54. package/dist/hooks/table/useTable/paginationLink.d.ts.map +1 -1
  55. package/dist/hooks/table/useTable/useTable.d.ts.map +1 -1
  56. package/dist/hooks/useFileUploadState/index.d.ts.map +1 -1
  57. package/dist/hooks/useSiderVisible/index.d.ts.map +1 -1
  58. package/dist/iife/index.js +10 -10
  59. package/dist/iife/index.js.map +1 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/interfaces/field.d.ts.map +1 -1
  64. package/dist/interfaces/index.d.ts.map +1 -1
  65. package/dist/interfaces/upload.d.ts.map +1 -1
  66. package/package.json +32 -32
  67. package/refine.config.js +497 -524
  68. package/src/components/autoSaveIndicator/index.tsx +69 -69
  69. package/src/components/breadcrumb/index.tsx +63 -65
  70. package/src/components/buttons/clone/index.tsx +86 -86
  71. package/src/components/buttons/create/index.tsx +85 -86
  72. package/src/components/buttons/delete/index.tsx +114 -119
  73. package/src/components/buttons/edit/index.tsx +86 -86
  74. package/src/components/buttons/export/index.tsx +17 -17
  75. package/src/components/buttons/import/index.tsx +19 -20
  76. package/src/components/buttons/list/index.tsx +105 -105
  77. package/src/components/buttons/refresh/index.tsx +50 -50
  78. package/src/components/buttons/save/index.tsx +17 -17
  79. package/src/components/buttons/show/index.tsx +86 -86
  80. package/src/components/buttons/types.ts +20 -20
  81. package/src/components/crud/create/index.tsx +120 -120
  82. package/src/components/crud/edit/index.tsx +205 -207
  83. package/src/components/crud/list/index.tsx +88 -90
  84. package/src/components/crud/show/index.tsx +175 -185
  85. package/src/components/crud/types.ts +41 -56
  86. package/src/components/fields/boolean/index.tsx +11 -11
  87. package/src/components/fields/date/index.tsx +13 -13
  88. package/src/components/fields/email/index.tsx +5 -5
  89. package/src/components/fields/file/index.tsx +8 -8
  90. package/src/components/fields/image/index.tsx +4 -4
  91. package/src/components/fields/markdown/index.tsx +9 -9
  92. package/src/components/fields/number/index.tsx +17 -17
  93. package/src/components/fields/tag/index.tsx +1 -1
  94. package/src/components/fields/text/index.tsx +1 -1
  95. package/src/components/fields/types.ts +18 -18
  96. package/src/components/fields/url/index.tsx +8 -8
  97. package/src/components/layout/header/index.tsx +25 -25
  98. package/src/components/layout/index.tsx +30 -30
  99. package/src/components/layout/sider/index.tsx +238 -246
  100. package/src/components/layout/sider/styles.ts +5 -5
  101. package/src/components/layout/title/index.tsx +40 -40
  102. package/src/components/layout/types.ts +6 -6
  103. package/src/components/pageHeader/index.tsx +44 -44
  104. package/src/components/pages/auth/components/forgotPassword/index.tsx +177 -180
  105. package/src/components/pages/auth/components/login/index.tsx +258 -271
  106. package/src/components/pages/auth/components/register/index.tsx +247 -263
  107. package/src/components/pages/auth/components/styles.ts +16 -16
  108. package/src/components/pages/auth/components/updatePassword/index.tsx +160 -174
  109. package/src/components/pages/auth/index.tsx +23 -23
  110. package/src/components/pages/error/index.tsx +57 -57
  111. package/src/components/pages/login/index.tsx +120 -146
  112. package/src/components/pages/login/styles.ts +12 -12
  113. package/src/components/pages/ready/index.tsx +72 -80
  114. package/src/components/pages/welcome/index.tsx +1 -1
  115. package/src/components/table/components/filterDropdown/index.tsx +89 -92
  116. package/src/components/themedLayout/header/index.tsx +28 -32
  117. package/src/components/themedLayout/index.tsx +30 -30
  118. package/src/components/themedLayout/sider/index.tsx +279 -279
  119. package/src/components/themedLayout/sider/styles.ts +5 -5
  120. package/src/components/themedLayout/title/index.tsx +66 -66
  121. package/src/components/themedLayout/types.ts +8 -8
  122. package/src/components/themedLayoutV2/header/index.tsx +37 -41
  123. package/src/components/themedLayoutV2/index.tsx +34 -36
  124. package/src/components/themedLayoutV2/sider/index.tsx +309 -313
  125. package/src/components/themedLayoutV2/sider/styles.ts +5 -5
  126. package/src/components/themedLayoutV2/title/index.tsx +66 -66
  127. package/src/components/themedLayoutV2/types.ts +9 -9
  128. package/src/components/undoableNotification/index.tsx +31 -31
  129. package/src/contexts/index.ts +2 -2
  130. package/src/contexts/themedLayoutContext/IThemedLayoutContext.ts +4 -4
  131. package/src/contexts/themedLayoutContext/index.tsx +22 -22
  132. package/src/definitions/table/index.ts +81 -82
  133. package/src/definitions/themes/index.ts +35 -35
  134. package/src/definitions/upload/index.ts +17 -17
  135. package/src/hooks/fields/useCheckboxGroup/index.ts +64 -64
  136. package/src/hooks/fields/useRadioGroup/index.ts +60 -63
  137. package/src/hooks/fields/useSelect/index.ts +30 -30
  138. package/src/hooks/form/index.ts +10 -10
  139. package/src/hooks/form/useDrawerForm/index.ts +4 -4
  140. package/src/hooks/form/useDrawerForm/useDrawerForm.ts +257 -261
  141. package/src/hooks/form/useForm.ts +256 -259
  142. package/src/hooks/form/useModalForm/index.ts +3 -3
  143. package/src/hooks/form/useModalForm/useModalForm.ts +289 -295
  144. package/src/hooks/form/useStepsForm/index.ts +3 -3
  145. package/src/hooks/form/useStepsForm/useStepsForm.ts +96 -96
  146. package/src/hooks/import/index.tsx +104 -106
  147. package/src/hooks/list/useSimpleList/useSimpleList.ts +179 -185
  148. package/src/hooks/modal/useModal/index.tsx +24 -24
  149. package/src/hooks/table/useEditableTable/useEditableTable.ts +85 -85
  150. package/src/hooks/table/useTable/paginationLink.tsx +17 -17
  151. package/src/hooks/table/useTable/useTable.ts +199 -205
  152. package/src/hooks/useFileUploadState/index.ts +20 -20
  153. package/src/hooks/useSiderVisible/index.ts +16 -16
  154. package/src/hooks/useThemedLayoutContext/index.ts +12 -12
  155. package/src/index.tsx +4 -4
  156. package/src/interfaces/field.ts +1 -1
  157. package/src/interfaces/index.ts +7 -8
  158. package/src/interfaces/upload.ts +7 -7
  159. package/src/providers/notificationProvider/index.tsx +78 -78
  160. package/src/types/index.d.ts +2 -2
  161. package/src/types/sunflower.d.ts +68 -68
  162. package/tsconfig.json +26 -26
@@ -3,8 +3,8 @@ import { Button } from "antd";
3
3
  import { ExportOutlined } from "@ant-design/icons";
4
4
  import { useTranslate } from "@refinedev/core";
5
5
  import {
6
- RefineButtonClassNames,
7
- RefineButtonTestIds,
6
+ RefineButtonClassNames,
7
+ RefineButtonTestIds,
8
8
  } from "@refinedev/ui-types";
9
9
 
10
10
  import { ExportButtonProps } from "../types";
@@ -16,21 +16,21 @@ import { ExportButtonProps } from "../types";
16
16
  * @see {@link https://refine.dev/docs/api-reference/antd/components/buttons/export-button} for more details.
17
17
  */
18
18
  export const ExportButton: React.FC<ExportButtonProps> = ({
19
- hideText = false,
20
- children,
21
- ...rest
19
+ hideText = false,
20
+ children,
21
+ ...rest
22
22
  }) => {
23
- const translate = useTranslate();
23
+ const translate = useTranslate();
24
24
 
25
- return (
26
- <Button
27
- type="default"
28
- icon={<ExportOutlined />}
29
- data-testid={RefineButtonTestIds.ExportButton}
30
- className={RefineButtonClassNames.ExportButton}
31
- {...rest}
32
- >
33
- {!hideText && (children ?? translate("buttons.export", "Export"))}
34
- </Button>
35
- );
25
+ return (
26
+ <Button
27
+ type="default"
28
+ icon={<ExportOutlined />}
29
+ data-testid={RefineButtonTestIds.ExportButton}
30
+ className={RefineButtonClassNames.ExportButton}
31
+ {...rest}
32
+ >
33
+ {!hideText && (children ?? translate("buttons.export", "Export"))}
34
+ </Button>
35
+ );
36
36
  };
@@ -3,8 +3,8 @@ import { Button, Upload } from "antd";
3
3
  import { ImportOutlined } from "@ant-design/icons";
4
4
  import { useTranslate } from "@refinedev/core";
5
5
  import {
6
- RefineButtonClassNames,
7
- RefineButtonTestIds,
6
+ RefineButtonClassNames,
7
+ RefineButtonTestIds,
8
8
  } from "@refinedev/ui-types";
9
9
 
10
10
  import { ImportButtonProps } from "../types";
@@ -17,24 +17,23 @@ import { ImportButtonProps } from "../types";
17
17
  * @see {@link https://refine.dev/docs/api-reference/antd/components/buttons/import-button} for more details.
18
18
  */
19
19
  export const ImportButton: React.FC<ImportButtonProps> = ({
20
- uploadProps,
21
- buttonProps,
22
- hideText = false,
23
- children,
20
+ uploadProps,
21
+ buttonProps,
22
+ hideText = false,
23
+ children,
24
24
  }) => {
25
- const translate = useTranslate();
25
+ const translate = useTranslate();
26
26
 
27
- return (
28
- <Upload {...uploadProps}>
29
- <Button
30
- icon={<ImportOutlined />}
31
- data-testid={RefineButtonTestIds.ImportButton}
32
- className={RefineButtonClassNames.ImportButton}
33
- {...buttonProps}
34
- >
35
- {!hideText &&
36
- (children ?? translate("buttons.import", "Import"))}
37
- </Button>
38
- </Upload>
39
- );
27
+ return (
28
+ <Upload {...uploadProps}>
29
+ <Button
30
+ icon={<ImportOutlined />}
31
+ data-testid={RefineButtonTestIds.ImportButton}
32
+ className={RefineButtonClassNames.ImportButton}
33
+ {...buttonProps}
34
+ >
35
+ {!hideText && (children ?? translate("buttons.import", "Import"))}
36
+ </Button>
37
+ </Upload>
38
+ );
40
39
  };
@@ -2,20 +2,20 @@ import React, { useContext } from "react";
2
2
  import { Button } from "antd";
3
3
  import { BarsOutlined } from "@ant-design/icons";
4
4
  import {
5
- useCan,
6
- useNavigation,
7
- useTranslate,
8
- useUserFriendlyName,
9
- useResource,
10
- useRouterContext,
11
- useRouterType,
12
- useLink,
13
- pickNotDeprecated,
14
- AccessControlContext,
5
+ useCan,
6
+ useNavigation,
7
+ useTranslate,
8
+ useUserFriendlyName,
9
+ useResource,
10
+ useRouterContext,
11
+ useRouterType,
12
+ useLink,
13
+ pickNotDeprecated,
14
+ AccessControlContext,
15
15
  } from "@refinedev/core";
16
16
  import {
17
- RefineButtonClassNames,
18
- RefineButtonTestIds,
17
+ RefineButtonClassNames,
18
+ RefineButtonTestIds,
19
19
  } from "@refinedev/ui-types";
20
20
 
21
21
  import { ListButtonProps } from "../types";
@@ -28,109 +28,109 @@ import { ListButtonProps } from "../types";
28
28
  * @see {@link https://refine.dev/docs/api-reference/antd/components/buttons/list-button} for more details.
29
29
  */
30
30
  export const ListButton: React.FC<ListButtonProps> = ({
31
- resource: resourceNameFromProps,
32
- resourceNameOrRouteName: propResourceNameOrRouteName,
33
- hideText = false,
34
- accessControl,
35
- meta,
36
- children,
37
- onClick,
38
- ...rest
31
+ resource: resourceNameFromProps,
32
+ resourceNameOrRouteName: propResourceNameOrRouteName,
33
+ hideText = false,
34
+ accessControl,
35
+ meta,
36
+ children,
37
+ onClick,
38
+ ...rest
39
39
  }) => {
40
- const accessControlContext = useContext(AccessControlContext);
40
+ const accessControlContext = useContext(AccessControlContext);
41
41
 
42
- const accessControlEnabled =
43
- accessControl?.enabled ??
44
- accessControlContext.options.buttons.enableAccessControl;
42
+ const accessControlEnabled =
43
+ accessControl?.enabled ??
44
+ accessControlContext.options.buttons.enableAccessControl;
45
45
 
46
- const hideIfUnauthorized =
47
- accessControl?.hideIfUnauthorized ??
48
- accessControlContext.options.buttons.hideIfUnauthorized;
46
+ const hideIfUnauthorized =
47
+ accessControl?.hideIfUnauthorized ??
48
+ accessControlContext.options.buttons.hideIfUnauthorized;
49
49
 
50
- const { listUrl: generateListUrl } = useNavigation();
51
- const routerType = useRouterType();
52
- const Link = useLink();
53
- const { Link: LegacyLink } = useRouterContext();
54
- const getUserFriendlyName = useUserFriendlyName();
50
+ const { listUrl: generateListUrl } = useNavigation();
51
+ const routerType = useRouterType();
52
+ const Link = useLink();
53
+ const { Link: LegacyLink } = useRouterContext();
54
+ const getUserFriendlyName = useUserFriendlyName();
55
55
 
56
- const ActiveLink = routerType === "legacy" ? LegacyLink : Link;
56
+ const ActiveLink = routerType === "legacy" ? LegacyLink : Link;
57
57
 
58
- const translate = useTranslate();
58
+ const translate = useTranslate();
59
59
 
60
- const { resource, identifier } = useResource(
61
- resourceNameFromProps ?? propResourceNameOrRouteName,
62
- );
60
+ const { resource, identifier } = useResource(
61
+ resourceNameFromProps ?? propResourceNameOrRouteName,
62
+ );
63
+
64
+ const { data } = useCan({
65
+ resource: resource?.name,
66
+ action: "list",
67
+ queryOptions: {
68
+ enabled: accessControlEnabled,
69
+ },
70
+ params: {
71
+ resource,
72
+ },
73
+ });
63
74
 
64
- const { data } = useCan({
65
- resource: resource?.name,
66
- action: "list",
67
- queryOptions: {
68
- enabled: accessControlEnabled,
69
- },
70
- params: {
71
- resource,
72
- },
73
- });
75
+ const createButtonDisabledTitle = () => {
76
+ if (data?.can) return "";
77
+ if (data?.reason) return data.reason;
74
78
 
75
- const createButtonDisabledTitle = () => {
76
- if (data?.can) return "";
77
- else if (data?.reason) return data.reason;
78
- else
79
- return translate(
80
- "buttons.notAccessTitle",
81
- "You don't have permission to access",
82
- );
83
- };
79
+ return translate(
80
+ "buttons.notAccessTitle",
81
+ "You don't have permission to access",
82
+ );
83
+ };
84
84
 
85
- const listUrl = resource ? generateListUrl(resource, meta) : "";
85
+ const listUrl = resource ? generateListUrl(resource, meta) : "";
86
86
 
87
- if (accessControlEnabled && hideIfUnauthorized && !data?.can) {
88
- return null;
89
- }
87
+ if (accessControlEnabled && hideIfUnauthorized && !data?.can) {
88
+ return null;
89
+ }
90
90
 
91
- return (
92
- <ActiveLink
93
- to={listUrl}
94
- replace={false}
95
- onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
96
- if (data?.can === false) {
97
- e.preventDefault();
98
- return;
99
- }
100
- if (onClick) {
101
- e.preventDefault();
102
- onClick(e);
103
- }
104
- }}
105
- >
106
- <Button
107
- icon={<BarsOutlined />}
108
- disabled={data?.can === false}
109
- title={createButtonDisabledTitle()}
110
- data-testid={RefineButtonTestIds.ListButton}
111
- className={RefineButtonClassNames.ListButton}
112
- {...rest}
113
- >
114
- {!hideText &&
115
- (children ??
116
- translate(
117
- `${
118
- identifier ??
119
- resourceNameFromProps ??
120
- propResourceNameOrRouteName
121
- }.titles.list`,
122
- getUserFriendlyName(
123
- resource?.meta?.label ??
124
- resource?.label ??
125
- identifier ??
126
- pickNotDeprecated(
127
- resourceNameFromProps,
128
- propResourceNameOrRouteName,
129
- ),
130
- "plural",
131
- ),
132
- ))}
133
- </Button>
134
- </ActiveLink>
135
- );
91
+ return (
92
+ <ActiveLink
93
+ to={listUrl}
94
+ replace={false}
95
+ onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
96
+ if (data?.can === false) {
97
+ e.preventDefault();
98
+ return;
99
+ }
100
+ if (onClick) {
101
+ e.preventDefault();
102
+ onClick(e);
103
+ }
104
+ }}
105
+ >
106
+ <Button
107
+ icon={<BarsOutlined />}
108
+ disabled={data?.can === false}
109
+ title={createButtonDisabledTitle()}
110
+ data-testid={RefineButtonTestIds.ListButton}
111
+ className={RefineButtonClassNames.ListButton}
112
+ {...rest}
113
+ >
114
+ {!hideText &&
115
+ (children ??
116
+ translate(
117
+ `${
118
+ identifier ??
119
+ resourceNameFromProps ??
120
+ propResourceNameOrRouteName
121
+ }.titles.list`,
122
+ getUserFriendlyName(
123
+ resource?.meta?.label ??
124
+ resource?.label ??
125
+ identifier ??
126
+ pickNotDeprecated(
127
+ resourceNameFromProps,
128
+ propResourceNameOrRouteName,
129
+ ),
130
+ "plural",
131
+ ),
132
+ ))}
133
+ </Button>
134
+ </ActiveLink>
135
+ );
136
136
  };
@@ -2,15 +2,15 @@ import React from "react";
2
2
  import { Button } from "antd";
3
3
  import { RedoOutlined } from "@ant-design/icons";
4
4
  import {
5
- useTranslate,
6
- useResource,
7
- useInvalidate,
8
- queryKeys,
9
- pickDataProvider,
5
+ useTranslate,
6
+ useResource,
7
+ useInvalidate,
8
+ queryKeys,
9
+ pickDataProvider,
10
10
  } from "@refinedev/core";
11
11
  import {
12
- RefineButtonClassNames,
13
- RefineButtonTestIds,
12
+ RefineButtonClassNames,
13
+ RefineButtonTestIds,
14
14
  } from "@refinedev/ui-types";
15
15
 
16
16
  import { RefreshButtonProps } from "../types";
@@ -24,53 +24,53 @@ import { useQueryClient } from "@tanstack/react-query";
24
24
  * @see {@link https://refine.dev/docs/api-reference/antd/components/buttons/refresh-button} for more details.
25
25
  */
26
26
  export const RefreshButton: React.FC<RefreshButtonProps> = ({
27
- resource: resourceNameFromProps,
28
- resourceNameOrRouteName: propResourceNameOrRouteName,
29
- recordItemId,
30
- hideText = false,
31
- dataProviderName,
32
- children,
33
- onClick,
34
- meta: _meta,
35
- metaData: _metaData,
36
- ...rest
27
+ resource: resourceNameFromProps,
28
+ resourceNameOrRouteName: propResourceNameOrRouteName,
29
+ recordItemId,
30
+ hideText = false,
31
+ dataProviderName,
32
+ children,
33
+ onClick,
34
+ meta: _meta,
35
+ metaData: _metaData,
36
+ ...rest
37
37
  }) => {
38
- const translate = useTranslate();
38
+ const translate = useTranslate();
39
39
 
40
- const queryClient = useQueryClient();
41
- const invalidates = useInvalidate();
40
+ const queryClient = useQueryClient();
41
+ const invalidates = useInvalidate();
42
42
 
43
- const { resources, identifier, id } = useResource(
44
- resourceNameFromProps ?? propResourceNameOrRouteName,
45
- );
43
+ const { resources, identifier, id } = useResource(
44
+ resourceNameFromProps ?? propResourceNameOrRouteName,
45
+ );
46
46
 
47
- const isInvalidating = !!queryClient.isFetching({
48
- queryKey: queryKeys(
49
- identifier,
50
- pickDataProvider(identifier, dataProviderName, resources),
51
- ).detail(recordItemId ?? id),
52
- });
47
+ const isInvalidating = !!queryClient.isFetching({
48
+ queryKey: queryKeys(
49
+ identifier,
50
+ pickDataProvider(identifier, dataProviderName, resources),
51
+ ).detail(recordItemId ?? id),
52
+ });
53
53
 
54
- const handleInvalidate = () => {
55
- invalidates({
56
- id: recordItemId ?? id,
57
- invalidates: ["detail"],
58
- dataProviderName,
59
- resource: identifier,
60
- });
61
- };
54
+ const handleInvalidate = () => {
55
+ invalidates({
56
+ id: recordItemId ?? id,
57
+ invalidates: ["detail"],
58
+ dataProviderName,
59
+ resource: identifier,
60
+ });
61
+ };
62
62
 
63
- return (
64
- <Button
65
- onClick={(e) => {
66
- onClick ? onClick(e) : handleInvalidate();
67
- }}
68
- icon={<RedoOutlined spin={isInvalidating} />}
69
- data-testid={RefineButtonTestIds.RefreshButton}
70
- className={RefineButtonClassNames.RefreshButton}
71
- {...rest}
72
- >
73
- {!hideText && (children ?? translate("buttons.refresh", "Refresh"))}
74
- </Button>
75
- );
63
+ return (
64
+ <Button
65
+ onClick={(e) => {
66
+ onClick ? onClick(e) : handleInvalidate();
67
+ }}
68
+ icon={<RedoOutlined spin={isInvalidating} />}
69
+ data-testid={RefineButtonTestIds.RefreshButton}
70
+ className={RefineButtonClassNames.RefreshButton}
71
+ {...rest}
72
+ >
73
+ {!hideText && (children ?? translate("buttons.refresh", "Refresh"))}
74
+ </Button>
75
+ );
76
76
  };
@@ -3,8 +3,8 @@ import { Button } from "antd";
3
3
  import { SaveOutlined } from "@ant-design/icons";
4
4
  import { useTranslate } from "@refinedev/core";
5
5
  import {
6
- RefineButtonClassNames,
7
- RefineButtonTestIds,
6
+ RefineButtonClassNames,
7
+ RefineButtonTestIds,
8
8
  } from "@refinedev/ui-types";
9
9
 
10
10
  import { SaveButtonProps } from "../types";
@@ -16,21 +16,21 @@ import { SaveButtonProps } from "../types";
16
16
  * @see {@link https://refine.dev/docs/api-reference/antd/components/buttons/save-button} for more details.
17
17
  */
18
18
  export const SaveButton: React.FC<SaveButtonProps> = ({
19
- hideText = false,
20
- children,
21
- ...rest
19
+ hideText = false,
20
+ children,
21
+ ...rest
22
22
  }) => {
23
- const translate = useTranslate();
23
+ const translate = useTranslate();
24
24
 
25
- return (
26
- <Button
27
- type="primary"
28
- icon={<SaveOutlined />}
29
- data-testid={RefineButtonTestIds.SaveButton}
30
- className={RefineButtonClassNames.SaveButton}
31
- {...rest}
32
- >
33
- {!hideText && (children ?? translate("buttons.save", "Save"))}
34
- </Button>
35
- );
25
+ return (
26
+ <Button
27
+ type="primary"
28
+ icon={<SaveOutlined />}
29
+ data-testid={RefineButtonTestIds.SaveButton}
30
+ className={RefineButtonClassNames.SaveButton}
31
+ {...rest}
32
+ >
33
+ {!hideText && (children ?? translate("buttons.save", "Save"))}
34
+ </Button>
35
+ );
36
36
  };