Add unassign btn
This commit is contained in:
1 parent
6d15582819
commit
6165978ef3
2 files changed
+60
-3
No files matched your search
@@ -2,6 +2,7 @@ import styles from "./eventTask.module.css";
|
|||||||
import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
|
import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
|
||||||
import Button from "../ui/button/button.jsx";
|
import Button from "../ui/button/button.jsx";
|
||||||
import assign from "../../utils/tasks/assign.js";
|
import assign from "../../utils/tasks/assign.js";
|
||||||
|
import unAssign from "../../utils/tasks/unAssign.js";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import isAssigned from "../../utils/tasks/isAssigned.js";
|
import isAssigned from "../../utils/tasks/isAssigned.js";
|
||||||
import Modal from "../ui/modal/modal.jsx";
|
import Modal from "../ui/modal/modal.jsx";
|
||||||
@@ -24,13 +25,13 @@ export default function EventTask({ task, index }) {
|
|||||||
|
|
||||||
const handleRegisterBtn = async () => {
|
const handleRegisterBtn = async () => {
|
||||||
const res = await assign(task.id);
|
const res = await assign(task.id);
|
||||||
checkAssign();
|
|
||||||
|
|
||||||
switch (res.status) {
|
switch (res.status) {
|
||||||
case 200:
|
case 200:
|
||||||
setTitle("Inscription réussie")
|
setTitle("Inscription réussie")
|
||||||
setMessage(`Vous êtes maintenant inscrit à la tâche ${task.name}`);
|
setMessage(`Vous êtes maintenant inscrit à la tâche ${task.name}`);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
|
setAssigned(true);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 409:
|
case 409:
|
||||||
@@ -47,6 +48,25 @@ export default function EventTask({ task, index }) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 <div style={{"--i": index}} key={index} className={styles.content}>
|
return <div style={{"--i": index}} key={index} className={styles.content}>
|
||||||
<div className={styles.task}>
|
<div className={styles.task}>
|
||||||
<div>
|
<div>
|
||||||
@@ -55,9 +75,9 @@ export default function EventTask({ task, index }) {
|
|||||||
<p>{task.description}</p>
|
<p>{task.description}</p>
|
||||||
</div>
|
</div>
|
||||||
{assigned ?
|
{assigned ?
|
||||||
<Button variant={"danger"} onClick={() => handleRegisterBtn(task.id)}> Se désinscrire </Button>
|
<Button variant={"danger"} onClick={() => handleUnassign()}> Se désinscrire </Button>
|
||||||
:
|
:
|
||||||
<Button onClick={() => handleRegisterBtn(task.id)}> S’inscrire </Button>
|
<Button onClick={() => handleRegisterBtn()}> S’inscrire </Button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import getXSRFToken from "../getXSRF.js";
|
||||||
|
|
||||||
|
export default async function unAssign(taskId) {
|
||||||
|
const csrfToken = await getXSRFToken();
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await fetch(
|
||||||
|
`http://${import.meta.env.VITE_API_URL}/api/events/task/unassign`,
|
||||||
|
{
|
||||||
|
method: 'POST',
|
||||||
|
credentials: 'include',
|
||||||
|
headers: {
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'X-XSRF-TOKEN': csrfToken,
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
task_id: taskId
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
const data = await res.json();
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: res.status,
|
||||||
|
message: data?.message ?? null,
|
||||||
|
};
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
console.error("❌ Erreur réseau :", err);
|
||||||
|
return {
|
||||||
|
status: 0,
|
||||||
|
message: "Network error",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user