Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, { useState } from 'react';
- import uuid from 'uuid/v4';
- const initialTodos = [
- {
- id: uuid(),
- task: 'Learn React',
- complete: true,
- },
- {
- id: uuid(),
- task: 'Learn Firebase',
- complete: true,
- },
- {
- id: uuid(),
- task: 'Learn GraphQL',
- complete: false,
- },
- ];
- const App = () => {
- const [todos, setTodos] = useState(initialTodos);
- const [task, setTask] = useState('');
- const handleChangeInput = event => {
- setTask(event.target.value);
- }
- const handleChangeCheckbox = id => {
- setTodos(
- todos.map(todo => {
- if (todo.id === id) {
- return { ...todo, complete: !todo.complete };
- } else {
- return todo;
- }
- })
- );
- };
- const handleSubmit = event => {
- if (task) {
- //add new todo item
- setTodos(todos.concat({ id: uuid(), task, complete: false }));
- }
- setTask('');
- event.preventDefault();
- }
- return (
- <div>
- <ul>
- {todos.map(todo => (
- <li key={todo.id}>
- <input
- type="checkbox"
- checked={todo.complete}
- onChange={() => handleChangeCheckbox(todo.id)}
- />
- <label>{todo.task}</label>
- </li>
- ))}
- </ul>
- <form onSubmit={handleSubmit}>
- <input type="text" value={task} onChange={handleChangeInput} />
- </form>
- {/* {task} */}
- </div>
- );
- }
- export default App;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement