diff --git a/react/todo-app/src/App.js b/react/todo-app/src/App.js index 938fa023..44a6a06a 100644 --- a/react/todo-app/src/App.js +++ b/react/todo-app/src/App.js @@ -1,13 +1,11 @@ -import React, { Component } from "react"; +import React, { useState } from "react"; import "./App.css"; -export default class App extends Component { - state = { - todoData: [], - value: "", - }; +export default function App() { + const [todoData, setTodoData] = useState([]); + const [value, setValue] = useState(""); - btnStyle = { + const btnStyle = { color: "#fff", border: "none", padding: "5px 9px", @@ -16,7 +14,7 @@ export default class App extends Component { float: "right", }; - getStyle = (completed) => { + const getStyle = (completed) => { return { padding: "10px", borderBottom: "1px #ccc dotted", @@ -24,81 +22,77 @@ export default class App extends Component { }; }; - handleClick = (id) => { - let newTodoData = this.state.todoData.filter((data) => data.id !== id); - this.setState({ todoData: newTodoData }); + const handleClick = (id) => { + let newTodoData = todoData.filter((data) => data.id !== id); + setTodoData(newTodoData); }; - handleChange = (e) => { - this.setState({ value: e.target.value }); + const handleChange = (e) => { + setValue(e.target.value); }; - handlkeSubmit = (e) => { + const handlkeSubmit = (e) => { e.preventDefault(); let newTodo = { id: Date.now(), - title: this.state.value, + title: value, completed: false, }; - this.setState({ todoData: [...this.state.todoData, newTodo], value: "" }); + setTodoData((prev) => [...prev, newTodo]); + setValue(""); }; - handleCompleteChange = (id) => { - let newTodoData = this.state.todoData.map((data) => { + const handleCompleteChange = (id) => { + let newTodoData = todoData.map((data) => { if (data.id === id) { data.completed = !data.completed; } return data; }); - this.setState({ todoData: newTodoData }); + setTodoData(newTodoData); }; - render() { - return ( -