Display data

This commit is contained in:
T'JAMPENS QUENTIN p2406187
2026-01-12 00:51:57 +01:00
parent 101a3bc7b1
commit bb369c629b
2 changed files with 31 additions and 51 deletions
+25 -39
View File
@@ -1,37 +1,24 @@
import {useState} from "react"; import { useState, useEffect } from "react";
import styles from "./eventDetail.module.css"; import styles from "./eventDetail.module.css";
import { useParams } from "react-router"; 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";
function eventDetail() { function EventDetail() {
const params = useParams(); const params = useParams();
const id = params.id; const id = params.id;
const [tasks, setTasks] = useState([ const [event, setEvent] = useState(null);
{ text: "Préparer les slides", registered: false },
{ text: "Réserver la salle", registered: false },
{ text: "Envoyer les invitations", registered: false },
{ text: "Tester la configuration technique", registered: false },
{ text: "Organiser le catering", registered: false },
]);
const event = { useEffect(() => {
title: "Conférence React 2025", (async () => {
date: "27 Décembre 2025", const e = await getEventById(id);
location: "Paris, France", setEvent(e);
description: "azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop azertyuiop" }) ()
}; }, [])
const toggleRegister = (index) => {
setTasks((prevTasks) =>
prevTasks.map((task, i) =>
i === index
? { ...task, registered: !task.registered }
: task
)
);
};
return ( return (
<div className={styles.allContent}> <div className={styles.allContent}>
@@ -39,25 +26,24 @@ function eventDetail() {
<div className={styles.textImage}> <div className={styles.textImage}>
<img src="/public/icons/theme/dark.svg" alt="Illustration événement" className={styles.eventImage}/> <img src="/public/icons/theme/dark.svg" alt="Illustration événement" className={styles.eventImage}/>
<div className={styles.eventInfo}> <div className={styles.eventInfo}>
<h2>{event.title}</h2> <h2>{event?.name}</h2>
<p>Date: {event.date}</p> <p>{event && formatDateLetter(event.start)}</p>
<p>Lieu: {event.location}</p> <p>{event?.description}</p>
<p>Description: {event.description}</p>
</div> </div>
</div> </div>
<h2>Tâches</h2> <h2>Tâches</h2>
<ul className={styles.tasks}> <ul className={styles.tasks}>
{tasks.map((task, index) => ( {event?.tasks?.map((task, index) => (
<li style={{"--i": index}} key={index}> <li style={{"--i": index}} key={index}>
<div className={styles.tasksButton}> <div className={styles.task}>
<span><strong>{task.text}</strong></span> <div>
<button <span><strong>{task.name}</strong></span>
className={styles.registerButton} <p className={styles.taskDate}> {event && formatDateLetter(task.start)} - {event && formatDateLetter(task.end)} </p>
onClick={() => toggleRegister(index)} <p>{task.description}</p>
> </div>
{task.registered ? "Se désinscrire" : "Sinscrire"}
</button> <Button> {task.registered ? "Se désinscrire" : "Sinscrire"} </Button>
</div> </div>
</li> </li>
))} ))}
@@ -67,4 +53,4 @@ function eventDetail() {
); );
} }
export default eventDetail; export default EventDetail;
+6 -12
View File
@@ -38,24 +38,14 @@
flex-shrink: 0; flex-shrink: 0;
} }
.registerButton {
margin-left: auto;
padding: 5px 10px;
border-radius: 12px;
border: none;
cursor: pointer;
background: #019AFF;
color: white;
font-weight: 600;
}
.registerButton:hover { .registerButton:hover {
opacity: 0.85; opacity: 0.85;
} }
.tasksButton { .task {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
gap: 16px; gap: 16px;
} }
@@ -64,6 +54,10 @@
padding: 0; padding: 0;
} }
.taskDate {
opacity: 0.5;
}
.tasks li { .tasks li {
margin: 16px 0px 16px 0px; margin: 16px 0px 16px 0px;
padding: 10px 20px 10px 20px; padding: 10px 20px 10px 20px;