"use client"; import { useEffect, useState } from "react"; import moment from "moment-jalaali"; import Hours from "./hours"; import Tabs from "../../Tabs"; import { request } from "@/services/response"; import SendAppo from "./SendAppo"; import { adaptSlots, hasAvailable } from "@/lib/appointmentSlots"; function DateTime({ date, doctor, setStep, setSelectedSlot, setSelectedDate }) { const [value, setValue] = useState(0); const [hour, setHour] = useState(); const [appo, setAppo] = useState("تاریخ مورد نظرتان را انتخاب کنید."); const sessions = Array.isArray(appo) ? appo : []; const listTab = sessions.map((s) => s.label); const currentSlots = sessions[value]?.slots ?? []; const handleChange = (event, newValue) => { setHour(); setValue(newValue); }; const locationAddress = hour?.location_id ? doctor?.address?.find((a) => String(a.id) === String(hour.location_id))?.address ?? null : null; useEffect(() => { if (date && doctor?.uuid) { setAppo("loading"); setHour(); const dateStr = moment.unix(date).format("YYYY-MM-DD"); request .getAppointmentSlots(doctor.uuid, dateStr) .then((res) => { const parsed = adaptSlots(res); if (!parsed.length) { setAppo("در حال حاضر، نوبتی برای این روز موجود نمی‌باشد."); setValue(0); return; } setAppo(parsed); const firstAvailable = parsed.findIndex((s) => hasAvailable(s.slots)); setValue(firstAvailable >= 0 ? firstAvailable : 0); }) .catch(() => { setAppo("در حال حاضر، نوبتی برای این روز موجود نمی‌باشد."); setValue(0); }); } }, [date, doctor?.uuid]); return (
{sessions.length > 1 && ( )}
); } export default DateTime;