@refinedev/antd 5.44.0 → 5.45.3
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.
- package/CHANGELOG.md +148 -0
- package/README.md +2 -2
- package/dist/components/breadcrumb/index.d.cts.map +1 -1
- package/dist/components/breadcrumb/index.d.ts.map +1 -1
- package/dist/components/buttons/clone/index.d.cts.map +1 -1
- package/dist/components/buttons/clone/index.d.ts.map +1 -1
- package/dist/components/buttons/create/index.d.cts.map +1 -1
- package/dist/components/buttons/create/index.d.ts.map +1 -1
- package/dist/components/buttons/delete/index.d.cts.map +1 -1
- package/dist/components/buttons/delete/index.d.ts.map +1 -1
- package/dist/components/buttons/edit/index.d.cts.map +1 -1
- package/dist/components/buttons/edit/index.d.ts.map +1 -1
- package/dist/components/buttons/list/index.d.cts.map +1 -1
- package/dist/components/buttons/list/index.d.ts.map +1 -1
- package/dist/components/buttons/show/index.d.cts.map +1 -1
- package/dist/components/buttons/show/index.d.ts.map +1 -1
- package/dist/components/themedLayoutV2/index.d.cts.map +1 -1
- package/dist/components/themedLayoutV2/index.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.cts +1 -0
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.cts.map +1 -1
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.mts +1 -0
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.mts.map +1 -0
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts +1 -0
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/index.d.cts +1 -0
- package/dist/contexts/themedLayoutContext/index.d.cts.map +1 -1
- package/dist/contexts/themedLayoutContext/index.d.mts +1 -0
- package/dist/contexts/themedLayoutContext/index.d.mts.map +1 -0
- package/dist/contexts/themedLayoutContext/index.d.ts +1 -0
- package/dist/contexts/themedLayoutContext/index.d.ts.map +1 -1
- package/dist/definitions/filter-mappers/index.d.cts +1 -1
- package/dist/definitions/filter-mappers/index.d.cts.map +1 -1
- package/dist/definitions/filter-mappers/index.d.mts +1 -1
- package/dist/definitions/filter-mappers/index.d.mts.map +1 -1
- package/dist/definitions/filter-mappers/index.d.ts +1 -1
- package/dist/definitions/filter-mappers/index.d.ts.map +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.cts +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.cts.map +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.mts +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.mts.map +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.ts +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
- package/src/components/breadcrumb/index.tsx +2 -3
- package/src/components/buttons/clone/index.tsx +6 -3
- package/src/components/buttons/create/index.tsx +7 -4
- package/src/components/buttons/delete/index.tsx +6 -5
- package/src/components/buttons/edit/index.tsx +6 -3
- package/src/components/buttons/list/index.tsx +7 -4
- package/src/components/buttons/show/index.tsx +6 -3
- package/src/components/themedLayoutV2/index.tsx +5 -1
- package/src/contexts/themedLayoutContext/IThemedLayoutContext.ts +1 -0
- package/src/contexts/themedLayoutContext/index.tsx +10 -2
- package/src/definitions/filter-mappers/index.ts +1 -1
- package/src/hooks/useThemedLayoutContext/index.ts +2 -2
package/package.json
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"name": "@refinedev/antd",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.45.3",
|
4
4
|
"private": false,
|
5
|
-
"description": "
|
5
|
+
"description": "Ant Design UI support for Refine, offering enterprise-level UI components.",
|
6
6
|
"repository": {
|
7
7
|
"type": "git",
|
8
8
|
"url": "https://github.com/refinedev/refine.git",
|
@@ -35,7 +35,7 @@
|
|
35
35
|
"dependencies": {
|
36
36
|
"@ant-design/icons": "^5.5.1",
|
37
37
|
"@ant-design/pro-layout": "^7.21.1",
|
38
|
-
"@refinedev/ui-types": "^1.
|
38
|
+
"@refinedev/ui-types": "^1.23.1",
|
39
39
|
"@tanstack/react-query": "^4.10.1",
|
40
40
|
"antd": "^5.17.0",
|
41
41
|
"dayjs": "^1.10.7",
|
@@ -46,9 +46,9 @@
|
|
46
46
|
},
|
47
47
|
"devDependencies": {
|
48
48
|
"@esbuild-plugins/node-resolve": "^0.1.4",
|
49
|
-
"@refinedev/cli": "^2.16.
|
50
|
-
"@refinedev/core": "^4.
|
51
|
-
"@refinedev/ui-tests": "^1.
|
49
|
+
"@refinedev/cli": "^2.16.44",
|
50
|
+
"@refinedev/core": "^4.57.7",
|
51
|
+
"@refinedev/ui-tests": "^1.15.1",
|
52
52
|
"@testing-library/jest-dom": "^5.16.4",
|
53
53
|
"@testing-library/react": "^13.1.1",
|
54
54
|
"@testing-library/react-hooks": "^8.0.0",
|
@@ -64,7 +64,7 @@
|
|
64
64
|
"jest": "^29.3.1",
|
65
65
|
"jest-environment-jsdom": "^29.3.1",
|
66
66
|
"postcss": "^8.1.4",
|
67
|
-
"react-router
|
67
|
+
"react-router": "^7.0.2",
|
68
68
|
"ts-jest": "^29.1.2",
|
69
69
|
"tsup": "^6.7.0",
|
70
70
|
"typescript": "^5.4.2"
|
@@ -23,6 +23,7 @@ export const Breadcrumb: React.FC<BreadcrumbProps> = ({
|
|
23
23
|
showHome = true,
|
24
24
|
hideIcons = false,
|
25
25
|
meta,
|
26
|
+
minItems = 2,
|
26
27
|
}) => {
|
27
28
|
const routerType = useRouterType();
|
28
29
|
const { breadcrumbs } = useBreadcrumb({
|
@@ -38,9 +39,7 @@ export const Breadcrumb: React.FC<BreadcrumbProps> = ({
|
|
38
39
|
|
39
40
|
const ActiveLink = routerType === "legacy" ? LegacyLink : Link;
|
40
41
|
|
41
|
-
if (breadcrumbs.length
|
42
|
-
return null;
|
43
|
-
}
|
42
|
+
if (breadcrumbs.length < minItems) return null;
|
44
43
|
|
45
44
|
const breadCrumbItems = breadcrumbs.map(({ label, icon, href }) => ({
|
46
45
|
key: `breadcrumb-item-${label}`,
|
@@ -34,14 +34,17 @@ export const CloneButton: React.FC<CloneButtonProps> = ({
|
|
34
34
|
meta,
|
35
35
|
});
|
36
36
|
|
37
|
-
|
37
|
+
const isDisabled = disabled || rest.disabled;
|
38
|
+
const isHidden = hidden || rest.hidden;
|
39
|
+
|
40
|
+
if (isHidden) return null;
|
38
41
|
|
39
42
|
return (
|
40
43
|
<LinkComponent
|
41
44
|
to={to}
|
42
45
|
replace={false}
|
43
46
|
onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
|
44
|
-
if (
|
47
|
+
if (isDisabled) {
|
45
48
|
e.preventDefault();
|
46
49
|
return;
|
47
50
|
}
|
@@ -53,7 +56,7 @@ export const CloneButton: React.FC<CloneButtonProps> = ({
|
|
53
56
|
>
|
54
57
|
<Button
|
55
58
|
icon={<PlusSquareOutlined />}
|
56
|
-
disabled={
|
59
|
+
disabled={isDisabled}
|
57
60
|
title={title}
|
58
61
|
data-testid={RefineButtonTestIds.CloneButton}
|
59
62
|
className={RefineButtonClassNames.CloneButton}
|
@@ -29,19 +29,22 @@ export const CreateButton: React.FC<CreateButtonProps> = ({
|
|
29
29
|
const { hidden, disabled, label, title, LinkComponent, to } = useCreateButton(
|
30
30
|
{
|
31
31
|
resource: resourceNameFromProps ?? propResourceNameOrRouteName,
|
32
|
-
accessControl,
|
33
32
|
meta,
|
33
|
+
accessControl,
|
34
34
|
},
|
35
35
|
);
|
36
36
|
|
37
|
-
|
37
|
+
const isDisabled = disabled || rest.disabled;
|
38
|
+
const isHidden = hidden || rest.hidden;
|
39
|
+
|
40
|
+
if (isHidden) return null;
|
38
41
|
|
39
42
|
return (
|
40
43
|
<LinkComponent
|
41
44
|
to={to}
|
42
45
|
replace={false}
|
43
46
|
onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
|
44
|
-
if (
|
47
|
+
if (isDisabled) {
|
45
48
|
e.preventDefault();
|
46
49
|
return;
|
47
50
|
}
|
@@ -53,7 +56,7 @@ export const CreateButton: React.FC<CreateButtonProps> = ({
|
|
53
56
|
>
|
54
57
|
<Button
|
55
58
|
icon={<PlusSquareOutlined />}
|
56
|
-
disabled={
|
59
|
+
disabled={isDisabled}
|
57
60
|
title={title}
|
58
61
|
data-testid={RefineButtonTestIds.CreateButton}
|
59
62
|
className={RefineButtonClassNames.CreateButton}
|
@@ -58,7 +58,10 @@ export const DeleteButton: React.FC<DeleteButtonProps> = ({
|
|
58
58
|
accessControl,
|
59
59
|
});
|
60
60
|
|
61
|
-
|
61
|
+
const isDisabled = disabled || rest.disabled;
|
62
|
+
const isHidden = hidden || rest.hidden;
|
63
|
+
|
64
|
+
if (isHidden) return null;
|
62
65
|
|
63
66
|
return (
|
64
67
|
<Popconfirm
|
@@ -69,16 +72,14 @@ export const DeleteButton: React.FC<DeleteButtonProps> = ({
|
|
69
72
|
title={confirmTitle ?? defaultConfirmTitle}
|
70
73
|
okButtonProps={{ disabled: loading }}
|
71
74
|
onConfirm={onConfirm}
|
72
|
-
disabled={
|
73
|
-
typeof rest?.disabled !== "undefined" ? rest.disabled : disabled
|
74
|
-
}
|
75
|
+
disabled={isDisabled}
|
75
76
|
>
|
76
77
|
<Button
|
77
78
|
danger
|
78
79
|
loading={loading}
|
79
80
|
icon={<DeleteOutlined />}
|
80
81
|
title={title}
|
81
|
-
disabled={
|
82
|
+
disabled={isDisabled}
|
82
83
|
data-testid={RefineButtonTestIds.DeleteButton}
|
83
84
|
className={RefineButtonClassNames.DeleteButton}
|
84
85
|
{...rest}
|
@@ -34,14 +34,17 @@ export const EditButton: React.FC<EditButtonProps> = ({
|
|
34
34
|
accessControl,
|
35
35
|
});
|
36
36
|
|
37
|
-
|
37
|
+
const isDisabled = disabled || rest.disabled;
|
38
|
+
const isHidden = hidden || rest.hidden;
|
39
|
+
|
40
|
+
if (isHidden) return null;
|
38
41
|
|
39
42
|
return (
|
40
43
|
<LinkComponent
|
41
44
|
to={to}
|
42
45
|
replace={false}
|
43
46
|
onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
|
44
|
-
if (
|
47
|
+
if (isDisabled) {
|
45
48
|
e.preventDefault();
|
46
49
|
return;
|
47
50
|
}
|
@@ -53,7 +56,7 @@ export const EditButton: React.FC<EditButtonProps> = ({
|
|
53
56
|
>
|
54
57
|
<Button
|
55
58
|
icon={<EditOutlined />}
|
56
|
-
disabled={
|
59
|
+
disabled={isDisabled}
|
57
60
|
title={title}
|
58
61
|
data-testid={RefineButtonTestIds.EditButton}
|
59
62
|
className={RefineButtonClassNames.EditButton}
|
@@ -28,18 +28,21 @@ export const ListButton: React.FC<ListButtonProps> = ({
|
|
28
28
|
}) => {
|
29
29
|
const { to, label, title, hidden, disabled, LinkComponent } = useListButton({
|
30
30
|
resource: resourceNameFromProps ?? propResourceNameOrRouteName,
|
31
|
-
accessControl,
|
32
31
|
meta,
|
32
|
+
accessControl,
|
33
33
|
});
|
34
34
|
|
35
|
-
|
35
|
+
const isDisabled = disabled || rest.disabled;
|
36
|
+
const isHidden = hidden || rest.hidden;
|
37
|
+
|
38
|
+
if (isHidden) return null;
|
36
39
|
|
37
40
|
return (
|
38
41
|
<LinkComponent
|
39
42
|
to={to}
|
40
43
|
replace={false}
|
41
44
|
onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
|
42
|
-
if (
|
45
|
+
if (isDisabled) {
|
43
46
|
e.preventDefault();
|
44
47
|
return;
|
45
48
|
}
|
@@ -51,7 +54,7 @@ export const ListButton: React.FC<ListButtonProps> = ({
|
|
51
54
|
>
|
52
55
|
<Button
|
53
56
|
icon={<BarsOutlined />}
|
54
|
-
disabled={
|
57
|
+
disabled={isDisabled}
|
55
58
|
title={title}
|
56
59
|
data-testid={RefineButtonTestIds.ListButton}
|
57
60
|
className={RefineButtonClassNames.ListButton}
|
@@ -34,14 +34,17 @@ export const ShowButton: React.FC<ShowButtonProps> = ({
|
|
34
34
|
meta,
|
35
35
|
});
|
36
36
|
|
37
|
-
|
37
|
+
const isDisabled = disabled || rest.disabled;
|
38
|
+
const isHidden = hidden || rest.hidden;
|
39
|
+
|
40
|
+
if (isHidden) return null;
|
38
41
|
|
39
42
|
return (
|
40
43
|
<LinkComponent
|
41
44
|
to={to}
|
42
45
|
replace={false}
|
43
46
|
onClick={(e: React.PointerEvent<HTMLButtonElement>) => {
|
44
|
-
if (
|
47
|
+
if (isDisabled) {
|
45
48
|
e.preventDefault();
|
46
49
|
return;
|
47
50
|
}
|
@@ -52,8 +55,8 @@ export const ShowButton: React.FC<ShowButtonProps> = ({
|
|
52
55
|
}}
|
53
56
|
>
|
54
57
|
<Button
|
58
|
+
disabled={isDisabled}
|
55
59
|
icon={<EyeOutlined />}
|
56
|
-
disabled={disabled}
|
57
60
|
title={title}
|
58
61
|
data-testid={RefineButtonTestIds.ShowButton}
|
59
62
|
className={RefineButtonClassNames.ShowButton}
|
@@ -14,6 +14,7 @@ export const ThemedLayoutV2: React.FC<RefineThemedLayoutV2Props> = ({
|
|
14
14
|
Footer,
|
15
15
|
OffLayoutArea,
|
16
16
|
initialSiderCollapsed,
|
17
|
+
onSiderCollapsed,
|
17
18
|
}) => {
|
18
19
|
const breakpoint = Grid.useBreakpoint();
|
19
20
|
const SiderToRender = Sider ?? DefaultSider;
|
@@ -22,7 +23,10 @@ export const ThemedLayoutV2: React.FC<RefineThemedLayoutV2Props> = ({
|
|
22
23
|
const hasSider = !!SiderToRender({ Title });
|
23
24
|
|
24
25
|
return (
|
25
|
-
<ThemedLayoutContextProvider
|
26
|
+
<ThemedLayoutContextProvider
|
27
|
+
initialSiderCollapsed={initialSiderCollapsed}
|
28
|
+
onSiderCollapsed={onSiderCollapsed}
|
29
|
+
>
|
26
30
|
<AntdLayout style={{ minHeight: "100vh" }} hasSider={hasSider}>
|
27
31
|
<SiderToRender Title={Title} />
|
28
32
|
<AntdLayout>
|
@@ -12,12 +12,20 @@ export const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({
|
|
12
12
|
export const ThemedLayoutContextProvider: React.FC<{
|
13
13
|
children: ReactNode;
|
14
14
|
initialSiderCollapsed?: boolean;
|
15
|
-
|
16
|
-
|
15
|
+
onSiderCollapsed?: (collapsed: boolean) => void;
|
16
|
+
}> = ({ children, initialSiderCollapsed, onSiderCollapsed }) => {
|
17
|
+
const [siderCollapsed, setSiderCollapsedState] = useState(
|
17
18
|
initialSiderCollapsed ?? false,
|
18
19
|
);
|
19
20
|
const [mobileSiderOpen, setMobileSiderOpen] = useState(false);
|
20
21
|
|
22
|
+
const setSiderCollapsed = (collapsed: boolean) => {
|
23
|
+
setSiderCollapsedState(collapsed);
|
24
|
+
if (onSiderCollapsed) {
|
25
|
+
onSiderCollapsed(collapsed);
|
26
|
+
}
|
27
|
+
};
|
28
|
+
|
21
29
|
return (
|
22
30
|
<ThemedLayoutContext.Provider
|
23
31
|
value={{
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { useContext } from "react";
|
2
2
|
|
3
|
-
import { ThemedLayoutContext } from "
|
4
|
-
import type { IThemedLayoutContext } from "
|
3
|
+
import { ThemedLayoutContext } from "../../contexts";
|
4
|
+
import type { IThemedLayoutContext } from "../../contexts/themedLayoutContext/IThemedLayoutContext";
|
5
5
|
|
6
6
|
export type UseThemedLayoutContextType = IThemedLayoutContext;
|
7
7
|
|