diff --git a/src/App.tsx b/src/App.tsx index 87342c6..e9611f8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,5 +1,6 @@ import { useState } from "react" -import type { Task } from "./assets/types/task"; +import type { Task } from "./types/task"; +import { TaskItem } from "./components/TaskItem"; function App() { const [tasks, setTasks] = useState([]); @@ -20,6 +21,16 @@ function App() { setInputValue(''); }; + const deleteTask = (id: number) => { + setTasks(tasks.filter(task => task.id !== id)); + } + + const toggleTask = (id: number) => { + setTasks(tasks.map(task => + task.id === id ? { ...task, completed: !task.completed} : task + )); + }; + return (

SmartX Task Manager

@@ -38,7 +49,12 @@ function App() { ) : ( )} diff --git a/src/components/TaskItem.tsx b/src/components/TaskItem.tsx new file mode 100644 index 0000000..b907671 --- /dev/null +++ b/src/components/TaskItem.tsx @@ -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 ( +
  • + onToggle(task.id)} + /> + + {task.title} + + +
  • + ); +}; diff --git a/src/assets/types/task.ts b/src/types/task.ts similarity index 100% rename from src/assets/types/task.ts rename to src/types/task.ts