import Link from 'next/link'; import { Wrench } from 'lucide-react'; import { getTranslations } from 'next-intl/server'; import { resolveUser } from '@/lib/auth'; import { api } from '@/lib/trpc/server'; import { SignOutButton } from './sign-out-button'; import { StatusBadge } from './status-badge'; import { SyncChip } from './sync-chip'; import { LanguageSwitcher } from './language-switcher'; export default async function HomePage() { const t = await getTranslations('home'); const user = await resolveUser(); type RecentItem = Awaited>[number]; let recent: RecentItem[] = []; try { recent = await api.maintenanceRequest.myRecent({ limit: 5 }); } catch { // No session or other error — show empty list without crashing. } return (
{/* ── Header ── */}

{t('operator')}

{user?.email ?? '—'}

{/* ── Sync status ── */} {/* ── Primary CTA ── */} {t('requestMaintenance')} {/* ── Recent requests ── */}

{t('myRequests')}

{recent.length === 0 ? (

{t('noRequests')}

) : (
    {recent.map((req) => (
  • {req.workstation.code} — {req.workstation.name}

    {req.description}

  • ))}
)}
); }