import { Button, Container, Row, Col, Input, Modal, ModalHeader, ModalBody, ModalFooter, } from "reactstrap"; import { useState, useEffect } from "react"; import { TaskService } from "../sdk/taskService.sdk"; import { useNavigate } from "react-router-dom"; import TaskView from './TaskView'; import uuid from 'react-uuid'; import logo from './logo.png'; export default function AllTasks() { const navigate = useNavigate(); const [tasks, setTasks] = useState([]); const [modalAddTask, setModalAddTask] = useState(false); const toggleModalAddTask = () => { setModalAddTask(!modalAddTask); setTaskTitle(""); }; const [error, setError] = useState(""); const [taskTitle, setTaskTitle] = useState(""); let initialized = false // eslint-disable-next-line no-inner-declarations async function fetchTasks() { const res = await TaskService.getAllTasksByUser( localStorage.getItem("apiToken") || "", ); if (res.success) { setTasks(res.tasks); } } useEffect(() => { if (!initialized) { // eslint-disable-next-line react-hooks/exhaustive-deps initialized = true let token = localStorage.getItem("apiToken") if (!token) { token = uuid() localStorage.setItem("apiToken", token) } fetchTasks(); } }, []); async function handleDelete(id: string) { const res = await TaskService.deleteTask(localStorage.getItem("apiToken") || "", id); if (res.success) { navigate(0); } } async function handleEdit(id: string, title: string, solved: boolean) { console.log("handle edit called", id, title, solved) const res = await TaskService.updateTask( localStorage.getItem("apiToken") || "", id, title, solved ); if (res.success) { const newTasks = tasks.map((task) => { if (task.id === id) { task.title = title; task.solved = solved; } return task; }); setTasks(newTasks); } } async function handleAdd(e: any) { e.preventDefault(); setError(""); if (!taskTitle) { setError("Title is mandatory"); return; } const res = await TaskService.createTask( localStorage.getItem("apiToken") || "", taskTitle ); if (res.success) { setTasks([...tasks, res.task]); setTaskTitle(""); toggleModalAddTask(); } } return ( <> Add new task
{error}
setTaskTitle(e.target.value)} />
logo

Welcome to genezio!

You have successfully deployed your first genezio project!

Here you have a list of resources that you can use to learn how to continue building awesome projects with genezio:

{tasks.map((task: any) => ( ))}
); };