"use client"; import { useState, useEffect } from "react"; import { X } from "lucide-react"; interface Appointment { id?: string; patient: string; time: string; duration: number; type: "consulta" | "exame" | "retorno"; status: "confirmed" | "pending" | "absent"; professional: string; notes?: string; } interface Professional { id: string; name: string; specialty: string; } interface AppointmentModalProperties { isOpen: boolean; onClose: () => void; onSave: (appointment: Appointment) => void; professionals: Professional[]; appointment?: Appointment | null; } export default function AppointmentModal({ isOpen, onClose, onSave, professionals, appointment, }: AppointmentModalProperties) { const [formData, setFormData] = useState({ patient: "", time: "", duration: 30, type: "consulta", status: "pending", professional: "", notes: "", }); useEffect(() => { if (appointment) { setFormData(appointment); } else { setFormData({ patient: "", time: "", duration: 30, type: "consulta", status: "pending", professional: professionals[0]?.id || "", notes: "", }); } }, [appointment, professionals]); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onSave(formData); onClose(); }; const handleChange = ( e: React.ChangeEvent< HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement >, ) => { const { name, value } = e.target; setFormData((previous) => ({ ...previous, [name]: value, })); }; if (!isOpen) return null; return (

{appointment ? "Editar Agendamento" : "Novo Agendamento"}