Implement three deletion modes for recurring events: - single: exclude specific occurrence via EXDATE mechanism - future: set RRULE UNTIL to stop future occurrences - all: delete entire event series Changes include: - Add exceptionDates field to CalendarEvent model - Add RecurringDeleteMode type and DeleteRecurringEventDTO - EventService.deleteRecurring() with mode-based logic using rrule library - EventController DELETE endpoint accepts mode/occurrenceDate query params - recurrenceExpander filters out exception dates during expansion - AI tools support deleteMode and occurrenceDate for proposed deletions - ChatService.confirmEvent() handles recurring delete modes - New DeleteEventModal component for unified delete confirmation UI - Calendar screen integrates modal for both recurring and non-recurring events
13 lines
331 B
TypeScript
13 lines
331 B
TypeScript
import { create } from "zustand";
|
|
import { Theme, THEMES } from "../Themes";
|
|
|
|
interface ThemeState {
|
|
theme: Theme;
|
|
setTheme: (themeName: keyof typeof THEMES) => void;
|
|
}
|
|
|
|
export const useThemeStore = create<ThemeState>((set) => ({
|
|
theme: THEMES.defaultLight,
|
|
setTheme: (themeName) => set({ theme: THEMES[themeName] }),
|
|
}));
|