Advertisement
AyanUpadhaya

Toto app in React JS

Dec 23rd, 2022
1,079
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //in App.js file
  2. import './App.css';
  3. import {useState} from 'react';
  4. import {Tasks} from './Tasks'
  5. let globalCount = 0
  6. function App(props){
  7.     const [task,setTask] = useState('')
  8.     const [todos,setTodos] = useState([])
  9.  
  10.     function addTodo(){
  11.         const newTask ={name:task,id:globalCount++,completed:false}
  12.         setTodos([...todos,newTask])
  13.     }
  14.  
  15.     function deleteTask(id){
  16.  
  17.         setTodos(todos.filter((item)=>id!==item.id))
  18.  
  19.     }
  20.  
  21.     function updateTask(id){
  22.         setTodos(
  23.             todos.map((item)=>{
  24.                 if(item.id == id){
  25.                     return {...item,completed:true}
  26.                 }else{
  27.                     return item
  28.                 }
  29.             })
  30.             )
  31.     }
  32.     return(
  33.         <div className="App" style={{marginTop: "20px"}} >
  34.         <input type="text" style={{width:"200px",padding:"5px"}} onChange={(event)=>setTask(event.target.value)} />
  35.         <button onClick={addTodo} style={{padding:"5px"}}>Add Task</button>
  36.         {todos.map((item)=><Tasks task={item.name} id={item.id} delete={deleteTask} update={updateTask} completed={item.completed}/>)}
  37.         </div>
  38.     )
  39. }
  40.  
  41. export default App;
  42.  
  43. //in Tasks.js file
  44. export const Tasks =(props)=>{
  45.     return (
  46.     <div>
  47.         <li style={{fontWeight:props.completed?"bold":null}}>
  48.             {props.task}
  49.         </li>
  50.         <button onClick = {()=>props.delete(props.id)}>Delete</button>
  51.         <button onClick = {()=>props.update(props.id)}>Update</button>
  52.     </div>
  53.     )
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement