From 467a9849556c2cc0bac7e4d0de24e6ac0dd59b7d Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Mon, 25 Aug 2025 21:16:42 -0600 Subject: [PATCH] Fix resizing repeat events non-first occurrence. --- src/components/EventOverlay.vue | 13 +++++++++++++ src/stores/CalendarStore.js | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/EventOverlay.vue b/src/components/EventOverlay.vue index 76cc849..cd93a0c 100644 --- a/src/components/EventOverlay.vue +++ b/src/components/EventOverlay.vue @@ -299,6 +299,19 @@ function onDragPointerMove(e) { ns, ne, ) + } else if (st.isVirtual && (st.mode === 'resize-left' || st.mode === 'resize-right')) { + // For virtual occurrence resize: convert to real once, then adjust range + if (!st.realizedId) { + const newId = store.splitMoveVirtualOccurrence(st.id, st.startDate, st.startDate, st.endDate) + if (newId) { + st.realizedId = newId + st.id = newId + st.isVirtual = false + } else return + } + // Apply range change; rotate if left edge moved and weekday changed + const rotate = st.mode === 'resize-left' + store.setEventRange(st.id, ns, ne, { mode: st.mode, rotatePattern: rotate }) } } diff --git a/src/stores/CalendarStore.js b/src/stores/CalendarStore.js index 5c59f0f..89dca12 100644 --- a/src/stores/CalendarStore.js +++ b/src/stores/CalendarStore.js @@ -286,8 +286,8 @@ export const useCalendarStore = defineStore('calendar', { DEFAULT_TZ, ) if ( - mode === 'move' && rotatePattern && + (mode === 'move' || mode === 'resize-left') && snapshot.isRepeating && snapshot.repeat === 'weeks' && Array.isArray(snapshot.repeatWeekdays)