fix
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import React, { useMemo } from 'react';
|
||||
import { Layout, Menu } from 'antd';
|
||||
import { useNavigate, useLocation } from 'react-router-dom';
|
||||
import { useTheme } from '@/contexts/ThemeContext';
|
||||
import { getMenuItems } from '@/utils/menuUtils';
|
||||
import { Logo } from '@/components/Layout/Logo';
|
||||
import React, { useMemo } from "react";
|
||||
import { Layout, Menu } from "antd";
|
||||
import { useNavigate, useLocation } from "react-router-dom";
|
||||
import { useTheme } from "@/contexts/ThemeContext";
|
||||
import { getMenuItems } from "@/utils/menuUtils";
|
||||
import { Logo } from "@/components/Layout/Logo";
|
||||
import { useAuth } from "@/contexts/AuthContext";
|
||||
|
||||
const { Sider } = Layout;
|
||||
|
||||
@@ -11,13 +12,18 @@ const Sidebar = ({ collapsed }) => {
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
const { isDarkMode } = useTheme();
|
||||
const { user } = useAuth();
|
||||
|
||||
const menuItems = useMemo(() => getMenuItems(), []);
|
||||
const menuItems = useMemo(() => {
|
||||
if (!user?.id) return [];
|
||||
const { adminRole: role } = user;
|
||||
return getMenuItems(role);
|
||||
}, [user]);
|
||||
|
||||
const defaultOpenKeys = useMemo(() => {
|
||||
const pathSegments = location.pathname.split('/').filter(Boolean);
|
||||
const pathSegments = location.pathname.split("/").filter(Boolean);
|
||||
return pathSegments.reduce((acc, _, index) => {
|
||||
const path = `/${pathSegments.slice(0, index + 1).join('/')}`;
|
||||
const path = `/${pathSegments.slice(0, index + 1).join("/")}`;
|
||||
acc.push(path);
|
||||
return acc;
|
||||
}, []);
|
||||
@@ -29,18 +35,18 @@ const Sidebar = ({ collapsed }) => {
|
||||
};
|
||||
|
||||
return (
|
||||
<Sider
|
||||
trigger={null}
|
||||
collapsible
|
||||
<Sider
|
||||
trigger={null}
|
||||
collapsible
|
||||
collapsed={collapsed}
|
||||
theme={isDarkMode ? 'dark' : 'light'}
|
||||
theme={isDarkMode ? "dark" : "light"}
|
||||
width={256}
|
||||
collapsedWidth={80} // 添加这个属性
|
||||
className={`app-sidebar ${collapsed ? 'collapsed' : ''}`} // 添加collapsed类名
|
||||
className={`app-sidebar ${collapsed ? "collapsed" : ""}`} // 添加collapsed类名
|
||||
>
|
||||
<Logo collapsed={collapsed} isDarkMode={isDarkMode} />
|
||||
<Menu
|
||||
theme={isDarkMode ? 'dark' : 'light'}
|
||||
theme={isDarkMode ? "dark" : "light"}
|
||||
mode="inline"
|
||||
selectedKeys={[location.pathname]}
|
||||
defaultOpenKeys={defaultOpenKeys}
|
||||
@@ -51,4 +57,4 @@ const Sidebar = ({ collapsed }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default React.memo(Sidebar);
|
||||
export default React.memo(Sidebar);
|
||||
|
||||
Reference in New Issue
Block a user