diff --git a/frontend/src/pages/Tasks.tsx b/frontend/src/pages/Tasks.tsx index 601c6bc..6639010 100644 --- a/frontend/src/pages/Tasks.tsx +++ b/frontend/src/pages/Tasks.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { getUserTasks, createTask, deleteTask } from "../api/tasks"; import { logout } from "../api/auth"; +import api from "../api/api"; import Cookies from "js-cookie"; // Define Task type @@ -30,7 +31,7 @@ const Tasks = () => { const tasksData = await getUserTasks(userId); setTasks(tasksData); } catch (error) { - console.error("Błąd pobierania zadań:", error); + console.error("Error during tasks fetching:", error); } }; @@ -48,7 +49,7 @@ const Tasks = () => { setTasks([...tasks, task]); // List update setNewTask({ title: "", description: "", due_date: "", done: false }); // Form reset } catch (error) { - console.error("Błąd tworzenia zadania:", error); + console.error("Error during task creation:", error); } }; @@ -57,7 +58,26 @@ const Tasks = () => { await deleteTask(taskId); setTasks(tasks.filter((task) => task.id !== taskId)); } catch (error) { - console.error("Błąd usuwania zadania:", error); + console.error("Error during task deletion:", error); + } + }; + + // Change task status + const handleToggleTaskStatus = async (taskId: number) => { + try { + const updatedTasks = tasks.map(task => { + if (task.id === taskId) { + const newStatus = !task.done; + // Send PATCH request to backend + api.patch(`/tasks/${task.id}`, { done: newStatus }); + // Change local state + return { ...task, done: newStatus }; + } + return task; + }); + setTasks(updatedTasks); // refresh UI + } catch (err) { + console.error("Error during task update:", err); } }; @@ -108,7 +128,9 @@ const Tasks = () => {
{task.description}
Termin: {task.due_date}
-Status: {task.done ? "✅ Zrobione" : "⏳ Do zrobienia"}
+Status: {task.done ? "✅ Zrobione" : "⏳ Do zrobienia"} + handleToggleTaskStatus(task.id)}/> +