import Date from "./date"; import ServiceSelect from "./service"; import ResourceSelect from "./resource"; import LocationSelect from "./location/LocationSelect"; // Components import Content from "./Content"; import Layout from "@/components/layout"; import Paying from "@/components/appointment/paying"; import Detail from "@/components/appointment/detail"; import FailedPay from "@/components/appointment/failedPay"; import SuccessPay from "@/components/appointment/successPay"; import LogInPage from "@/components/register/LogInPage"; import VerificationPage from "@/components/register/verificationPage"; import LayoutRegister from "@/components/register/LayoutRegister"; function Container({ step, data, doctor, setData, setStep, prevData, matchedCity, isForAnother, setIsForAnother, disabledDates, // Login states num, setNum, uuid, setUuid, isSendMsg, setIsSendMsg, // Appointment slot states selectedSlot, setSelectedSlot, selectedDate, setSelectedDate, appointmentId, setAppointmentId, appointmentExpiresAt, setAppointmentExpiresAt, // Service-based booking bookingMode, bookingServices, selectedServiceUuids, setSelectedServiceUuids, // Booking location (مطب شخصی / کلینیک) bookingLocations, selectedLocation, locationConfirmed, changeLocation, reopenLocationChoice, onDateChange, selectedClosedOnDate, // نوبت‌دهی منبع‌محور (دستگاه / اتاق / یونیت) resources = [], selectedResource = null, resourceStepNeeded = false, changeResource, reopenResourceChoice, }) { const serviceMode = bookingMode === "service"; const multiLocation = bookingLocations.length > 1; const resourceUuid = selectedResource?.uuid ?? null; // محیطِ رزرو از خودِ منبع خوانده می‌شود وقتی منبعی انتخاب شده: پزشکِ بدون برنامهٔ // هفتگی هیچ محلی ندارد که `clinic_uuid` از آن بیاید، ولی دستگاهش محیطش را می‌داند. const clinicUuid = selectedResource ? selectedResource.clinic_uuid ?? null : selectedLocation?.clinic_uuid ?? null; // «محل ندارد» دیگر به معنی «نوبت‌دهی ندارد» نیست: منبع تقویم خودش را دارد، پس پزشکی // که برنامهٔ هفتگی ندارد ولی دستگاهش قابل رزرو است باید به مرحلهٔ منبع برسد. const noBookingAtAll = bookingLocations.length === 0 && resources.length === 0; let dateStep; if (noBookingAtAll) { dateStep = (

نوبت‌دهی آنلاین برای این پزشک فعال نیست.

); } else if (multiLocation && !locationConfirmed) { dateStep = ( ); } else if (resourceStepNeeded) { dateStep = ( 0} /> ); } else if (serviceMode && selectedServiceUuids.length === 0) { dateStep = ( setSelectedServiceUuids(uuids)} /> ); } else { dateStep = ( setSelectedServiceUuids([])} selectedLocation={selectedLocation} clinicUuid={clinicUuid} resourceUuid={resourceUuid} onChangeLocation={multiLocation ? reopenLocationChoice : null} onChangeResource={resources.length > 0 ? reopenResourceChoice : null} onDateChange={onDateChange} closedOnDate={selectedClosedOnDate} /> ); } const elements = [ dateStep, , , , , , , ]; return ( <> {step === 1 || step === 2 ? ( {elements[step]} ) : ( 4} matchedCity={matchedCity} paddingBottom="pb-[80px]" > {elements[step]} )} ); } export default Container;