"use client"; import { useState, useEffect } from "react"; import dynamic from 'next/dynamic'; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Calendar, Search, ChevronDown } from "lucide-react"; interface FormData { patientName?: string; cpf?: string; rg?: string; birthDate?: string; phoneCode?: string; phoneNumber?: string; email?: string; convenio?: string; matricula?: string; validade?: string; documentos?: string; professionalName?: string; unit?: string; appointmentDate?: string; startTime?: string; endTime?: string; requestingProfessional?: string; appointmentType?: string; notes?: string; } interface CalendarRegistrationFormProperties { initialData?: FormData; onSave: (data: FormData) => void; onCancel: () => void; } const formatValidityDate = (value: string) => { const cleaned = value.replaceAll(/\D/g, ""); if (cleaned.length > 4) { return `${cleaned.slice(0, 2)}/${cleaned.slice(2, 4)}/${cleaned.slice(4, 8)}`; } if (cleaned.length > 2) { return `${cleaned.slice(0, 2)}/${cleaned.slice(2, 4)}`; } return cleaned; }; export function CalendarRegistrationForm({ initialData, onSave, onCancel }: CalendarRegistrationFormProperties) { const [formData, setFormData] = useState(initialData || {}); const [isAdditionalInfoOpen, setIsAdditionalInfoOpen] = useState(false); useEffect(() => { setFormData(initialData || {}); }, [initialData]); const handleChange = (event: React.ChangeEvent) => { const { name, value } = event.target; if (name === 'validade') { const formattedValue = formatValidityDate(value); setFormData((previousState) => ({ ...previousState, [name]: formattedValue })); } else { setFormData((previousState) => ({ ...previousState, [name]: value })); } }; const handleSubmit = (event: React.FormEvent) => { event.preventDefault(); onSave(formData); }; return (

Informações do paciente

setIsAdditionalInfoOpen(!isAdditionalInfoOpen)} >

Informações adicionais

{isAdditionalInfoOpen && (