diff --git a/components/pages/calendar/ManuallyAddEventModal.tsx b/components/pages/calendar/ManuallyAddEventModal.tsx index 5ebe038..c8a99c2 100644 --- a/components/pages/calendar/ManuallyAddEventModal.tsx +++ b/components/pages/calendar/ManuallyAddEventModal.tsx @@ -34,9 +34,10 @@ import {useGetFamilyMembers} from "@/hooks/firebase/useGetFamilyMembers"; import DeleteEventDialog from "./DeleteEventDialog"; import {useDeleteEvent} from "@/hooks/firebase/useDeleteEvent"; import AddPersonIcon from "@/assets/svgs/AddPersonIcon"; -import {addHours, format, startOfMinute} from "date-fns"; +import {addHours, format, isAfter, isSameDay, startOfMinute} from "date-fns"; import {ProfileType, useAuthContext} from "@/contexts/AuthContext"; import {Calendar} from "react-native-calendars"; +import React from "react"; const daysOfWeek = [ {label: "Monday", value: "monday"}, @@ -353,11 +354,24 @@ export const ManuallyAddEventModal = () => { newDate.setMinutes(currentDate.getMinutes()); setDate(newDate); - if (isStart && newDate > endDate) { - const newEndDate = new Date(newDate); - newEndDate.setHours(endDate.getHours()); - newEndDate.setMinutes(endDate.getMinutes()); - setEndDate(newEndDate); + if(isStart) { + if (startTime.getHours() > endTime.getHours() && + (isSameDay(newDate, endDate) || isAfter(newDate, endDate))) { + const newEndDate = new Date(newDate); + newEndDate.setDate(newEndDate.getDate() + 1); + newEndDate.setHours(endDate.getHours()); + newEndDate.setMinutes(endDate.getMinutes()); + setEndDate(newEndDate); + } + } else { + if (endTime.getHours() < startTime.getHours() && + (isSameDay(newDate, startDate) || isAfter(startDate, newDate))) { + const newStartDate = new Date(newDate); + newStartDate.setDate(newStartDate.getDate() - 1); + newStartDate.setHours(startDate.getHours()); + newStartDate.setMinutes(startDate.getMinutes()); + setStartDate(newStartDate); + } } onDismiss();