import React, { useState } from 'react'; interface RecurrenceModalProps { task: any; onClose: () => void; onSave: (taskId: string, recurrence: any) => Promise; } export default function RecurrenceModal({ task, onClose, onSave }: RecurrenceModalProps) { const [isRecurring, setIsRecurring] = useState(task.isRecurring || false); const [interval, setInterval] = useState(task.recurrenceInterval || 1); const [unit, setUnit] = useState(task.recurrenceUnit || 'weeks'); const [endDate, setEndDate] = useState(task.recurrenceEndDate ? new Date(task.recurrenceEndDate).toISOString().split('T')[0] : ''); const [isSaving, setIsSaving] = useState(false); const handleSave = async () => { setIsSaving(true); try { await onSave(task.id, { isRecurring, recurrenceInterval: isRecurring ? interval : null, recurrenceUnit: isRecurring ? unit : null, recurrenceEndDate: isRecurring && endDate ? new Date(endDate) : null }); onClose(); } catch (error) { console.error('Failed to save recurrence', error); setIsSaving(false); } }; return (
e.stopPropagation()} style={{ maxWidth: '400px' }}>

Recurring Task

setIsRecurring(e.target.checked)} style={{ width: '18px', height: '18px', marginRight: '10px' }} />
{isRecurring && (
setInterval(parseInt(e.target.value) || 1)} style={{ width: '60px', padding: '6px', borderRadius: '4px', border: '1px solid #ddd' }} />
setEndDate(e.target.value)} style={{ width: '100%', padding: '6px', borderRadius: '4px', border: '1px solid #ddd' }} />
)}
); }