import { useMemo, useState } from 'react' import { Outlet, NavLink } from 'react-router' import { useQuery } from '@tanstack/react-query' import { useLogout } from '@/hooks/useAuth' import { useTheme } from '@/hooks/useTheme' import { apiFetch } from '@/lib/api' import type { PlatformSettings } from '@/lib/types' export default function AdminLayout() { const { mutate: logout } = useLogout() const { theme, toggleTheme } = useTheme('ui_theme', 'dark') const [logoBroken, setLogoBroken] = useState(false) const { data: settings } = useQuery({ queryKey: ['admin', 'settings'], queryFn: () => apiFetch('/admin/settings'), }) const primary = settings?.admin_primary_color || '#2563eb' const accent = settings?.admin_accent_color || '#0ea5e9' const isLight = theme === 'light' const shellStyle = useMemo( () => ({ backgroundColor: 'var(--ui-bg)', color: 'var(--ui-text)', ['--brand-primary' as string]: primary, ['--brand-accent' as string]: accent, }), [primary, accent] ) const asideStyle = useMemo( () => ({ backgroundColor: 'var(--ui-sidebar)', borderColor: 'var(--ui-border)', }), [] ) const mainStyle = useMemo( () => ({ background: isLight ? 'linear-gradient(180deg, #f8fbff 0%, #eef4fb 100%)' : 'linear-gradient(180deg, #0b1530 0%, #050b18 100%)', }), [isLight] ) return (
) }