From 82706f89f5d994fcebad6273e1ba8d005ca9fd60 Mon Sep 17 00:00:00 2001 From: aelassas Date: Thu, 23 Jan 2025 21:44:13 +0100 Subject: [PATCH] Fix: date handling in VehicleScheduler and CarFilter components --- backend/src/components/VehicleScheduler.tsx | 11 ++++--- frontend/src/components/CarFilter.tsx | 32 +++++++++------------ frontend/src/components/SearchForm.tsx | 9 ++++-- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/backend/src/components/VehicleScheduler.tsx b/backend/src/components/VehicleScheduler.tsx index 04b4ccb7d..9d119e9e5 100644 --- a/backend/src/components/VehicleScheduler.tsx +++ b/backend/src/components/VehicleScheduler.tsx @@ -46,21 +46,24 @@ const VehicleScheduler = ( } ] + const dateBetween = new Date(query.end.getTime() - Math.ceil(query.end.getTime() - query.start.getTime()) / 2) + dateBetween.setHours(23, 59, 0, 0) + const payload: bookcarsTypes.GetBookingsPayload = { suppliers, statuses, filter: { - // from: query.view !== 'day' ? query.start : undefined, from: query.view !== 'day' ? new Date(query.start.getFullYear(), query.start.getMonth() - 1, 1) : undefined, - dateBetween: query.view === 'day' ? new Date(query.end.getFullYear(), query.end.getMonth(), query.end.getDate(), 0, 0, 0) : undefined, - // to: query.view === 'month' ? query.end : new Date(query.end.getFullYear(), query.end.getMonth() + 1, 0), - to: new Date(query.end.getFullYear(), query.end.getMonth() + 1, 0), + dateBetween: query.view === 'day' ? dateBetween : undefined, + to: query.view === 'month' ? new Date(query.end.getFullYear(), query.end.getMonth() + 1, 0) : new Date(query.end.getFullYear(), query.end.getMonth() + 2, 0), pickupLocation: filter?.pickupLocation, dropOffLocation: filter?.dropOffLocation, keyword: filter?.keyword, }, user: (user && user._id) || undefined, } + console.log(payload.filter?.dateBetween) + console.log(payload.filter?.to) const data = await BookingService.getBookings(payload, 1, 10000) const _data = data && data.length > 0 ? data[0] : { pageInfo: { totalRecord: 0 }, resultData: [] } diff --git a/frontend/src/components/CarFilter.tsx b/frontend/src/components/CarFilter.tsx index 2015036f5..bc4ab9474 100644 --- a/frontend/src/components/CarFilter.tsx +++ b/frontend/src/components/CarFilter.tsx @@ -40,7 +40,6 @@ const CarFilter = ({ const [from, setFrom] = useState(filterFrom) const [to, setTo] = useState(filterTo) const [minDate, setMinDate] = useState() - const [maxDate, setMaxDate] = useState() const [pickupLocation, setPickupLocation] = useState(filterPickupLocation) const [dropOffLocation, setDropOffLocation] = useState(filterDropOffLocation) const [sameLocation, setSameLocation] = useState(filterPickupLocation === filterDropOffLocation) @@ -57,14 +56,6 @@ const CarFilter = ({ } }, [filterFrom]) - useEffect(() => { - if (filterTo) { - const __maxDate = new Date(filterTo) - __maxDate.setDate(__maxDate.getDate() - 1) - setMaxDate(__maxDate) - } - }, [filterTo]) - useEffect(() => { setPickupLocation(filterPickupLocation) }, [filterPickupLocation]) @@ -163,7 +154,7 @@ const CarFilter = ({ label={strings.PICK_UP_DATE} value={from} minDate={_minDate} - maxDate={maxDate} + // maxDate={maxDate} variant="standard" required onChange={(date) => { @@ -173,6 +164,11 @@ const CarFilter = ({ setFrom(date) setMinDate(__minDate) setFromError(false) + if (to!.getTime() - date.getTime() < 24 * 60 * 60 * 1000) { + const _to = new Date(date) + _to.setDate(_to.getDate() + 3) + setTo(_to) + } } else { setFrom(undefined) setMinDate(_minDate) @@ -197,14 +193,10 @@ const CarFilter = ({ required onChange={(date) => { if (date) { - const _maxDate = new Date(date) - _maxDate.setDate(_maxDate.getDate() - 1) setTo(date) - setMaxDate(_maxDate) setToError(false) } else { setTo(undefined) - setMaxDate(undefined) } }} onError={(err: DateTimeValidationError) => { @@ -261,7 +253,7 @@ const CarFilter = ({ label={strings.PICK_UP_DATE} value={from} minDate={_minDate} - maxDate={maxDate} + // maxDate={maxDate} variant="standard" required onChange={(date) => { @@ -271,6 +263,12 @@ const CarFilter = ({ setFrom(date) setMinDate(__minDate) setFromError(false) + + if (to!.getTime() - date.getTime() < 24 * 60 * 60 * 1000) { + const _to = new Date(date) + _to.setDate(_to.getDate() + 3) + setTo(_to) + } } else { setFrom(undefined) setMinDate(_minDate) @@ -325,14 +323,10 @@ const CarFilter = ({ required onChange={(date) => { if (date) { - const _maxDate = new Date(date) - _maxDate.setDate(_maxDate.getDate() - 1) setTo(date) - setMaxDate(_maxDate) setToError(false) } else { setTo(undefined) - setMaxDate(undefined) } }} onError={(err: DateTimeValidationError) => { diff --git a/frontend/src/components/SearchForm.tsx b/frontend/src/components/SearchForm.tsx index 82b513583..45a469c96 100644 --- a/frontend/src/components/SearchForm.tsx +++ b/frontend/src/components/SearchForm.tsx @@ -203,9 +203,12 @@ const SearchForm = ({ setFrom(date) setMinDate(__minDate) setFromError(false) - const _to = new Date(date) - _to.setDate(date.getDate() + 3) - setTo(_to) + + if (to!.getTime() - date.getTime() < 24 * 60 * 60 * 1000) { + const _to = new Date(date) + _to.setDate(_to.getDate() + 3) + setTo(_to) + } } else { setFrom(undefined) setMinDate(_minDate)