import { useState } from 'react'; interface Task { id: string; title: string; description?: string; completed: boolean; isRolling?: boolean; createdAt: Date; updatedAt: Date; } interface TaskItemProps { task: Task; onToggleComplete: (id: string) => void; onDelete: (id: string) => void; onEdit: (task: Task) => void; onToggleRolling: (id: string) => void; variant?: 'default' | 'minimal'; } export default function TaskItem({ task, onToggleComplete, onDelete, onEdit, onToggleRolling, variant = 'default' }: TaskItemProps) { const [isEditing, setIsEditing] = useState(false); const [editedTitle, setEditedTitle] = useState(task.title); const [editedDescription, setEditedDescription] = useState(task.description || ''); const [isDeleting, setIsDeleting] = useState(false); const handleSave = () => { onEdit({ ...task, title: editedTitle, description: editedDescription }); setIsEditing(false); }; const handleCancel = () => { setEditedTitle(task.title); setEditedDescription(task.description || ''); setIsEditing(false); }; const handleDelete = () => { setIsDeleting(true); // Add a small delay to allow the UI to update setTimeout(() => { onDelete(task.id); setIsDeleting(false); }, 100); }; if (isEditing) { return (
{task.description}
)}