* [#340] show declined event in settings Co-authored-by: Camille Moussu <cmoussu@linagora.com>
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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 = (
|
||||
|
||||
Reference in New Issue
Block a user