import { AppShell as MantineAppShell, Box, Button, NavLink, Stack } from '@pikku/mantine/core'
import { Link, Outlet, useRouterState } from '@tanstack/react-router'
import { useState, type FC } from 'react'
import { m } from '@/i18n/messages'
import { useLocale } from '@/i18n/config'
import { signOut } from '@/lib/auth'
import { Wordmark } from './Wordmark'
import { LanguageSelector } from './LanguageSelector'
import { ThemeSelector } from './ThemeSelector'
const HomeGlyph = () =>
const SignOutGlyph = () => (
)
function NavGlyph({ d }: { d: string }) {
return (
)
}
export const AppShell: FC = () => {
useLocale()
const pathname = useRouterState({ select: (s) => s.location.pathname })
const [isSigningOut, setIsSigningOut] = useState(false)
return (
}
active={pathname === '/app'}
/>
}
loading={isSigningOut}
onClick={async () => {
setIsSigningOut(true)
try {
await signOut()
window.location.href = '/login'
} finally {
setIsSigningOut(false)
}
}}
>
{m.app_shell__sign_out()}
{/* Flex column so a full-height page (e.g. a chat) can fill the remaining
viewport with just `flex: 1, minHeight: 0` — no viewport math needed.
Content-sized pages are unaffected. */}
)
}