'use client'; import { Search } from 'lucide-react'; import { Button } from '@/components/ui/common/Button'; import { Input } from '@/components/ui/common/Input'; import type { Patient } from '@/types/patient'; interface AppointmentsPatientSearchProps { search: string; onSearchChange: (value: string) => void; patients: Patient[]; selectedPatientId?: string; onSelectPatient: (patient: Patient) => void; loading?: boolean; canAddPatient: boolean; onAddPatient: () => void; } export function AppointmentsPatientSearch({ search, onSearchChange, patients, selectedPatientId, onSelectPatient, loading = false, canAddPatient, onAddPatient, }: AppointmentsPatientSearchProps) { const trimmed = search.trim(); const showAddForEmptyResults = trimmed.length > 0 && !loading && patients.length === 0; return (
onSearchChange(e.target.value)} icon={} />
{showAddForEmptyResults && ( )}
{loading &&

Searching…

} {!loading && trimmed.length === 0 && (

Type to search patients by name, phone, or email.

)} {patients.map((patient) => { const isSelected = selectedPatientId === patient.id; return ( ); })}
); }