import { NavLink } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { useAuthStore } from '../../stores/authStore'; import { check as healthCheck } from '../../api/health'; import { getRunningJobs } from '../../api/jobs'; import TickerSearch from './TickerSearch'; const navItems = [ { to: '/', label: 'Overview', index: '01', end: true }, { to: '/market', label: 'Market', index: '02', end: false }, { to: '/signals', label: 'Signals', index: '03', end: false }, { to: '/regime', label: 'Regime', index: '04', end: false }, ]; const linkClasses = (isActive: boolean) => `flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-all duration-200 ${ isActive ? 'bg-blue-400/[0.08] text-blue-300 border border-blue-400/20' : 'text-gray-400 hover:bg-white/[0.04] hover:text-gray-200 border border-transparent' }`; export default function Sidebar() { const { role, username, logout } = useAuthStore(); const health = useQuery({ queryKey: ['health'], queryFn: healthCheck, refetchInterval: 30_000, retry: 1, }); const isBackendUp = health.isSuccess; const jobs = useQuery({ queryKey: ['jobs', 'running'], queryFn: getRunningJobs, refetchInterval: 10_000, retry: 1, enabled: isBackendUp, }); const running = jobs.data?.running ?? []; return ( ); }