From b444c356437e32d9079f19d2e2f3f97f865e36e0 Mon Sep 17 00:00:00 2001 From: jialin Date: Tue, 2 Jun 2026 11:28:27 +0800 Subject: [PATCH] style: side menu scroll bar --- src/global.less | 7 +-- src/layouts/index.tsx | 9 +--- src/layouts/sider-menu.tsx | 92 ++++++++++++++++++++++---------------- 3 files changed, 57 insertions(+), 51 deletions(-) diff --git a/src/global.less b/src/global.less index 9d5306cf..b6bcd9a0 100644 --- a/src/global.less +++ b/src/global.less @@ -284,10 +284,6 @@ body { } } } - - .ant-pro-sider .ant-layout-sider-children { - // border-right: 1px solid var(--ant-color-split); - } } .ant-table-content table { @@ -347,7 +343,6 @@ body { .ant-pro-layout-container { overflow-x: auto; min-height: 100vh; - // background-color: var(--ant-color-bg-container); } .ant-pro-sider { @@ -812,6 +807,8 @@ body { } .ant-pro-sider-logo + div { + display: flex; + overflow: hidden; &::-webkit-scrollbar { width: 0; } diff --git a/src/layouts/index.tsx b/src/layouts/index.tsx index 782ecd73..ea5e99ea 100644 --- a/src/layouts/index.tsx +++ b/src/layouts/index.tsx @@ -21,11 +21,7 @@ import { import { useAccessMarkedRoutes } from '@@/plugin-access'; import { useModel } from '@@/plugin-model'; import { ProLayout } from '@ant-design/pro-components'; -import { - CoreUIProvider, - IconFont, - useOverlayScroller -} from '@gpustack/core-ui'; +import { CoreUIProvider, IconFont } from '@gpustack/core-ui'; import { Access, Outlet, @@ -135,9 +131,6 @@ const mapRoutes = (routes: IRoute[], role: string) => { }; export default (props: any) => { - const { initialize: initialize } = useOverlayScroller({ - defer: false - }); const [, contextHolder] = Modal.useModal(); const { themeData, setUserSettings, userSettings } = useUserSettings(); const [userInfo] = useAtom(userAtom); diff --git a/src/layouts/sider-menu.tsx b/src/layouts/sider-menu.tsx index f1a91d2c..5293b038 100644 --- a/src/layouts/sider-menu.tsx +++ b/src/layouts/sider-menu.tsx @@ -1,5 +1,5 @@ import { CaretDownOutlined } from '@ant-design/icons'; -import { IconFont } from '@gpustack/core-ui'; +import { IconFont, OverlayScroller } from '@gpustack/core-ui'; import { Link, useLocation } from '@umijs/max'; import { Tooltip } from 'antd'; import { createStyles, type FullToken } from 'antd-style'; @@ -29,12 +29,17 @@ const useStyles = createStyles( return { siderMenu: css` + width: 100%; &.sider-menu-collapsed { .menu-item { justify-content: center; padding: 0; } } + .os-scrollbar-vertical .os-scrollbar-handle { + min-width: 4px; + max-width: 4px; + } `, groupTitle: css` display: flex; @@ -222,44 +227,55 @@ const SiderMenu: React.FC = (props) => { 'sider-menu-collapsed': collapsed })} > - {menuData.map((item: MenuItem, index: number) => ( -
- {item.children && item.children.length > 0 ? ( - <> -
handleToggleGroup(e, item)} - > - {!collapsed ? ( - - {item.name} - - - ) : ( - - )} -
-
- {item.children?.map((child: MenuItem) => - menuItemRender(child, child.key) - )} -
- - ) : ( - menuItemRender(item, item.key) - )} + +
+ {menuData.map((item: MenuItem, index: number) => ( +
+ {item.children && item.children.length > 0 ? ( + <> +
handleToggleGroup(e, item)} + > + {!collapsed ? ( + + {item.name} + + + ) : ( + + )} +
+
+ {item.children?.map((child: MenuItem) => + menuItemRender(child, child.key) + )} +
+ + ) : ( + menuItemRender(item, item.key) + )} +
+ ))}
- ))} +
); };