[#80] added selected calendars local persistance + tests (#281)

Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
Camille Moussu
2025-11-04 16:00:08 +01:00
committed by GitHub
parent 838262fde3
commit 4f5308fe08
4 changed files with 75 additions and 6 deletions
+21 -4
View File
@@ -102,14 +102,31 @@ export default function CalendarApp({
useEffect(() => {
if (initialLoadRef.current && Object.keys(calendars).length > 0 && userId) {
const personalCalendarIds = Object.keys(calendars).filter(
(id) => id.split("/")[0] === userId
);
setSelectedCalendars(personalCalendarIds);
const cached = localStorage.getItem("selectedCalendars");
if (cached && cached.length > 0) {
const parsed = JSON.parse(cached) as string[];
const valid = parsed.filter((id) => calendars[id]);
setSelectedCalendars(valid);
} else {
const personalCalendarIds = Object.keys(calendars).filter(
(id) => id.split("/")[0] === userId
);
setSelectedCalendars(personalCalendarIds);
}
initialLoadRef.current = false;
}
}, [calendars, userId]);
// Save selected cals to cache
useEffect(() => {
if (Object.keys(calendars).length > 0) {
localStorage.setItem(
"selectedCalendars",
JSON.stringify(selectedCalendars)
);
}
}, [selectedCalendars]);
useEffect(() => {
updateDarkColor(calendars, theme, dispatch);
}, [