Allow user to assign to a task
This commit is contained in:
@@ -4,6 +4,7 @@ import { useParams } from "react-router";
|
||||
import getEventById from "../../utils/event/getEventById.js";
|
||||
import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
|
||||
import Button from "../../components/ui/button/button.jsx";
|
||||
import assign from "../../utils/tasks/assign.js";
|
||||
|
||||
|
||||
function EventDetail() {
|
||||
@@ -20,11 +21,16 @@ function EventDetail() {
|
||||
}) ()
|
||||
}, [])
|
||||
|
||||
const handleRegisterBtn = async (eventId) => {
|
||||
console.log(eventId);
|
||||
await assign(eventId);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.allContent}>
|
||||
<div className={`glassCard`}>
|
||||
<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}>
|
||||
<h2>{event?.name}</h2>
|
||||
<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>{task.description}</p>
|
||||
</div>
|
||||
|
||||
<Button> {task.registered ? "Se désinscrire" : "S’inscrire"} </Button>
|
||||
<Button onClick={() => handleRegisterBtn(task.id)}> S’inscrire </Button>
|
||||
</div>
|
||||
</li>
|
||||
))}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user