'use client' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogClose } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { useEffect, useState } from "react"; import { start } from "repl"; import { appointmentsService } from "@/services/appointmentsApi.mjs"; type Availability = { id: string; doctor_id: string; weekday: string; start_time: string; end_time: string; slot_minutes: number; appointment_type: string; active: boolean; created_at: string; updated_at: string; created_by: string; updated_by: string | null; }; interface AvailabilityEditModalProps { isOpen: boolean; availability: Availability | null; onClose: () => void; onSubmit: (formData: any) => void; } export function AvailabilityEditModal({ availability, isOpen, onClose, onSubmit }: AvailabilityEditModalProps) { const [modalidadeConsulta, setModalidadeConsulta] = useState(""); const [form, setForm] = useState({ start_time: "", end_time: "", slot_minutes: "", appointment_type: "", id:availability?.id}); // Mapa de tradução const weekdaysPT: Record = { sunday: "Domingo", monday: "Segunda-Feira", tuesday: "Terça-Feira", wednesday: "Quarta-Feira", thursday: "Quinta-Feira", friday: "Sexta-Feira", saturday: "Sábado", }; const handleInputChange = (field: string, value: string) => { setForm((prev) => ({ ...prev, [field]: value })); }; const handleFormSubmit = () => { onSubmit(form); }; useEffect(() => { if (availability) { setModalidadeConsulta(availability.appointment_type); setForm({ start_time: availability.start_time, end_time: availability.end_time, slot_minutes: availability.slot_minutes.toString(), appointment_type: availability.appointment_type, id: availability.id }); } }, [availability]) if (!availability) { return null; } return ( Edite a disponibilidade Altere a disponibilidade atual.
{ e.preventDefault(); handleFormSubmit(); }}>

{weekdaysPT[availability.weekday]}

handleInputChange("start_time", e.target.value)}/>
handleInputChange("end_time", e.target.value)}/>
handleInputChange("slot_minutes", e.target.value)} name="duracaoConsulta" required className="mt-1" />
); }