import { useLayoutEffect } from 'react' import { Outlet, NavLink, useNavigate, useLocation } from 'react-router' import { useLogout } from '@/hooks/useAuth' import { useAuthStore } from '@/store/authStore' import { queryClient } from '@/lib/queryClient' const nav = [ { to: '/app', label: 'Dashboard', end: true }, { to: '/app/work-orders', label: 'Ordens de Trabalho' }, { to: '/app/clients', label: 'Clientes' }, { to: '/app/catalog', label: 'Catálogo' }, { to: '/app/staff', label: 'Técnicos' }, { to: '/app/expenses', label: 'Despesas' }, { to: '/app/invoices', label: 'Faturação' }, { to: '/app/settings', label: 'Definições' }, ] export default function AppLayout() { const { mutate: logout } = useLogout() const { previousSession, restoreSession, user, impersonateTenant } = useAuthStore() const navigate = useNavigate() const location = useLocation() useLayoutEffect(() => { const imp = location.state?.impersonation if (imp) { impersonateTenant(imp.token, imp.user) queryClient.clear() // Remove impersonation payload from history state so back/forward doesn't re-apply it navigate(location.pathname, { replace: true, state: {} }) } }, []) // eslint-disable-line react-hooks/exhaustive-deps function handleRestore() { restoreSession() navigate('/admin') } return (