fix(frontend): 侧边栏滚动失效与 Jenkins 图标本地化
- ScrollArea 增加 min-h-0,修复 flex 子项不收缩导致导航超屏无法滚动 - Jenkins 品牌图标替换 simple-icons 单色红为仓库本地官方多色 SVG
This commit is contained in:
1 parent
e0cc547c8b
commit
5cd7ea4a39
3 files changed
+24
-5
No files matched your search
@@ -4,7 +4,6 @@ import {
|
||||
siDocker,
|
||||
siElasticsearch,
|
||||
siGrafana,
|
||||
siJenkins,
|
||||
siKubernetes,
|
||||
siPrometheus,
|
||||
} from 'simple-icons';
|
||||
@@ -13,12 +12,17 @@ const ICONS = {
|
||||
docker: siDocker,
|
||||
elasticsearch: siElasticsearch,
|
||||
grafana: siGrafana,
|
||||
jenkins: siJenkins,
|
||||
kubernetes: siKubernetes,
|
||||
prometheus: siPrometheus,
|
||||
} satisfies Record<string, SimpleIcon>;
|
||||
|
||||
export type TechnologyBrand = keyof typeof ICONS;
|
||||
// Jenkins 使用仓库本地官方多色 SVG(public/icons/jenkins.svg),
|
||||
// 替换 simple-icons 的单色红色版本。 // Logan.Li
|
||||
const LOCAL_SVG: Partial<Record<keyof typeof ICONS | 'jenkins', string>> = {
|
||||
jenkins: '/icons/jenkins.svg',
|
||||
};
|
||||
|
||||
export type TechnologyBrand = keyof typeof ICONS | 'jenkins';
|
||||
|
||||
interface TechnologyBrandIconProps {
|
||||
brand: TechnologyBrand;
|
||||
@@ -31,7 +35,20 @@ export function TechnologyBrandIcon({
|
||||
className = 'h-5 w-5',
|
||||
title,
|
||||
}: TechnologyBrandIconProps) {
|
||||
const icon = ICONS[brand];
|
||||
const localSrc = LOCAL_SVG[brand];
|
||||
if (localSrc) {
|
||||
return (
|
||||
<img
|
||||
src={localSrc}
|
||||
alt={title || 'Jenkins'}
|
||||
aria-label={title}
|
||||
role="img"
|
||||
className={className}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
const icon: SimpleIcon = ICONS[brand as keyof typeof ICONS];
|
||||
const label = title || icon.title;
|
||||
|
||||
return (
|
||||
|
||||
@@ -415,7 +415,8 @@ export function Sidebar({ mobileOpen, onMobileClose }: SidebarProps) {
|
||||
</div>
|
||||
|
||||
{/* Menu Items */}
|
||||
<ScrollArea className="flex-1 py-2 px-1.5">
|
||||
{/* min-h-0 允许 flex 子项收缩,否则导航超出高度时 ScrollArea 不会出现滚动 // Logan.Li */}
|
||||
<ScrollArea className="flex-1 min-h-0 py-2 px-1.5">
|
||||
<nav className="space-y-0.5">
|
||||
{visibleMenuItems.map((item) => (
|
||||
<MenuItemComponent
|
||||
|
||||
Reference in new issue
Block a user