todo_app / src /App.js
Anshu109's picture
Upload 1998 files
ccf1f60
raw
history blame contribute delete
No virus
1.41 kB
import "./App.css";
import { useState } from "react";
import { Task } from "./Task";
function App() {
const [todoList, setTodoList] = useState([]);
const [newTask, setNewTask] = useState("");
const handleChange = (event) => {
setNewTask(event.target.value);
};
const addTask = () => {
const task = {
id: todoList.length === 0 ? 1 : todoList[todoList.length - 1].id + 1,
taskName: newTask,
completed: false,
};
setTodoList(task.taskName !== "" ? [...todoList, task] : todoList);
};
const deleteTask = (id) => {
setTodoList(todoList.filter((task) => task.id !== id));
};
const completeTask = (id) => {
setTodoList(
todoList.map((task) => {
if (task.id === id) {
return { ...task, completed: true };
} else {
return task;
}
})
);
};
return (
<div className="App">
<div className="addTask">
<input onChange={handleChange} />
<button onClick={addTask}> Add Task</button>
</div>
<div className="list">
{todoList.map((task) => {
return (
<Task
taskName={task.taskName}
id={task.id}
completed={task.completed}
deleteTask={deleteTask}
completeTask={completeTask}
/>
);
})}
</div>
</div>
);
}
export default App;