/* eslint-disable @typescript-eslint/no-explicit-any */ import React from 'react'; import { Repeat, X, Trash2 } from 'lucide-react'; interface RecurringTasksManagerProps { isOpen: boolean; onClose: () => void; tasks: any[]; onStopRecurring: (task: any) => void; } export default function RecurringTasksManager({ isOpen, onClose, tasks, onStopRecurring }: RecurringTasksManagerProps) { if (!isOpen) return null; // Filter and group recurring tasks by series signature // We use title + recurrence settings as the identity of a "series" const seriesGroups = new Map(); tasks.filter(t => t.isRecurring).forEach(t => { // Only include those that aren't already ended if (t.recurrenceEndDate && new Date(t.recurrenceEndDate) < new Date()) { return; } const signature = `${t.title}-${t.recurrenceInterval || 1}-${t.recurrenceUnit || 'weeks'}-${t.recurrenceTime || ''}`; // Keep the latest instance to represent the series const existing = seriesGroups.get(signature); if (!existing || (t.scheduledDate && new Date(t.scheduledDate) > new Date(existing.scheduledDate || 0))) { seriesGroups.set(signature, t); } }); const groupedTasks = Array.from(seriesGroups.values()); return (
e.stopPropagation()}>

Wiederkehrende Aufgaben

{groupedTasks.length === 0 ? (

Du hast momentan keine aktiven wiederkehrenden Aufgaben.

) : (
{groupedTasks.map(task => (
{task.title}
Alle {task.recurrenceInterval === 1 ? '' : task.recurrenceInterval} { task.recurrenceUnit === 'days' ? 'Tage' : task.recurrenceUnit === 'weeks' ? 'Wochen' : task.recurrenceUnit === 'months' ? 'Monate' : 'Jahre' } {task.recurrenceTime && ( um {task.recurrenceTime} Uhr )}
))}
)}

Tipp: Du kannst Aufgaben jederzeit beim Bearbeiten wiederkehrend machen.

); }