import type { PropsWithChildren } from 'react'; import { LoaderSuspense, Navbar } from '@/components'; import { GameBackground } from '@/components/GameBackground'; import useAppShellStore from '@/stores/appShellStore'; import { AnimatedOutlet } from '@onelauncher/common/components'; import { createFileRoute, useRouter } from '@tanstack/react-router'; import { AnimatePresence } from 'motion/react'; import { useEffect } from 'react'; export const Route = createFileRoute('/app')({ component: RouteComponent, }); function RouteComponent() { return (
); } function AppShell({ children, }: PropsWithChildren) { const router = useRouter(); const setPrevLocation = useAppShellStore(state => state.setPrevLocation); useEffect(() => { const unsub = router.subscribe('onBeforeNavigate', (e) => { setPrevLocation(e.fromLocation ?? null); }); return () => unsub(); }, [router, setPrevLocation]); return (
{children}
); } function BackgroundGradient() { const background = useAppShellStore(state => state.background); if (background === 'none') return undefined; return (
{/* Linear black gradient: left -> right */}
{/* Radial black gradient */}
{/* Linear black gradient: bottom -> 200 px up */}
); }