export const dynamic = 'force-dynamic' import { redirect } from 'next/navigation' import { createClient } from '@/lib/supabase/server' import { ReportForm } from '@/components/incidents/report-form' import { LanguageSwitcher } from '@/components/language-switcher' import { OfflineSync } from '@/components/incidents/offline-sync' interface Props { searchParams: Promise<{ zone?: string }> } export default async function ReportPage({ searchParams }: Props) { const { zone } = await searchParams const supabase = await createClient() const { data, error: authError } = await supabase.auth.getUser() if (authError || !data?.user) redirect(`/login?redirect=/report${zone ? `?zone=${zone}` : ''}`) let zoneName: string | null = null let siteName: string | null = null if (zone) { const { data: zd } = await supabase .from('zones') .select('id, name, site_id, sites (name)') .eq('qr_code_token', zone) .single() if (zd) { zoneName = (zd as { name: string }).name ?? null siteName = (zd.sites as unknown as { name: string } | null)?.name ?? null } } return (

{/* will be translated via ReportForm */}Report an Incident

{zoneName ? (

{siteName ?? 'Unknown Site'} — {zoneName}

) : (

No zone detected — zone will not be recorded

)}
) }