import React, { useState, useEffect } from 'react'; import { Link, Outlet, useLocation } from '@tanstack/react-router'; import { cn } from '@/lib/utils'; import { StatusBar } from '@/components/StatusBar'; import { LayoutDashboard, Settings, Network, Rocket, ChevronLeft, ChevronRight, } from 'lucide-react'; import { useTranslation } from 'react-i18next'; import { Button } from '@/components/ui/button'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'; export const MainLayout: React.FC = () => { const location = useLocation(); const { t } = useTranslation(); // Initialize state from localStorage if available, default to false (expanded) const [isCollapsed, setIsCollapsed] = useState(() => { const saved = localStorage.getItem('sidebar-collapsed'); return saved ? JSON.parse(saved) : false; }); // Persist state changes useEffect(() => { localStorage.setItem('sidebar-collapsed', JSON.stringify(isCollapsed)); }, [isCollapsed]); const navItems = [ { to: '/', icon: LayoutDashboard, label: t('nav.accounts'), }, { to: '/proxy', icon: Network, label: t('nav.proxy', 'API Proxy'), }, { to: '/settings', icon: Settings, label: t('nav.settings'), }, ]; return (