Repository Public
1'use client';2import { useEffect } from 'react';3import { useRouter } from 'next/navigation';4import { useAuthStatus } from '@/lib/queries';5import { Spinner } from '@/components/ui/misc';6import { Button } from '@/components/ui/button';78/** `/` only redirects (client-side): setup → login → terminal. */9export default function RootPage() {10 const auth = useAuthStatus();11 const router = useRouter();12 useEffect(() => {13 if (!auth.data) return;14 const phone = window.matchMedia('(max-width: 767px)').matches;15 router.replace(auth.data.setupRequired ? '/setup/' : auth.data.authenticated ? (phone ? '/home/' : '/terminal/') : '/login/');16 }, [auth.data, router]);17 return (18 <div className="app-viewport flex flex-col items-center justify-center gap-3 text-center">19 {auth.isError ? (20 <>21 <p className="text-sm font-medium">The server is not reachable</p>22 <p className="text-xs text-text-2">Remote sessions keep running on the server.</p>23 <Button onClick={() => auth.refetch()}>Retry</Button>24 </>25 ) : (26 <Spinner />27 )}28 </div>29 );30}31