@refinedev/antd 5.18.2 → 5.20.0
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 +42 -0
- package/README.md +28 -62
- package/dist/components/themedLayoutV2/sider/index.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts +4 -4
- package/dist/contexts/themedLayoutContext/IThemedLayoutContext.d.ts.map +1 -1
- package/dist/contexts/themedLayoutContext/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useSiderVisible/index.d.ts +9 -2
- package/dist/hooks/useSiderVisible/index.d.ts.map +1 -1
- package/dist/hooks/useThemedLayoutContext/index.d.ts +4 -0
- package/dist/hooks/useThemedLayoutContext/index.d.ts.map +1 -0
- package/dist/iife/index.js +6 -6
- package/dist/iife/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/themedLayoutV2/sider/index.tsx +21 -24
- package/src/contexts/themedLayoutContext/IThemedLayoutContext.ts +4 -4
- package/src/contexts/themedLayoutContext/index.tsx +10 -8
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useSiderVisible/index.ts +17 -10
- package/src/hooks/useThemedLayoutContext/index.ts +22 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@refinedev/antd",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.20.0",
|
4
4
|
"description": "refine is a React-based framework for building internal tools, rapidly. It ships with Ant Design System, an enterprise-level UI toolkit.",
|
5
5
|
"private": false,
|
6
6
|
"main": "dist/index.js",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"devDependencies": {
|
26
26
|
"@refinedev/cli": "^2.5.3",
|
27
27
|
"@refinedev/ui-tests": "^1.5.0",
|
28
|
-
"@refinedev/core": "^4.
|
28
|
+
"@refinedev/core": "^4.16.4",
|
29
29
|
"@esbuild-plugins/node-resolve": "^0.1.4",
|
30
30
|
"@testing-library/jest-dom": "^5.16.4",
|
31
31
|
"@testing-library/react": "^13.1.1",
|
@@ -47,7 +47,7 @@
|
|
47
47
|
"typescript": "^4.7.4"
|
48
48
|
},
|
49
49
|
"dependencies": {
|
50
|
-
"@ant-design/icons": "
|
50
|
+
"@ant-design/icons": "5.0.1",
|
51
51
|
"@ant-design/pro-layout": "7.8.3",
|
52
52
|
"@refinedev/ui-types": "^1.16.0",
|
53
53
|
"@tanstack/react-query": "^4.10.1",
|
@@ -28,7 +28,7 @@ import {
|
|
28
28
|
import { drawerButtonStyles } from "./styles";
|
29
29
|
import { RefineThemedLayoutV2SiderProps } from "../types";
|
30
30
|
import { ThemedTitleV2 } from "@components";
|
31
|
-
import {
|
31
|
+
import { useThemedLayoutContext } from "@hooks";
|
32
32
|
|
33
33
|
const { SubMenu } = Menu;
|
34
34
|
const { useToken } = theme;
|
@@ -41,11 +41,11 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
41
41
|
}) => {
|
42
42
|
const { token } = useToken();
|
43
43
|
const {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
} =
|
44
|
+
siderCollapsed,
|
45
|
+
setSiderCollapsed,
|
46
|
+
mobileSiderOpen,
|
47
|
+
setMobileSiderOpen,
|
48
|
+
} = useThemedLayoutContext();
|
49
49
|
|
50
50
|
const isExistAuthentication = useIsExistAuthentication();
|
51
51
|
const routerType = useRouterType();
|
@@ -122,7 +122,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
122
122
|
icon={icon ?? (isRoute && <UnorderedListOutlined />)}
|
123
123
|
>
|
124
124
|
<Link to={route ?? ""}>{label}</Link>
|
125
|
-
{!
|
125
|
+
{!siderCollapsed && isSelected && (
|
126
126
|
<div className="ant-menu-tree-arrow" />
|
127
127
|
)}
|
128
128
|
</Menu.Item>
|
@@ -162,7 +162,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
162
162
|
const dashboard = hasDashboard ? (
|
163
163
|
<Menu.Item key="dashboard" icon={<DashboardOutlined />}>
|
164
164
|
<Link to="/">{translate("dashboard.title", "Dashboard")}</Link>
|
165
|
-
{!
|
165
|
+
{!siderCollapsed && selectedKey === "/" && (
|
166
166
|
<div className="ant-menu-tree-arrow" />
|
167
167
|
)}
|
168
168
|
</Menu.Item>
|
@@ -176,7 +176,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
176
176
|
dashboard,
|
177
177
|
items,
|
178
178
|
logout,
|
179
|
-
collapsed:
|
179
|
+
collapsed: siderCollapsed,
|
180
180
|
});
|
181
181
|
}
|
182
182
|
return (
|
@@ -201,10 +201,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
201
201
|
height: "calc(100% - 72px)",
|
202
202
|
}}
|
203
203
|
onClick={() => {
|
204
|
-
|
205
|
-
if (!breakpoint.lg) {
|
206
|
-
setDrawerSiderVisible?.(true);
|
207
|
-
}
|
204
|
+
setMobileSiderOpen(false);
|
208
205
|
}}
|
209
206
|
>
|
210
207
|
{renderSider()}
|
@@ -216,8 +213,8 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
216
213
|
return (
|
217
214
|
<>
|
218
215
|
<Drawer
|
219
|
-
open={
|
220
|
-
onClose={() =>
|
216
|
+
open={mobileSiderOpen}
|
217
|
+
onClose={() => setMobileSiderOpen(false)}
|
221
218
|
placement="left"
|
222
219
|
closable={false}
|
223
220
|
width={200}
|
@@ -255,7 +252,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
255
252
|
<Button
|
256
253
|
style={drawerButtonStyles}
|
257
254
|
size="large"
|
258
|
-
onClick={() =>
|
255
|
+
onClick={() => setMobileSiderOpen(true)}
|
259
256
|
icon={<BarsOutlined />}
|
260
257
|
></Button>
|
261
258
|
</>
|
@@ -283,7 +280,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
283
280
|
{fixed && (
|
284
281
|
<div
|
285
282
|
style={{
|
286
|
-
width:
|
283
|
+
width: siderCollapsed ? "80px" : "200px",
|
287
284
|
transition: "all 0.2s",
|
288
285
|
}}
|
289
286
|
/>
|
@@ -291,10 +288,10 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
291
288
|
<Layout.Sider
|
292
289
|
style={siderStyles}
|
293
290
|
collapsible
|
294
|
-
collapsed={
|
291
|
+
collapsed={siderCollapsed}
|
295
292
|
onCollapse={(collapsed, type) => {
|
296
293
|
if (type === "clickTrigger") {
|
297
|
-
|
294
|
+
setSiderCollapsed(collapsed);
|
298
295
|
}
|
299
296
|
}}
|
300
297
|
collapsedWidth={80}
|
@@ -309,7 +306,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
309
306
|
backgroundColor: token.colorBgElevated,
|
310
307
|
}}
|
311
308
|
>
|
312
|
-
{
|
309
|
+
{siderCollapsed ? (
|
313
310
|
<RightOutlined
|
314
311
|
style={{
|
315
312
|
color: token.colorPrimary,
|
@@ -327,10 +324,10 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
327
324
|
>
|
328
325
|
<div
|
329
326
|
style={{
|
330
|
-
width:
|
331
|
-
padding:
|
327
|
+
width: siderCollapsed ? "80px" : "200px",
|
328
|
+
padding: siderCollapsed ? "0" : "0 16px",
|
332
329
|
display: "flex",
|
333
|
-
justifyContent:
|
330
|
+
justifyContent: siderCollapsed
|
334
331
|
? "center"
|
335
332
|
: "flex-start",
|
336
333
|
alignItems: "center",
|
@@ -340,7 +337,7 @@ export const ThemedSiderV2: React.FC<RefineThemedLayoutV2SiderProps> = ({
|
|
340
337
|
borderBottom: `1px solid ${token.colorBorder}`,
|
341
338
|
}}
|
342
339
|
>
|
343
|
-
<RenderToTitle collapsed={
|
340
|
+
<RenderToTitle collapsed={siderCollapsed} />
|
344
341
|
</div>
|
345
342
|
{renderMenu()}
|
346
343
|
</Layout.Sider>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
export interface IThemedLayoutContext {
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
siderCollapsed: boolean;
|
3
|
+
setSiderCollapsed: (visible: boolean) => void;
|
4
|
+
mobileSiderOpen: boolean;
|
5
|
+
setMobileSiderOpen: (visible: boolean) => void;
|
6
6
|
}
|
@@ -3,26 +3,28 @@ import React, { ReactNode, useState } from "react";
|
|
3
3
|
import { IThemedLayoutContext } from "./IThemedLayoutContext";
|
4
4
|
|
5
5
|
export const ThemedLayoutContext = React.createContext<IThemedLayoutContext>({
|
6
|
-
|
7
|
-
|
6
|
+
siderCollapsed: false,
|
7
|
+
mobileSiderOpen: false,
|
8
|
+
setSiderCollapsed: () => undefined,
|
9
|
+
setMobileSiderOpen: () => undefined,
|
8
10
|
});
|
9
11
|
|
10
12
|
export const ThemedLayoutContextProvider: React.FC<{
|
11
13
|
children: ReactNode;
|
12
14
|
initialSiderCollapsed?: boolean;
|
13
15
|
}> = ({ children, initialSiderCollapsed }) => {
|
14
|
-
const [
|
15
|
-
const [drawerSiderVisible, setDrawerSiderVisible] = useState(
|
16
|
+
const [siderCollapsed, setSiderCollapsed] = useState(
|
16
17
|
initialSiderCollapsed ?? false,
|
17
18
|
);
|
19
|
+
const [mobileSiderOpen, setMobileSiderOpen] = useState(false);
|
18
20
|
|
19
21
|
return (
|
20
22
|
<ThemedLayoutContext.Provider
|
21
23
|
value={{
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
24
|
+
siderCollapsed,
|
25
|
+
mobileSiderOpen,
|
26
|
+
setSiderCollapsed,
|
27
|
+
setMobileSiderOpen,
|
26
28
|
}}
|
27
29
|
>
|
28
30
|
{children}
|
package/src/hooks/index.ts
CHANGED
@@ -1,22 +1,29 @@
|
|
1
1
|
import { useContext } from "react";
|
2
2
|
|
3
3
|
import { ThemedLayoutContext } from "@contexts";
|
4
|
-
import { IThemedLayoutContext } from "@contexts/themedLayoutContext/IThemedLayoutContext";
|
5
4
|
|
6
|
-
export type UseSiderVisibleType =
|
5
|
+
export type UseSiderVisibleType = {
|
6
|
+
siderVisible: boolean;
|
7
|
+
drawerSiderVisible: boolean;
|
8
|
+
setSiderVisible: (visible: boolean) => void;
|
9
|
+
setDrawerSiderVisible: (visible: boolean) => void;
|
10
|
+
};
|
7
11
|
|
12
|
+
/**
|
13
|
+
* @deprecated Please use `useThemedLayoutContext` instead.
|
14
|
+
*/
|
8
15
|
export const useSiderVisible = (): UseSiderVisibleType => {
|
9
16
|
const {
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
mobileSiderOpen,
|
18
|
+
siderCollapsed,
|
19
|
+
setMobileSiderOpen,
|
20
|
+
setSiderCollapsed,
|
14
21
|
} = useContext(ThemedLayoutContext);
|
15
22
|
|
16
23
|
return {
|
17
|
-
siderVisible,
|
18
|
-
setSiderVisible,
|
19
|
-
drawerSiderVisible,
|
20
|
-
setDrawerSiderVisible,
|
24
|
+
siderVisible: mobileSiderOpen,
|
25
|
+
setSiderVisible: setMobileSiderOpen,
|
26
|
+
drawerSiderVisible: siderCollapsed,
|
27
|
+
setDrawerSiderVisible: setSiderCollapsed,
|
21
28
|
};
|
22
29
|
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { useContext } from "react";
|
2
|
+
|
3
|
+
import { ThemedLayoutContext } from "@contexts";
|
4
|
+
import { IThemedLayoutContext } from "@contexts/themedLayoutContext/IThemedLayoutContext";
|
5
|
+
|
6
|
+
export type UseThemedLayoutContextType = IThemedLayoutContext;
|
7
|
+
|
8
|
+
export const useThemedLayoutContext = (): UseThemedLayoutContextType => {
|
9
|
+
const {
|
10
|
+
mobileSiderOpen,
|
11
|
+
siderCollapsed,
|
12
|
+
setMobileSiderOpen,
|
13
|
+
setSiderCollapsed,
|
14
|
+
} = useContext(ThemedLayoutContext);
|
15
|
+
|
16
|
+
return {
|
17
|
+
mobileSiderOpen,
|
18
|
+
siderCollapsed,
|
19
|
+
setMobileSiderOpen,
|
20
|
+
setSiderCollapsed,
|
21
|
+
};
|
22
|
+
};
|