Allow user to assign to a task

This commit is contained in:
T'JAMPENS QUENTIN p2406187 committed 2026-01-12 14:11:51 +01:00
1 parent bb369c629b
commit 00142f1e3e
2 files changed
+40 -3

No files matched your search

+8 -3
View File
@@ -4,6 +4,7 @@ import { useParams } from "react-router";
import getEventById from "../../utils/event/getEventById.js"; import getEventById from "../../utils/event/getEventById.js";
import { formatDateLetter } from "../../utils/date/formatDateLetter.js"; import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
import Button from "../../components/ui/button/button.jsx"; import Button from "../../components/ui/button/button.jsx";
import assign from "../../utils/tasks/assign.js";
function EventDetail() { function EventDetail() {
@@ -20,11 +21,16 @@ function EventDetail() {
}) () }) ()
}, []) }, [])
const handleRegisterBtn = async (eventId) => {
console.log(eventId);
await assign(eventId);
}
return ( return (
<div className={styles.allContent}> <div className={styles.allContent}>
<div className={`glassCard`}> <div className={`glassCard`}>
<div className={styles.textImage}> <div className={styles.textImage}>
<img src="/public/icons/theme/dark.svg" alt="Illustration événement" className={styles.eventImage}/> <img src="/icons/theme/dark.svg" alt="Illustration événement" className={styles.eventImage}/>
<div className={styles.eventInfo}> <div className={styles.eventInfo}>
<h2>{event?.name}</h2> <h2>{event?.name}</h2>
<p>{event && formatDateLetter(event.start)}</p> <p>{event && formatDateLetter(event.start)}</p>
@@ -42,8 +48,7 @@ function EventDetail() {
<p className={styles.taskDate}> {event && formatDateLetter(task.start)} - {event && formatDateLetter(task.end)} </p> <p className={styles.taskDate}> {event && formatDateLetter(task.start)} - {event && formatDateLetter(task.end)} </p>
<p>{task.description}</p> <p>{task.description}</p>
</div> </div>
<Button onClick={() => handleRegisterBtn(task.id)}> S’inscrire </Button>
<Button> {task.registered ? "Se désinscrire" : "S’inscrire"} </Button>
</div> </div>
</li> </li>
))} ))}
+32
View File
@@ -0,0 +1,32 @@
import getXSRFToken from "../getXSRF.js";
export default async function assign(taskId) {
const csrfToken = await getXSRFToken();
try {
const res = await fetch(`http://${import.meta.env.VITE_API_URL}/api/events/task/assign`, {
method: 'POST',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-XSRF-TOKEN': csrfToken,
},
body: JSON.stringify({
task_id: taskId
}),
});
if (!res.ok) {
throw new Error(`Erreur serveur : ${res.status}`);
}
const data = await res.json();
return data;
} catch (err) {
console.error('Erreur :', err);
return null;
}
}