diff --git a/app/src/components/layout/Sidebar.tsx b/app/src/components/layout/Sidebar.tsx index 26d5c0b..7c9ae4b 100644 --- a/app/src/components/layout/Sidebar.tsx +++ b/app/src/components/layout/Sidebar.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { NavLink } from 'react-router-dom'; import { useQuery, useQueryClient } from '@tanstack/react-query'; -import { CalendarDays, Rows3, ChartColumn, GraduationCap, Shapes, SlidersHorizontal, LogIn, ShieldCheck, Cloud } from 'lucide-react'; +import { CalendarDays, Rows3, ChartColumn, GraduationCap, Shapes, SlidersHorizontal, LogIn, LogOut, ShieldCheck, Cloud } from 'lucide-react'; import { serverMe, clearToken, getToken } from '@/lib/api'; import { LoginDialog } from '@/components/auth/LoginDialog'; import { cn } from '@/lib/utils'; @@ -13,25 +13,26 @@ const NAV = [ { to: '/timeline', label: '时间线', icon: CalendarDays }, { to: '/records', label: '记录', icon: Rows3 }, { to: '/grades', label: '成绩', icon: GraduationCap }, - { to: '/dashboard', label: '统计', icon: ChartColumn } - ] + { to: '/dashboard', label: '统计', icon: ChartColumn }, + ], }, { section: '配置', items: [ { to: '/admin', label: '管理', icon: ShieldCheck }, { to: '/types', label: '记录类型', icon: Shapes }, - { to: '/taxonomy', label: '字典与维度', icon: SlidersHorizontal } - ] - } + { to: '/taxonomy', label: '字典与维度', icon: SlidersHorizontal }, + ], + }, ]; function LogoMark() { return ( - - - - + + + + + ); } @@ -42,47 +43,51 @@ export function Sidebar({ open, onClose }: { open: boolean; onClose: () => void queryKey: ['me'], queryFn: () => serverMe(), enabled: !!getToken(), - retry: 0 + retry: 0, }); - const [loginOpen, setLoginOpen] = useState(false); const me = meQ.data ?? null; + const [loginOpen, setLoginOpen] = useState(false); return (
+ setLoginOpen(false)} defaultUrl='https://footpr.linyux.cn' /> + + {/* Logo */} +
-
足迹
-
FOOTPRINTS
+
足迹
+
FOOTPRINTS
- setLoginOpen(false)} defaultUrl={'https://footpr.linyux.cn'} /> -