Advertisement
Guest User

Untitled

a guest
Jun 25th, 2021
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. App.jsx
  2. import './App.css';
  3. import React, { useState } from "react";
  4. import Overview from "./components/Overview.jsx";
  5. import uniqid from "uniqid";
  6.  
  7. const App = () => {
  8.     const [tasks, setTasks] = useState([])
  9.     const [newTask, setNewTask] = useState({
  10.         text: '',
  11.             id: uniqid()
  12.     })
  13.  
  14.     const updateTasks = (e) => {
  15.         setNewTask({
  16.             text: e.target.value,
  17.             id: uniqid(),
  18.         })
  19.     }
  20.  
  21.     const submitTask = (e) => {
  22.         e.preventDefault();
  23.         if (newTask.text === '') return;
  24.         setTasks([...tasks, newTask])
  25.         setNewTask({
  26.             text: '',
  27.             id: uniqid()
  28.         })
  29.     }
  30.  
  31.     const deleteTask = (e) => {
  32.         const id = e.target.getAttribute("id")
  33.         setTasks(tasks.filter(task => task.id !== id))
  34.     }
  35.     return (
  36.         <div>
  37.             <form className="main-form" onSubmit={submitTask}>
  38.                 <label htmlFor="taskInput">Enter Task</label>
  39.                 <input
  40.                     onChange={updateTasks}
  41.                     value={newTask.text}
  42.                     type="text"
  43.                     id="taskInput"
  44.                 />
  45.                 <button type="submit">Submit</button>
  46.             </form>
  47.             <Overview tasks={ tasks } />
  48.         </div>
  49.     );
  50. }
  51.  
  52. Overview.jsx
  53.  
  54. import React from "react";
  55.  
  56. const Overview = ({ tasks }) => {
  57.     return (
  58.         <ul className="each-task">
  59.             {tasks.map((task) => {
  60.                 return (
  61.                     <li key={task.id}>{task.text}
  62.                         <button id={task.id}>Delete</button>
  63.                     </li>
  64.                 )})}
  65.         </ul>
  66.     )
  67. }
  68.  
  69. export default Overview;
  70.  
  71. export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement