diff --git a/app/component/date/datePicker/index.js b/app/component/date/datePicker/index.js
index 45e67a9..3d1ad35 100644
--- a/app/component/date/datePicker/index.js
+++ b/app/component/date/datePicker/index.js
@@ -5,6 +5,7 @@ import FirstDatePicker from "./date/FirstDatePicker";
import SecondDatePicker from "./date/SecondDatePicker";
import { dateToTimestamp } from "@/helper";
import moment from "moment-jalaali";
+import "moment-timezone";
function DatePicker({ setDate, disabledDates = [] }) {
const nextIconDatePickerF = useRef();
@@ -15,6 +16,7 @@ function DatePicker({ setDate, disabledDates = [] }) {
const [startDate, setStartDate] = useState(null);
const [endDate, setEndDate] = useState();
const [loading, setLoading] = useState(true);
+ const [autoSelected, setAutoSelected] = useState(false);
const handleStartDateChange = (date, e) => {
if (date) {
@@ -59,6 +61,47 @@ function DatePicker({ setDate, disabledDates = [] }) {
}
}, [nextIconDatePickerS, disabledDates]);
+ // انتخاب خودکار امروز یا نزدیکترین روز قابل انتخاب
+ useEffect(() => {
+ if (!loading && !autoSelected && disabledDates) {
+ const today = moment().tz("Asia/Tehran");
+ const todayTimestamp = moment().tz("Asia/Tehran").startOf("day").unix();
+
+ // بررسی اینکه امروز قابل انتخاب است یا نه
+ const isTodayDisabled = disabledDates.some((ts) =>
+ moment.unix(ts).startOf("day").isSame(today.startOf("day"))
+ );
+
+ if (!isTodayDisabled) {
+ // امروز قابل انتخاب است
+ setStartDate(today);
+ setDate(todayTimestamp);
+ setAutoSelected(true);
+ } else {
+ // پیدا کردن نزدیکترین روز قابل انتخاب
+ let nearestDate = null;
+ let daysToCheck = 30; // بررسی 30 روز آینده
+
+ for (let i = 1; i <= daysToCheck; i++) {
+ const futureDate = moment().tz("Asia/Tehran").add(i, "days");
+ const futureDateTimestamp = futureDate.clone().startOf("day").unix();
+
+ const isFutureDateDisabled = disabledDates.some((ts) =>
+ moment.unix(ts).startOf("day").isSame(futureDate.startOf("day"))
+ );
+
+ if (!isFutureDateDisabled) {
+ nearestDate = futureDate;
+ setStartDate(futureDate);
+ setDate(futureDateTimestamp);
+ setAutoSelected(true);
+ break;
+ }
+ }
+ }
+ }
+ }, [loading, disabledDates, autoSelected, setDate]);
+
return (