refactor(task): componentize task item and implement delete and toggle logic

This commit is contained in:
2026-04-27 14:22:56 +02:00
parent 38182aa402
commit 6d22fc9e1e
3 changed files with 41 additions and 2 deletions
+23
View File
@@ -0,0 +1,23 @@
import type { Task } from "../types/task";
interface TaskItemProps {
task: Task;
onDelete: (id: number) => void;
onToggle: (id: number) => void;
}
export const TaskItem = ({ task, onDelete, onToggle }: TaskItemProps) => {
return (
<li className="{`task-item ${task.completed ? 'completed' : ''}`}">
<input
type="checkbox"
checked={task.completed}
onChange={() => onToggle(task.id)}
/>
<span style={{ textDecoration: task.completed ? 'line-through' : 'none'}}>
{task.title}
</span>
<button onClick={() => onDelete(task.id)}>Delete</button>
</li>
);
};