'use client' import { useState, useEffect } from 'react' import { AlertTriangle, Phone, X, Heart, User, Droplet, AlertCircle, MapPin } from 'lucide-react' import { useApp } from '../provider' interface EmergencyWidgetProps { workspaceId: string } export function EmergencyWidget({ workspaceId }: EmergencyWidgetProps) { const [isOpen, setIsOpen] = useState(false) const [emergencyInfo, setEmergencyInfo] = useState(null) const { currentWorkspace } = useApp() useEffect(() => { const fetchInfo = async () => { try { const response = await fetch(`/api/workspaces/${workspaceId}/emergency-info`) if (response.ok) { const data = await response.json() setEmergencyInfo(data.info) } } catch (err) { console.error('Failed to fetch emergency info:', err) } } fetchInfo() }, [workspaceId]) if (!emergencyInfo) return null const hasAnyInfo = emergencyInfo.patientName || emergencyInfo.bloodType || emergencyInfo.allergies || emergencyInfo.medicalConditions || emergencyInfo.clinicPhone || emergencyInfo.emergencyPhone if (!hasAnyInfo) return null return ( <> {/* Floating Emergency Button */} {/* Emergency Modal */} {isOpen && (
{/* Header */}

Emergency Info

{/* Quick Call Buttons */}
{emergencyInfo.emergencyPhone && (

Emergency

{emergencyInfo.emergencyPhone}

)} {emergencyInfo.clinicPhone && (

Clinic

{emergencyInfo.clinicPhone}

)} {emergencyInfo.physicianPhone && (

Primary Physician

{emergencyInfo.physicianPhone}

{emergencyInfo.primaryPhysician && (

Dr. {emergencyInfo.primaryPhysician}

)}
)}
{/* Medical ID Card */}

Medical ID

{emergencyInfo.patientName && (
Name: {emergencyInfo.patientName}
)} {emergencyInfo.bloodType && (
Blood Type: {emergencyInfo.bloodType}
)} {emergencyInfo.allergies && (
Allergies:

{emergencyInfo.allergies}

)} {emergencyInfo.medicalConditions && (
Conditions:

{emergencyInfo.medicalConditions}

)}
{/* Current Medications */} {emergencyInfo.medications?.length > 0 && (

Current Medications

    {emergencyInfo.medications.map((med: any) => (
  • • {med.name} {med.instructions && `(${med.instructions})`}
  • ))}
)} {/* Edit Button */} {currentWorkspace.role !== 'VIEWER' && ( Edit Emergency Information )} {/* Disclaimer */}

This information is for emergency use only. Always call 000 (AU) or your local emergency number in a life-threatening emergency.

)} ) }