[#340] show declined event in settings (#398)

* [#340] show declined event in settings


Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
Camille Moussu
2025-12-09 11:11:20 +01:00
committed by GitHub
parent 2f2ee369fc
commit 3cb445ea79
9 changed files with 140 additions and 13 deletions
+10 -2
View File
@@ -77,6 +77,10 @@ export default function CalendarApp({
}
}, [dispatch, tokens, userId]);
const view = useAppSelector((state) => state.settings.view);
const userData = useAppSelector((state) => state.user.userData);
const hideDeclinedEvents = useAppSelector(
(state) => state.settings.hideDeclinedEvents
);
const calendars = useAppSelector((state) => state.calendars.list);
const tempcalendars = useAppSelector((state) => state.calendars.templist);
const [selectedCalendars, setSelectedCalendars] = useState<string[]>([]);
@@ -221,7 +225,9 @@ export default function CalendarApp({
let filteredEvents: CalendarEvent[] = extractEvents(
selectedCalendars,
calendars || {}
calendars || {},
userData?.email,
hideDeclinedEvents
);
const tempCalendarIds = useMemo(
@@ -231,7 +237,9 @@ export default function CalendarApp({
let filteredTempEvents: CalendarEvent[] = extractEvents(
tempCalendarIds,
tempcalendars || {}
tempcalendars || {},
userData?.email,
hideDeclinedEvents
);
const sortedSelectedCalendars = useMemo(
+20 -11
View File
@@ -138,21 +138,30 @@ export const eventToFullCalendarFormat = (
export const extractEvents = (
selectedCalendars: string[],
calendars: Record<string, Calendars>
calendars: Record<string, Calendars>,
userAddress?: string,
hideDeclinedEvents?: boolean | null
) => {
let filteredEvents: CalendarEvent[] = [];
const allEvents: CalendarEvent[] = [];
selectedCalendars.forEach((id) => {
if (calendars[id] && calendars[id].events) {
filteredEvents = filteredEvents
.concat(
Object.keys(calendars[id].events).map(
(eventid) => calendars[id].events[eventid]
)
)
.filter((event) => !(event.status === "CANCELLED"));
const calendar = calendars[id];
if (calendar?.events) {
allEvents.push(...Object.values(calendar.events));
}
});
return filteredEvents;
return allEvents
.filter((event) => event.status !== "CANCELLED")
.filter(
(event) =>
!(
hideDeclinedEvents &&
event.attendee?.some(
(a) => a.cal_address === userAddress && a.partstat === "DECLINED"
)
)
);
};
export const updateCalsDetails = (