import React, { useMemo } from 'react'; import type { Location } from 'fhir/r4'; import { DoorOpen } from 'lucide-react'; import { Dialog, DialogContent, DialogHeader, DialogTitle } from '../../../components/ui/dialog'; import { useFhirLocations } from '../../../hooks/useFhirLocations'; import { onlyRooms, onlySites, getRoomSiteId } from '../../../utils/roomLocation'; import { EmptyState } from '../../../components/ui/empty-state'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; patientName: string; onPick: (room: { id: string; name?: string }) => void; } // The rooms of this practice, each with its site, for rooming one patient. export const RoomPickerDialog: React.FC = ({ open, onOpenChange, patientName, onPick }) => { const { locationsList } = useFhirLocations(); const rooms = useMemo(() => onlyRooms(locationsList), [locationsList]); const sites = useMemo(() => onlySites(locationsList), [locationsList]); const siteName = (room: Location): string | undefined => { const siteId = getRoomSiteId(room); return siteId ? sites.find((s) => s.id === siteId)?.name : undefined; }; return ( Room {patientName} {rooms.length === 0 ? ( ) : (
{rooms.map((room) => ( ))}
)}
); }; export default RoomPickerDialog;