export const dynamic = 'force-dynamic' import { notFound, redirect } from 'next/navigation' import Link from 'next/link' import { createClient } from '@/lib/supabase/server' import { getSession } from '@/lib/auth/get-session' import { InvestigationForm } from '@/components/incidents/investigation-form' interface Props { params: Promise<{ id: string }> } export default async function InvestigationPage({ params }: Props) { const { id } = await params const session = await getSession() if (!session) redirect(`/login?redirect=/hse/incidents/${id}/investigation`) if (!['hse', 'admin'].includes(session.role)) redirect('/hse/incidents') const supabase = await createClient() const { data: incident } = await supabase .from('incidents') .select('id, reference_no, status') .eq('id', id) .single() if (!incident) notFound() if (!['triaged', 'investigating'].includes((incident as { status: string }).status)) redirect(`/hse/incidents/${id}`) const { data: existing } = await supabase .from('investigations') .select('id') .eq('incident_id', id) .order('created_at', { ascending: false }) .limit(1) .maybeSingle() return (
← Back to incident

Investigation Workspace

{(incident as { reference_no: string | null }).reference_no ?? id}

) }