refactor: update appointment components to fetch and handle doctor data and disabled dates
This commit is contained in:
@@ -4,10 +4,9 @@ import { useEffect, useRef, useState } from "react";
|
||||
import FirstDatePicker from "./date/FirstDatePicker";
|
||||
import SecondDatePicker from "./date/SecondDatePicker";
|
||||
import { dateToTimestamp } from "@/helper";
|
||||
import { request } from "@/services/response";
|
||||
import moment from "moment-jalaali";
|
||||
|
||||
function DatePicker({ setDate }) {
|
||||
function DatePicker({ setDate, disabledDates = [] }) {
|
||||
const nextIconDatePickerF = useRef();
|
||||
const prevIconDatePickerF = useRef();
|
||||
const nextIconDatePickerS = useRef();
|
||||
@@ -16,7 +15,6 @@ function DatePicker({ setDate }) {
|
||||
const [startDate, setStartDate] = useState(null);
|
||||
const [endDate, setEndDate] = useState();
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [disableDates, setDisableDates] = useState([]);
|
||||
|
||||
const handleStartDateChange = (date, e) => {
|
||||
if (date) {
|
||||
@@ -42,7 +40,7 @@ function DatePicker({ setDate }) {
|
||||
if (date.isBefore(today)) return true;
|
||||
|
||||
if (
|
||||
disableDates.some((ts) => date.isSame(moment.unix(ts).startOf("day")))
|
||||
disabledDates.some((ts) => date.isSame(moment.unix(ts).startOf("day")))
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -51,27 +49,22 @@ function DatePicker({ setDate }) {
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
request
|
||||
.getAppointmentNotAvailable(47)
|
||||
.then((res) => {
|
||||
setTimeout(() => {
|
||||
setLoading(false);
|
||||
}, 1000);
|
||||
setDisableDates(res.data);
|
||||
})
|
||||
.catch((err) => {
|
||||
});
|
||||
// تنظیم loading به false بعد از یک تاخیر کوتاه
|
||||
setTimeout(() => {
|
||||
setLoading(false);
|
||||
}, 1000);
|
||||
|
||||
if (nextIconDatePickerS.current) {
|
||||
nextIconDatePickerS.current.click();
|
||||
}
|
||||
}, [nextIconDatePickerS]);
|
||||
}, [nextIconDatePickerS, disabledDates]);
|
||||
|
||||
return (
|
||||
<div className="datePickerApt flex items-start custom-datepicker justify-evenly w-full">
|
||||
<FirstDatePicker
|
||||
loading={loading}
|
||||
startDate={startDate}
|
||||
disableDates={disableDates}
|
||||
disableDates={disabledDates}
|
||||
handleDisableDate={handleDisableDate}
|
||||
nextIconDatePickerF={nextIconDatePickerF}
|
||||
prevIconDatePickerF={prevIconDatePickerF}
|
||||
|
||||
Reference in New Issue
Block a user