feat: add recurring event deletion with three modes
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
This commit is contained in:
@@ -75,11 +75,19 @@ export const EventCardBase = ({
|
||||
borderBottomColor: theme.borderPrimary,
|
||||
}}
|
||||
>
|
||||
<Text className="font-bold text-base" style={{ color: theme.textPrimary }}>{title}</Text>
|
||||
<Text
|
||||
className="font-bold text-base"
|
||||
style={{ color: theme.textPrimary }}
|
||||
>
|
||||
{title}
|
||||
</Text>
|
||||
</View>
|
||||
|
||||
{/* Content */}
|
||||
<View className="px-3 py-2" style={{ backgroundColor: theme.secondaryBg }}>
|
||||
<View
|
||||
className="px-3 py-2"
|
||||
style={{ backgroundColor: theme.secondaryBg }}
|
||||
>
|
||||
{/* Date */}
|
||||
<View className="flex-row items-center mb-1">
|
||||
<Feather
|
||||
@@ -116,18 +124,13 @@ export const EventCardBase = ({
|
||||
color={theme.textPrimary}
|
||||
style={{ marginRight: 8 }}
|
||||
/>
|
||||
<Text style={{ color: theme.textPrimary }}>
|
||||
Wiederkehrend
|
||||
</Text>
|
||||
<Text style={{ color: theme.textPrimary }}>Wiederkehrend</Text>
|
||||
</View>
|
||||
)}
|
||||
|
||||
{/* Description */}
|
||||
{description && (
|
||||
<Text
|
||||
style={{ color: theme.textPrimary }}
|
||||
className="text-sm mt-1"
|
||||
>
|
||||
<Text style={{ color: theme.textPrimary }} className="text-sm mt-1">
|
||||
{description}
|
||||
</Text>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user