Advertisement
Guest User

Untitled

a guest
Aug 25th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { useState } from 'react';
  2. import './App.css';
  3.  
  4.  
  5.  
  6.  
  7. const App = () => {
  8.   const [tasks, setTasks] = useState([
  9.     {
  10.       done: true,
  11.       text: "hello",
  12.     },
  13.     {
  14.       done: true,
  15.       text: "test",
  16.     },
  17.   ])
  18.   const [newTaskText, setNewTaskText] = useState("")
  19.   const updateNewTaskText = event => setNewTaskText(event.target.value)
  20.   const addTask = event => {
  21.     if (newTaskText) {
  22.       setTasks([{ text: newTaskText, done: false }, ...tasks])
  23.       setNewTaskText("")
  24.     } else {
  25.       alert("text is empty")
  26.     }
  27.   }
  28.   return (
  29.     <div className="App">
  30.  
  31.       <div id="myDIV" className="header">
  32.         <h2>My To Do List</h2>
  33.         <input type="text" onChange={updateNewTaskText} id="myInput" placeholder="Title..." value={newTaskText} />
  34.         <span className="addBtn" onClick={addTask}>Add</span>
  35.       </div>
  36.  
  37.       <ul id="myUL">
  38.         {
  39.           tasks.map((task, index) => (
  40.             <li
  41.               key={index}
  42.               index={index}
  43.               className={task.done ? "checked" : ""}
  44.             >
  45.               <span
  46.                 onClick={() => setTasks(tasks.map((taskInner, indexInner) => index == indexInner ? Object.assign(taskInner, { done: !taskInner.done }) : taskInner))}
  47.               >
  48.                 {task.text}
  49.               </span>
  50.               <span
  51.                 onClick={() => setTasks(tasks.filter((t, i) => index !== i))}
  52.  
  53.                 className="close">x</span>
  54.             </li>
  55.           ))
  56.         }
  57.  
  58.       </ul>
  59.  
  60.     </div>
  61.   )
  62. }
  63.  
  64. export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement