From 72aa06ad22186c0c663cd555fed2d819dfd164d0 Mon Sep 17 00:00:00 2001 From: Milan Paunovic Date: Sun, 15 Dec 2024 18:45:04 +0100 Subject: [PATCH] Notifications sorting, modal fixes --- app/_layout.tsx | 2 - .../pages/calendar/DetailedCalendar.tsx | 3 +- .../pages/calendar/ManuallyAddEventModal.tsx | 77 ++++++++++++------- .../pages/calendar/useFormattedEvents.ts | 2 +- hooks/firebase/useGetNotifications.ts | 2 +- 5 files changed, 52 insertions(+), 34 deletions(-) diff --git a/app/_layout.tsx b/app/_layout.tsx index f9d6af6..d8f9032 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -209,8 +209,6 @@ export default function RootLayout() { useEffect(() => { if (loaded) { - SplashScreen.hideAsync(); - const typographies: Partial> = {}; ( [ diff --git a/components/pages/calendar/DetailedCalendar.tsx b/components/pages/calendar/DetailedCalendar.tsx index 3599df9..8a18961 100644 --- a/components/pages/calendar/DetailedCalendar.tsx +++ b/components/pages/calendar/DetailedCalendar.tsx @@ -50,7 +50,7 @@ export const DetailedCalendar: React.FC = ({calendarHeight, }), []); const containerProps = useMemo(() => ({ - hourWidth: 60, + hourWidth: 70, allowPinchToZoom: true, useHaptic: true, scrollToNow: true, @@ -84,6 +84,7 @@ export const DetailedCalendar: React.FC = ({calendarHeight, {...containerProps} numberOfDays={numberOfDays} calendarWidth={calendarWidth} + onDateChanged={debouncedOnDateChanged} firstDay={firstDay} events={formattedEvents ?? []} diff --git a/components/pages/calendar/ManuallyAddEventModal.tsx b/components/pages/calendar/ManuallyAddEventModal.tsx index acbd67c..131d35e 100644 --- a/components/pages/calendar/ManuallyAddEventModal.tsx +++ b/components/pages/calendar/ManuallyAddEventModal.tsx @@ -113,7 +113,7 @@ export const ManuallyAddEventModal = () => { } const baseDate = editEvent?.end ?? initialDate ?? new Date(); - return addHours(startOfHour(baseDate), 1); + return addHours(baseDate, 1); }); const [startDate, setStartDate] = useState(initialDate ?? new Date()); const [endDate, setEndDate] = useState( @@ -162,7 +162,7 @@ export const ManuallyAddEventModal = () => { } const baseDate = editEvent?.end ?? initialDate ?? new Date(); - return addHours(startOfHour(baseDate), 1); + return addHours(baseDate, 1); }); setStartDate(initialDate ?? new Date()); @@ -356,6 +356,14 @@ export const ManuallyAddEventModal = () => { newDate.setHours(currentDate.getHours()); 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); + } + onDismiss(); }} theme={{ @@ -397,18 +405,18 @@ export const ManuallyAddEventModal = () => { - setShowStartDatePicker(true)} - style={styles.dateButton} - > - - - + + + + setShowStartDatePicker(true)}> {format(startDate, 'MMM d, yyyy')} - - {!isAllDay && ( + + + + {!isAllDay && ( + { @@ -419,24 +427,24 @@ export const ManuallyAddEventModal = () => { minuteInterval={5} mode="time" timeFormat="HH:mm" - style={styles.timePicker} + style={[styles.timePicker]} /> - )} - - + + )} + {!isAllDay && ( - setShowEndDatePicker(true)} - style={styles.dateButton} - > - - - + + + + setShowEndDatePicker(true)}> {format(endDate, 'MMM d, yyyy')} - + + + + { @@ -453,15 +461,16 @@ export const ManuallyAddEventModal = () => { minuteInterval={5} mode="time" timeFormat="HH:mm" - style={styles.timePicker} + style={[styles.timePicker]} /> - + )} {renderCalendarPicker(true, showStartDatePicker, () => setShowStartDatePicker(false))} {renderCalendarPicker(false, showEndDatePicker, () => setShowEndDatePicker(false))} - ) + + ) return ( <> @@ -533,9 +542,8 @@ export const ManuallyAddEventModal = () => { Cancel - - - + + { const snapshot = await firestore() .collection("Notifications") .where("familyId", "==", profileData?.familyId) + .orderBy("timestamp", "desc") .get(); return snapshot.docs.map((doc) => { const data = doc.data() as NotificationFirestore; - return { id: doc.id, ...data,