From 1957e08903d6bfbda4929ddf003a31d56dd6ac05 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 24 Nov 2023 23:50:37 -0800 Subject: [PATCH] Add some basic error handling --- src/widgets/calendar/integrations/ical.jsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/widgets/calendar/integrations/ical.jsx b/src/widgets/calendar/integrations/ical.jsx index e481fd36..e0d09690 100644 --- a/src/widgets/calendar/integrations/ical.jsx +++ b/src/widgets/calendar/integrations/ical.jsx @@ -10,13 +10,21 @@ export default function Integration({ config, params, setEvents, hideErrors }) { refreshInterval: 300000, // 5 minutes }); + let parsedIcal; + + if (!icalError && icalData && !icalData.error) { + parsedIcal = parseString(icalData.data); + if (parsedIcal.events.length === 0) { + icalData.error = { message: "No events found" }; + } + } + useEffect(() => { - if (!icalData || icalError || !params) { + if (icalError || !parsedIcal) { return; } const eventsToAdd = {}; - const parsedIcal = parseString(icalData.data); const events = parsedIcal?.getEventsBetweenDates( DateTime.fromISO(params.start).toJSDate(), DateTime.fromISO(params.end).toJSDate(), @@ -41,7 +49,7 @@ export default function Integration({ config, params, setEvents, hideErrors }) { }); setEvents((prevEvents) => ({ ...prevEvents, ...eventsToAdd })); - }, [icalData, icalError, config, params, setEvents]); + }, [parsedIcal, icalError, config, params, setEvents]); const error = icalError ?? icalData?.error; return error && !hideErrors && ;