From 1720965f0f9f02f95a5a3150b780b86d829996ad Mon Sep 17 00:00:00 2001 From: Camille Moussu <66134347+Eriikah@users.noreply.github.com> Date: Fri, 6 Feb 2026 11:23:29 +0100 Subject: [PATCH] [#497 & #517] updated event editability in the calendar grid (#519) * [#497 & #517] updated event editability in the calendar grid to prevent accidental editing and editing event we are not organizer of --- src/components/Calendar/Calendar.tsx | 4 +++- src/components/Calendar/utils/calendarUtils.ts | 13 +++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/Calendar/Calendar.tsx b/src/components/Calendar/Calendar.tsx index ac09bf7..5e2a3cf 100644 --- a/src/components/Calendar/Calendar.tsx +++ b/src/components/Calendar/Calendar.tsx @@ -693,7 +693,9 @@ export default function CalendarApp({ events={eventToFullCalendarFormat( filteredEvents, filteredTempEvents, - userId + userId, + userData?.email, + isPending )} eventOrder={(a: any, b: any) => a.extendedProps.priority - b.extendedProps.priority diff --git a/src/components/Calendar/utils/calendarUtils.ts b/src/components/Calendar/utils/calendarUtils.ts index ff8a37e..ee7e472 100644 --- a/src/components/Calendar/utils/calendarUtils.ts +++ b/src/components/Calendar/utils/calendarUtils.ts @@ -68,7 +68,9 @@ export function formatEventChipTitle(e: CalendarEvent, t: Function) { export const eventToFullCalendarFormat = ( filteredEvents: CalendarEvent[], filteredTempEvents: CalendarEvent[], - userId: string | undefined + userId: string | undefined, + userAddress: string | undefined, + pending: boolean ) => { const { t } = useI18n(); return filteredEvents @@ -76,14 +78,17 @@ export const eventToFullCalendarFormat = ( .map((e) => { const eventTimezone = e.timezone || "Etc/UTC"; const isAllDay = e.allday ?? false; - const isPersonnalEvent = extractEventBaseUuid(e.calId) === userId; - + const isOrganiser = e.organizer + ? e.organizer.cal_address?.toLowerCase() === userAddress?.toLowerCase() + : true; // if there are no organizer in the event we assume it was organized by the owner + const isPersonnalEvent = + extractEventBaseUuid(e.calId) === userId && isOrganiser; const convertedEvent: any = { ...e, title: formatEventChipTitle(e, t), colors: e.color, editable: isPersonnalEvent, - priority: isPersonnalEvent ? 1 : 0, + priority: isPersonnalEvent && !pending ? 1 : 0, }; if (!isAllDay && e.start && eventTimezone) {