fix: recurring events edit all instances issues

- Fix master event detection in getEvent() to find VEVENT without recurrence-id
- Add removeOverrides parameter to updateSeries() to control override deletion
- Fetch master event when editing 'all events' to preserve original start date
- Combine master's date with form's time when updating all instances
- Detect time changes separately from date changes to preserve optimistic updates
- Only remove overrides when date/time/timezone/repeat rules change
- Keep overrides when only properties (title, description, etc) change

Fixes:
1. Old UI not cleared when editing all events
2. Start date not preserved when editing from different instance
3. Solo overrides incorrectly removed when only properties changed
4. Optimistic updates lost when editing recurring events
This commit is contained in:
lenhanphung
2025-10-14 12:46:32 +07:00
committed by Benoit TELLIER
parent 5017c1bd6b
commit af47923478
3 changed files with 180 additions and 29 deletions
+3 -3
View File
@@ -295,9 +295,9 @@ export const updateEventInstanceAsync = createAsyncThunk<
export const updateSeriesAsync = createAsyncThunk<
void,
{ cal: Calendars; event: CalendarEvent }
>("calendars/updateSeries", async ({ cal, event }) => {
await updateSeries(event, cal.ownerEmails?.[0]);
{ cal: Calendars; event: CalendarEvent; removeOverrides?: boolean }
>("calendars/updateSeries", async ({ cal, event, removeOverrides = true }) => {
await updateSeries(event, cal.ownerEmails?.[0], removeOverrides);
});
export const createCalendarAsync = createAsyncThunk<