export const dynamic = 'force-dynamic' import { notFound } from 'next/navigation' import { createClient } from '@/lib/supabase/server' import { IncidentDetail, type Incident } from '@/components/incidents/incident-detail' import { IncidentHeader } from '@/components/incidents/incident-header' import { SimilarIncidentsPanel } from '@/components/incidents/similar-incidents-panel' import { ClosurePanel } from '@/components/incidents/closure-panel' import { InvestigationPanel } from '@/components/incidents/investigation-panel' interface Props { params: Promise<{ id: string }> } export default async function HseIncidentDetailPage({ params }: Props) { const { id } = await params const supabase = await createClient() const { data: incident, error } = await supabase .from('incidents') .select(` id, reference_no, incident_type, description, severity, status, injury_involved, asset_involved, medical_status, lost_days, type_details, is_fatality, is_serious_bodily_injury, is_dangerous_occurrence, is_occupational_disease, reported_at, closed_at, sites (id, name), zones (id, name), reporter:users!reported_by (id, name, email), evidence_files (id, stage, file_url, file_type, uploaded_at) `) .eq('id', id) .eq('evidence_files.deleted', false) .single() if (error || !incident) notFound() const status = (incident as { status: string }).status const { data: investigation } = await supabase .from('investigations') .select(` id, method, five_why_steps, fishbone_categories, findings_text, root_cause_summary, alcohol_test_result, witness_statement_refs, completed_at, investigator:users!investigator_id (name, email) `) .eq('incident_id', id) .maybeSingle() const needsJkkp = Boolean( (incident as { is_fatality?: boolean }).is_fatality || (incident as { is_serious_bodily_injury?: boolean }).is_serious_bodily_injury || (incident as { is_dangerous_occurrence?: boolean }).is_dangerous_occurrence || ((incident as { lost_days?: number | null }).lost_days ?? 0) >= 4 ) return ( <>
{investigation && ( )} {needsJkkp && (
Download JKKP 6 (PDF) Download JKKP 7 (PDF)
)}
) }