diff --git a/semana-9/todolist/src/App.jsx b/semana-9/todolist/src/App.jsx index 03851d0..ffa78a9 100644 --- a/semana-9/todolist/src/App.jsx +++ b/semana-9/todolist/src/App.jsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from "react"; +import { useState } from "react"; import { DeleteForm, InputTask, @@ -6,15 +6,11 @@ import { UpdateForm, CheckForm, } from "./components"; -import { - getTasks, - createTask, - updateTask, - deleteTask, -} from "./services/httpAPI"; +import { createTask, updateTask, deleteTask } from "./services/httpAPI"; +import useGetTasks from "./hooks/useGetTasks"; export default function App() { - const [listTasks, setListTask] = useState([]); + const { listTasks, setListTask } = useGetTasks(); const [task, setTask] = useState(""); const [currentTask, setCurrentTask] = useState(null); @@ -38,27 +34,16 @@ export default function App() { }; const handleListTask = async (task) => { - await createTask(task); + const newTask = await createTask(task); - const newTasks = [...listTasks, task]; + const newTasks = [...listTasks, newTask]; setListTask(newTasks); setTask(""); }; - const handleCurrentTask = (task) => { - // Paso 1: abrir el modal - handleOpen("edit"); - setCurrentTask(task); - }; - - const handleCurrentDeleteTask = (task) => { - setCurrentTask(task); - handleOpen("delete"); - }; - - const handleCurrentCheckTask = (task) => { + const handleCurrentTask = (task, modalType) => { + handleOpen(modalType); setCurrentTask(task); - handleOpen("check"); }; const handleUpdateTask = async (task, newText) => { @@ -88,15 +73,6 @@ export default function App() { handleOpen("delete"); }; - const fetchTasks = async () => { - const response = await getTasks(); - setListTask(response); - }; - - useEffect(function () { - fetchTasks(); - }, []); - return ( <>
@@ -110,18 +86,15 @@ export default function App() {

{task.text}

{task.status === 1 && (
- - - + +
)}
diff --git a/semana-9/todolist/src/hooks/useGetTasks.js b/semana-9/todolist/src/hooks/useGetTasks.js new file mode 100644 index 0000000..0be452c --- /dev/null +++ b/semana-9/todolist/src/hooks/useGetTasks.js @@ -0,0 +1,17 @@ +import { useState, useEffect } from "react"; +import { getTasks } from "../services/httpAPI"; + +export default function useGetTasks() { + const [listTasks, setListTask] = useState([]); + + const fetchTasks = async () => { + const response = await getTasks(); + setListTask(response); + }; + + useEffect(function () { + fetchTasks(); + }, []); + + return { listTasks, setListTask }; +}