import { useState } from 'react'; import { useSortable } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import type { Task } from '../types'; interface TaskCardProps { task: Task; isDragging?: boolean; onDelete?: () => void; onUpdate?: (updates: Partial) => void; } export function TaskCard({ task, isDragging, onDelete, onUpdate }: TaskCardProps) { const [isEditing, setIsEditing] = useState(false); const [editTitle, setEditTitle] = useState(task.title); const { attributes, listeners, setNodeRef, transform, transition, isDragging: isSortableDragging, } = useSortable({ id: task.id }); const style = { transform: CSS.Transform.toString(transform), transition, opacity: isSortableDragging ? 0.5 : 1, }; const handleSave = () => { if (editTitle.trim() && onUpdate) { onUpdate({ title: editTitle.trim() }); } setIsEditing(false); }; if (isDragging) { return (

{task.title}

); } return (
{isEditing ? (
e.stopPropagation()}> setEditTitle(e.target.value)} onKeyDown={(e) => e.key === 'Enter' && handleSave()} autoFocus />
) : ( <>

{task.title}

)}
); }