fix(11-05): CR-01 surface reminderIsCustom to preserve custom VALARMs on edit
- expand.ts: add reminderIsCustom:boolean to CalendarOccurrence interface; derived from classifyValarms kind==='custom'; propagated to both non-recurring and recurring occurrence branches - client.ts: mirror reminderIsCustom on CalendarOccurrence (atomic mirror) - EventForm.tsx: extend deriveReminderValue to accept isCustom flag; returns '__custom__' when true, making the existing D-08 preserve branch live — editing a custom-alarm event now omits reminderLeadMinutes from the payload so outboxWorker extractValarms keeps the original VALARM - Fix existing test fixtures (EventForm.test.tsx, EventDetailPopover.test.tsx) to include reminderIsCustom:false on all CalendarOccurrence literals Fixes CAL-14 Pitfall 1: Apple Calendar absolute DATE-TIME / multi-VALARM alarms no longer silently stripped on any edit round-trip from the PWA.
This commit is contained in:
@@ -139,6 +139,14 @@ export interface CalendarOccurrence {
|
||||
* (atomic mirror, Plan 11-03).
|
||||
*/
|
||||
reminderLeadMinutes: number | null;
|
||||
/**
|
||||
* True when the event's alarm is custom/absolute/multi-VALARM (not reducible to a
|
||||
* single before-event lead). When true, reminderLeadMinutes is always null and the
|
||||
* form must initialize to '__custom__' to preserve the VALARM on edit (CR-01, Plan 11-05).
|
||||
* Mirrors CalendarOccurrence.reminderIsCustom in apps/api/src/broker/expand.ts
|
||||
* (atomic mirror, Plan 11-05).
|
||||
*/
|
||||
reminderIsCustom: boolean;
|
||||
}
|
||||
|
||||
export interface OccurrencesResponse {
|
||||
|
||||
Reference in New Issue
Block a user