import { Link, useNavigate, useRouter } from '@tanstack/react-router' import { LogOut, UserCog } from 'lucide-react' import { useState, type ReactNode } from 'react' import { Button } from '#/components/ui/button.tsx' import type { Session } from '#/lib/auth.ts' import { authClient } from '#/lib/auth-client.ts' type AppShellProps = { session: Session nav?: ReactNode children: ReactNode } export function AppShell({ session, nav, children }: AppShellProps) { const router = useRouter() const navigate = useNavigate() const [stopping, setStopping] = useState(false) const impersonating = Boolean(session.session.impersonatedBy) async function signOut() { await authClient.signOut() await router.invalidate() await navigate({ to: '/login' }) } async function stopImpersonation() { setStopping(true) await authClient.admin.stopImpersonating() await router.invalidate() setStopping(false) await navigate({ to: '/admin' }) } return (
webkulisse
{nav ? : null}