From 6c51e7081741567d9e80dc44a08caa3a954a4109 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 27 Jan 2026 14:39:00 +0100 Subject: [PATCH] Create createTaskBtn.jsx component --- .../createTaskBtn/createTaskBtn.jsx | 111 ++++++++++++++++++ .../createTaskBtn/createTaskBtn.module.css | 0 src/pages/eventDetail/eventDetail.jsx | 99 +--------------- 3 files changed, 113 insertions(+), 97 deletions(-) create mode 100644 src/pages/eventDetail/components/createTaskBtn/createTaskBtn.jsx create mode 100644 src/pages/eventDetail/components/createTaskBtn/createTaskBtn.module.css diff --git a/src/pages/eventDetail/components/createTaskBtn/createTaskBtn.jsx b/src/pages/eventDetail/components/createTaskBtn/createTaskBtn.jsx new file mode 100644 index 0000000..1995f34 --- /dev/null +++ b/src/pages/eventDetail/components/createTaskBtn/createTaskBtn.jsx @@ -0,0 +1,111 @@ +import styles from "../../eventDetail.module.css"; +import Button from "../../../../components/ui/button/button.jsx"; +import { useState } from "react"; +import TextInput from "../../../../components/ui/input/input.jsx"; +import Modal from "../../../../components/ui/modal/modal.jsx"; +import createTaskApi from "../../../../utils/tasks/createTask.js"; + +export default function CreateTaskBtn({ id }) { + + const [openTaskModal, setOpenTaskModal] = useState(false); + + const [taskName, setTaskName] = useState(""); + const [taskDescription, setTaskDescription] = useState(""); + const [taskLocation, setTaskLocation] = useState(""); + const [maxParticipants, setMaxParticipants] = useState(""); + const [startTime, setStartTime] = useState(""); + const [endTime, setEndTime] = useState(""); + + const createTask = async () => { + const success = await createTaskApi({ + eventId: id, + name: taskName, + description: taskDescription, + start: startTime, + end: endTime, + location: taskLocation, + maxParticipants, + }); + + if (success) { + setOpenTaskModal(false); + setTaskName(""); + setTaskDescription(""); + setTaskLocation(""); + setMaxParticipants(""); + setStartTime(""); + setEndTime(""); + } else { + console.log("⚠️ Échec de la création de la task"); + } + }; + + return <> + + + + setOpenTaskModal(false)} title={"Créer tâche"}> +
+ +
+

Nom de la tâche

+ setTaskName(e.target.value)} + placeholder="Nom de la tâche" + /> +
+ +
+

Description

+ setTaskDescription(e.target.value)} + placeholder="Description de la tâche" + /> +
+ +
+

Lieu

+ setTaskLocation(e.target.value)} + placeholder="Lieu" + /> +
+ +
+

Nombre maximum de participants

+ setMaxParticipants(e.target.value)} + placeholder="Participants max" + /> +
+ +
+

Heure de début

+ setStartTime(e.target.value)} + /> +
+ +
+

Heure de fin

+ setEndTime(e.target.value)} + /> +
+ + + +
+
+ + +} \ No newline at end of file diff --git a/src/pages/eventDetail/components/createTaskBtn/createTaskBtn.module.css b/src/pages/eventDetail/components/createTaskBtn/createTaskBtn.module.css new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/eventDetail/eventDetail.jsx b/src/pages/eventDetail/eventDetail.jsx index 18dd310..6484c9e 100644 --- a/src/pages/eventDetail/eventDetail.jsx +++ b/src/pages/eventDetail/eventDetail.jsx @@ -9,8 +9,7 @@ import Modal from "../../components/ui/modal/modal.jsx"; import { AuthContext } from "../../contexts/auth/AuthContext.js"; import { EventContext } from "../../contexts/events/EventContext.js"; import { useNavigate } from "react-router"; -import TextInput from "../../components/ui/input/input.jsx"; -import createTaskApi from "../../utils/tasks/createTask.js"; +import CreateTaskBtn from "./components/createTaskBtn/createTaskBtn.jsx"; function EventDetail() { @@ -24,14 +23,6 @@ function EventDetail() { const [open, setOpen] = useState(false); const [event, setEvent] = useState(null); - const [openTaskModal, setOpenTaskModal] = useState(false); - const [taskName, setTaskName] = useState(""); - const [taskDescription, setTaskDescription] = useState(""); - const [taskLocation, setTaskLocation] = useState(""); - const [maxParticipants, setMaxParticipants] = useState(""); - const [startTime, setStartTime] = useState(""); - const [endTime, setEndTime] = useState(""); - useEffect(() => { (async () => { @@ -53,30 +44,6 @@ function EventDetail() { } } - const createTask = async () => { - const success = await createTaskApi({ - eventId: id, - name: taskName, - description: taskDescription, - start: startTime, - end: endTime, - location: taskLocation, - maxParticipants, - }); - - if (success) { - setOpenTaskModal(false); - setTaskName(""); - setTaskDescription(""); - setTaskLocation(""); - setMaxParticipants(""); - setStartTime(""); - setEndTime(""); - } else { - console.log("⚠️ Échec de la création de la task"); - } - }; - return (
@@ -92,7 +59,7 @@ function EventDetail() {
{user?.isAdmin &&
- +
} @@ -114,68 +81,6 @@ function EventDetail() { - setOpenTaskModal(false)} title={"Créer tâche"}> -
- -
-

Nom de la tâche

- setTaskName(e.target.value)} - placeholder="Nom de la tâche" - /> -
- -
-

Description

- setTaskDescription(e.target.value)} - placeholder="Description de la tâche" - /> -
- -
-

Lieu

- setTaskLocation(e.target.value)} - placeholder="Lieu" - /> -
- -
-

Nombre maximum de participants

- setMaxParticipants(e.target.value)} - placeholder="Participants max" - /> -
- -
-

Heure de début

- setStartTime(e.target.value)} - /> -
- -
-

Heure de fin

- setEndTime(e.target.value)} - /> -
- - - -
-
);