DeleteTask feature
This commit is contained in:
1 parent
56964285b9
commit
6336627ef5
6 files changed
+95
-9
No files matched your search
@@ -3,11 +3,15 @@ import { formatDateLetter } from "../../../../utils/date/formatDateLetter.js";
|
||||
import Button from "../../../../components/ui/button/button.jsx";
|
||||
import assign from "../../../../utils/tasks/assign.js";
|
||||
import unAssign from "../../../../utils/tasks/unAssign.js";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useContext, useEffect, useState } from "react";
|
||||
import isAssigned from "../../../../utils/tasks/isAssigned.js";
|
||||
import Modal from "../../../../components/ui/modal/modal.jsx";
|
||||
import { AuthContext } from "../../../../contexts/auth/AuthContext.js";
|
||||
import DeleteTaskBtn from "../deleteTaskBtn/deleteTaskBtn.jsx";
|
||||
|
||||
export default function EventTask({ task, index }) {
|
||||
export default function EventTask({ task, index, eventId }) {
|
||||
|
||||
const { user } = useContext(AuthContext)
|
||||
|
||||
const [assigned, setAssigned] = useState(false);
|
||||
const [open, setOpen] = useState(false);
|
||||
@@ -23,6 +27,7 @@ export default function EventTask({ task, index }) {
|
||||
checkAssign();
|
||||
}, [])
|
||||
|
||||
|
||||
const handleRegisterBtn = async () => {
|
||||
const res = await assign(task.id);
|
||||
|
||||
@@ -74,11 +79,14 @@ export default function EventTask({ task, index }) {
|
||||
<p className={styles.taskDate}> {formatDateLetter(task.start)} - {formatDateLetter(task.end)} </p>
|
||||
<p>{task.description}</p>
|
||||
</div>
|
||||
{assigned ?
|
||||
<Button variant={"danger"} onClick={() => handleUnassign()}> Se désinscrire </Button>
|
||||
:
|
||||
<Button onClick={() => handleRegisterBtn()}> S’inscrire </Button>
|
||||
}
|
||||
<div className={styles.manageTaskBtn}>
|
||||
{assigned ?
|
||||
<Button variant={"danger"} onClick={() => handleUnassign()}> Se désinscrire </Button>
|
||||
:
|
||||
<Button onClick={() => handleRegisterBtn()}> S’inscrire </Button>
|
||||
}
|
||||
<DeleteTaskBtn eventId={eventId} taskId={task.id} taskName={task.name} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Modal open={open} onClose={setOpen} title={title}>
|
||||
|
||||
@@ -9,6 +9,12 @@
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.manageTaskBtn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: 16px 0px 16px 0px;
|
||||
padding: 10px 20px 10px 20px;
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { useContext } from "react";
|
||||
import { AuthContext } from "../../../../contexts/auth/AuthContext.js";
|
||||
import { EventDetailContext } from "../../../../contexts/eventDetail/eventDetail.js";
|
||||
import Button from "../../../../components/ui/button/button.jsx";
|
||||
import { useState } from "react";
|
||||
import Modal from "../../../../components/ui/modal/modal.jsx";
|
||||
import styles from "../../eventDetail.module.css";
|
||||
|
||||
export default function DeleteTaskBtn({ taskId, eventId, taskName }) {
|
||||
|
||||
const { user } = useContext(AuthContext)
|
||||
const { deleteTask } = useContext(EventDetailContext)
|
||||
|
||||
const [openModal, setOpenModal] = useState(false);
|
||||
|
||||
if(!user?.isAdmin) return null;
|
||||
|
||||
return <>
|
||||
<Button variant={"danger"} onClick={() => setOpenModal(true)}> Supprimer </Button>
|
||||
|
||||
<Modal open={openModal} onClose={setOpenModal} title={"Suppression"}>
|
||||
<div className={styles.modalContent}>
|
||||
<p className={styles.modalContent}>Etes-vous sur de vouloir supprimer la tâche {taskName} ? </p>
|
||||
<Button variant={"danger"} onClick={() => deleteTask(taskId, eventId)}> Confirmer </Button>
|
||||
</div>
|
||||
</Modal>
|
||||
</>
|
||||
}
|
||||
Reference in new issue
Block a user