From b1cf05fcf2ac7cc3d3265aeece1619ff8f01d2a5 Mon Sep 17 00:00:00 2001 From: Benoit TELLIER Date: Mon, 27 Apr 2026 15:05:29 +0200 Subject: [PATCH] ISSUE-836 Duplicate: carry over source calendar if writable (#837) --- src/features/Events/EventModal.tsx | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/features/Events/EventModal.tsx b/src/features/Events/EventModal.tsx index aa0ba13..7d1a71e 100644 --- a/src/features/Events/EventModal.tsx +++ b/src/features/Events/EventModal.tsx @@ -44,6 +44,21 @@ import { buildDelegatedEventURL } from './utils/buildDelegatedEventURL' import { Resource } from '@/components/Attendees/ResourceSearch' import { EventActions } from './EventActions' +function resolveSourceCalendarId( + calId: string | undefined, + calList: Record, + userId: string, + defaultCalendarId: string +): string { + if (!calId) return defaultCalendarId + const sourceCalendar = calList[calId] + if (!sourceCalendar) return defaultCalendarId + const isWritable = + sourceCalendar.id?.split('/')[0] === userId || + (sourceCalendar.delegated && sourceCalendar.access?.write) + return isWritable ? calId : defaultCalendarId +} + function EventPopover({ open, onClose, @@ -475,9 +490,9 @@ function EventPopover({ setEnd('') } - if (defaultCalendarId) { - setCalendarid(defaultCalendarId) - } + setCalendarid( + resolveSourceCalendarId(event.calId, calList, userId, defaultCalendarId) + ) setRepetition(event.repetition ?? ({} as RepetitionObject)) setShowRepeat(event.repetition?.freq ? true : false) setAttendees( @@ -519,6 +534,8 @@ function EventPopover({ organizer?.cal_address, resolvedCalendarTimezone, defaultCalendarId, + calList, + userId, resources, eventAttendees ])