import styles from "./eventTask.module.css"; import { formatDateLetter } from "../../utils/date/formatDateLetter.js"; import Button from "../ui/button/button.jsx"; import assign from "../../utils/tasks/assign.js"; import unAssign from "../../utils/tasks/unAssign.js"; import { useEffect, useState } from "react"; import isAssigned from "../../utils/tasks/isAssigned.js"; import Modal from "../ui/modal/modal.jsx"; export default function EventTask({ task, index }) { const [assigned, setAssigned] = useState(false); const [open, setOpen] = useState(false); const [title, setTitle] = useState(""); const [message, setMessage] = useState(""); async function checkAssign() { const data = await isAssigned(task.id); setAssigned(data?.assigned); } useEffect(() => { checkAssign(); }, []) const handleRegisterBtn = async () => { const res = await assign(task.id); switch (res.status) { case 200: setTitle("Inscription réussie") setMessage(`Vous êtes maintenant inscrit à la tâche ${task.name}`); setOpen(true); setAssigned(true); break; case 409: setTitle("Erreur lors de l'inscription") setMessage("Vous êtes déjà inscrit à cette tâche") setOpen(true); break; case 403: setTitle("Erreur lors de l'inscription") setMessage("Le nombre maximum d'inscription pour cette tâche à été atteint") setOpen(true); break; } }; const handleUnassign = async () => { const res = await unAssign(task.id); switch (res.status) { case 200: setTitle("Désinscription réussie") setMessage(`Vous n'êtes plus inscrit à la tâche ${task.name}`); setOpen(true); setAssigned(false); break; case 409: setTitle("Erreur lors de la désinscription") setMessage(`Vous n'êtes pas inscrit à cette tâche`); setOpen(true); break; } }; return
{formatDateLetter(task.start)} - {formatDateLetter(task.end)}
{task.description}
{message}