From aa370f68bf079dc273317c28e2b61d6cb1525ff5 Mon Sep 17 00:00:00 2001 From: Mario Zelger Date: Wed, 7 Feb 2024 19:37:44 +0100 Subject: [PATCH] feat: create tasks automatically on load and if relevant input changes --- src/components/CalendarForm.tsx | 53 +++++++++++++++++---------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/components/CalendarForm.tsx b/src/components/CalendarForm.tsx index 866d85b..e6d4029 100644 --- a/src/components/CalendarForm.tsx +++ b/src/components/CalendarForm.tsx @@ -70,6 +70,27 @@ function CalendarForm() { window.sessionStorage.setItem(calendarPrefixCacheKey, newPrefix); } + const resetValues = () => { + window.sessionStorage.removeItem(startDateCacheKey); + setStartDate(initialStartDate) + + window.sessionStorage.removeItem(responsibleCacheKey); + setResponsible(initialResponsible) + + window.sessionStorage.removeItem(bufferCacheKey); + setPuffer(0) + + window.sessionStorage.removeItem(calendarPrefixCacheKey); + setCalendarTitlePrefix('') + } + + const hasActiveCache = () => { + return !!window.sessionStorage.getItem(startDateCacheKey) + || !!window.sessionStorage.getItem(responsibleCacheKey) + || !!window.sessionStorage.getItem(bufferCacheKey) + || !!window.sessionStorage.getItem(calendarPrefixCacheKey) + } + const createTasks = useCallback((event?: FormEvent | undefined) => { event?.preventDefault() @@ -102,28 +123,11 @@ function CalendarForm() { .sort((a: TaskT, b: TaskT) => a.deadline.getTime() - b.deadline.getTime()) setTasks(tasks) - }, [taskList, startDate, responsible, puffer]) + }, [startDate, responsible, puffer, taskList]); - const resetValues = () => { - window.sessionStorage.removeItem(startDateCacheKey); - setStartDate(initialStartDate) - - window.sessionStorage.removeItem(responsibleCacheKey); - setResponsible(initialResponsible) - - window.sessionStorage.removeItem(bufferCacheKey); - setPuffer(0) - - window.sessionStorage.removeItem(calendarPrefixCacheKey); - setCalendarTitlePrefix('') - } - - const hasActiveCache = () => { - return !!window.sessionStorage.getItem(startDateCacheKey) - || !!window.sessionStorage.getItem(responsibleCacheKey) - || !!window.sessionStorage.getItem(bufferCacheKey) - || !!window.sessionStorage.getItem(calendarPrefixCacheKey) - } + useEffect(() => { + createTasks() + }, [createTasks]); useEffect(() => { const getTasks = async () => { @@ -146,13 +150,13 @@ function CalendarForm() { } loadCachedValues() - getTasks().then(() => createTasks()) - }, [taskList, createTasks]); + getTasks() + }, []); return (
-
+
  • - {hasActiveCache() ?