Hide event tasks
This commit is contained in:
1 parent
c48bd0856f
commit
6723d42a5f
3 files changed
+34
-20
No files matched your search
@@ -0,0 +1,25 @@
|
|||||||
|
import styles from "./eventList.module.css";
|
||||||
|
import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
|
||||||
|
import { useState } from "react";
|
||||||
|
|
||||||
|
export default function EventItem({ eventGroup }) {
|
||||||
|
|
||||||
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
|
|
||||||
|
return <div key={eventGroup.date} className={`${styles.eventGroup} glassBorder`} onClick={() => setIsVisible(!isVisible)}>
|
||||||
|
<div className={styles.eventTitle}>
|
||||||
|
<p className={styles.title}>{eventGroup.name}</p>
|
||||||
|
<p>{formatDateLetter(eventGroup.start)}</p>
|
||||||
|
</div>
|
||||||
|
{isVisible &&
|
||||||
|
<ul className={styles.eventDetails}>
|
||||||
|
{eventGroup.tasks.map((task, i) => (
|
||||||
|
<li key={i} className={styles.eventTasks}>
|
||||||
|
<p>- {task.name} - {task.description}</p>
|
||||||
|
<p>{formatDateLetter(task.start)} - {formatDateLetter(task.end)}</p>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useMemo } from "react";
|
import { useMemo } from "react";
|
||||||
import styles from "./eventList.module.css";
|
import styles from "./eventList.module.css";
|
||||||
import { formatDateLetter } from "../../utils/date/formatDateLetter.js";
|
import EventItem from "./eventItem";
|
||||||
|
|
||||||
|
|
||||||
function EventList({ events }) {
|
function EventList({ events }) {
|
||||||
@@ -16,26 +16,11 @@ function EventList({ events }) {
|
|||||||
<div className={`${styles.glassCard} glassCard`}>
|
<div className={`${styles.glassCard} glassCard`}>
|
||||||
<h2>Liste des événements à venir</h2>
|
<h2>Liste des événements à venir</h2>
|
||||||
{sortedEvents.length > 0 ? (
|
{sortedEvents.length > 0 ? (
|
||||||
<ul className={styles.eventList}>
|
<div className={styles.eventList}>
|
||||||
{sortedEvents.map((eventGroup) => (
|
{sortedEvents.map((eventGroup, index) => (
|
||||||
<li key={eventGroup.date} className={`${styles.eventGroup} glassBorder`}>
|
<EventItem eventGroup={eventGroup} key={index} />
|
||||||
<div className={styles.eventTitle}>
|
|
||||||
<p className={styles.title}>{eventGroup.name}</p>
|
|
||||||
<p>{formatDateLetter(eventGroup.start)}</p>
|
|
||||||
</div>
|
|
||||||
{/* TODO: Faire une liste déroulante pour ne plus afficher les tache */}
|
|
||||||
<ul className={styles.eventDetails}>
|
|
||||||
{eventGroup.tasks.map((task, i) => (
|
|
||||||
<li key={i} className={styles.eventTasks}>
|
|
||||||
<p>- {task.name} - {task.description}</p>
|
|
||||||
<p>{formatDateLetter(task.start)} - {formatDateLetter(task.end)}</p>
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
))}
|
))}
|
||||||
</ul>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<p>Aucun événement planifié pour l'instant.</p>
|
<p>Aucun événement planifié pour l'instant.</p>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -54,6 +54,10 @@ h2{
|
|||||||
padding: 10px 20px 10px 20px;
|
padding: 10px 20px 10px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.eventGroup:hover{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.eventTitle {
|
.eventTitle {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|||||||
Reference in new issue
Block a user