diff --git a/webui/src/components/NavItem.tsx b/webui/src/components/NavItem.tsx index 071d589..0d58f0d 100644 --- a/webui/src/components/NavItem.tsx +++ b/webui/src/components/NavItem.tsx @@ -10,10 +10,10 @@ interface NavItemProps { const NavItem: React.FC = ({ icon, label, to }) => ( `w-full flex items-center gap-3 px-4 py-3 rounded-xl text-sm font-medium transition-all duration-200 ${ - isActive - ? 'bg-indigo-500/10 text-indigo-400' - : 'text-zinc-400 hover:bg-zinc-800/50 hover:text-zinc-200' + className={({ isActive }) => `w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-all duration-200 ${ + isActive + ? 'bg-indigo-500/15 text-indigo-300 border border-indigo-500/30' + : 'text-zinc-400 hover:bg-zinc-800/60 hover:text-zinc-200 border border-transparent' }`} > {icon} diff --git a/webui/src/components/Sidebar.tsx b/webui/src/components/Sidebar.tsx index d87003a..8999300 100644 --- a/webui/src/components/Sidebar.tsx +++ b/webui/src/components/Sidebar.tsx @@ -8,29 +8,55 @@ const Sidebar: React.FC = () => { const { t } = useTranslation(); const { token, setToken, sidebarOpen } = useAppContext(); + const sections = [ + { + title: t('sidebarCore'), + items: [ + { icon: , label: t('dashboard'), to: '/' }, + { icon: , label: t('chat'), to: '/chat' }, + { icon: , label: t('logs'), to: '/logs' }, + { icon: , label: t('skills'), to: '/skills' }, + ], + }, + { + title: t('sidebarSystem'), + items: [ + { icon: , label: t('config'), to: '/config' }, + { icon: , label: t('cronJobs'), to: '/cron' }, + { icon: , label: t('nodes'), to: '/nodes' }, + { icon: , label: t('memory'), to: '/memory' }, + ], + }, + { + title: t('sidebarOps'), + items: [ + { icon: , label: t('taskAudit'), to: '/task-audit' }, + { icon: , label: t('tasks'), to: '/tasks' }, + ], + }, + ]; + return ( -