fix: detect tasks created by external CalDAV clients (Thunderbird)
Tasks created in Thunderbird via CalDAV were not visible because getCalendarTasks() used a strict @type === 'Task' check. Stalwart may not set @type when converting VTODO from CalDAV to JMAP. - Use case-insensitive @type matching for server variations - Add fallback heuristic: detect tasks by presence of 'progress' property (exclusive to JSCalendar Task, never on Event objects) - Normalize @type to 'Task' on detected tasks for consistent downstream handling - Refresh task store on CalendarEvent state changes so tasks created externally appear without manual page refresh Fixes #84
This commit is contained in:
@@ -1102,6 +1102,12 @@ export const useEmailStore = create<EmailStore>((set, get) => ({
|
||||
if (dateRange && selectedCalendarIds.length > 0) {
|
||||
calendarStore.fetchEvents(client, dateRange.start, dateRange.end);
|
||||
}
|
||||
// Refresh tasks when calendar events change (e.g. task created via CalDAV)
|
||||
const { useTaskStore } = await import('./task-store');
|
||||
const taskStore = useTaskStore.getState();
|
||||
if (taskStore.tasks.length > 0 || calendarStore.viewMode === 'tasks') {
|
||||
taskStore.fetchTasks(client);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user