From 9878357c71288b139daf6bf40d6f69e46e3e0609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ama=C3=ABl=20Kesteman?= Date: Wed, 7 Jan 2026 16:19:31 +0100 Subject: [PATCH] Feat: Ajout liste des sessions pour admin et coach --- front_end/src/components/edt_session.tsx | 2 +- front_end/src/components/ressourceList.tsx | 29 +++++++++++- front_end/src/components/ressourcePanel.tsx | 49 ++++++++++++++++----- 3 files changed, 67 insertions(+), 13 deletions(-) diff --git a/front_end/src/components/edt_session.tsx b/front_end/src/components/edt_session.tsx index 48e34db..7459e85 100644 --- a/front_end/src/components/edt_session.tsx +++ b/front_end/src/components/edt_session.tsx @@ -51,7 +51,7 @@ function EdtSession({session}:Props){
handleOpen()}>
{hoursToString(sDate)}
- {!session.isRecurrent &&
recurrent
} + {session.isRecurrent &&
recurrent
}
{session.name}
diff --git a/front_end/src/components/ressourceList.tsx b/front_end/src/components/ressourceList.tsx index 51ef72b..c597865 100644 --- a/front_end/src/components/ressourceList.tsx +++ b/front_end/src/components/ressourceList.tsx @@ -1,8 +1,9 @@ -import { Athlete, Activite, Coach } from "../classes"; +import { Athlete, Activite, Coach, Session } from "../classes"; type AthleteListProps = { athletes: Athlete[] }; type ActiviteListProps = { activites: Activite[] }; type CoachListProps = { coachs: Coach[] }; +type SessionListProps = { sessions: Session[]}; function AthleteList({ athletes }: AthleteListProps) { return ( @@ -52,4 +53,28 @@ function CoachList({ coachs }: CoachListProps) { ); } -export { AthleteList, ActiviteList, CoachList }; \ No newline at end of file +function SessionList({ sessions }: SessionListProps) { + return ( + + ); +} + +export { AthleteList, ActiviteList, CoachList , SessionList }; \ No newline at end of file diff --git a/front_end/src/components/ressourcePanel.tsx b/front_end/src/components/ressourcePanel.tsx index 1e99690..b46469e 100644 --- a/front_end/src/components/ressourcePanel.tsx +++ b/front_end/src/components/ressourcePanel.tsx @@ -1,13 +1,14 @@ import { useState } from "react"; import { useLocalData } from "../context/useLocalData"; -import { AthleteList, ActiviteList, CoachList} from "./ressourceList"; -import { Activite, Athlete, Coach } from "../classes"; +import { AthleteList, ActiviteList, CoachList, SessionList} from "./ressourceList"; +import { Activite, Athlete, Coach , Session } from "../classes"; export default function RessourcePanel() { const { user } = useLocalData(); const [showAthletes, setShowAthletes] = useState(false); const [showActivites, setShowActivites] = useState(false); - const [showCoach,setShowCoach] = useState(false); + const [showCoachs,setShowCoachs] = useState(false); + const [showSessions, setShowSessions] = useState(false); console.log("Rôle utilisateur:", user.role); if (user.role === "Athlete") return null; @@ -33,21 +34,41 @@ export default function RessourcePanel() { const allCoachs: Coach[] = Array.from(coachMap.values()); + const sessionMap: Map = new Map(); + user.sessions.forEach(session => { + sessionMap.set(session.id, session); + }); + + const allSessions: Session[] = Array.from(sessionMap.values()); + function onAthletesClick(): void { setShowAthletes(prev => !prev); setShowActivites(false); - setShowCoach(false); + setShowCoachs(false); + setShowSessions(false); + } function onActivitiesClick(): void { setShowActivites(prev => !prev); setShowAthletes(false); - setShowCoach(false); + setShowCoachs(false); + setShowSessions(false); + } function onCoachClick(): void { - setShowCoach(prev => !prev); + setShowCoachs(prev => !prev); setShowActivites(false); setShowAthletes(false); + setShowSessions(false); + + } + + function onSessionClick(): void { + setShowSessions(prev => !prev); + setShowActivites(false); + setShowAthletes(false); + setShowCoachs(false); } @@ -60,12 +81,13 @@ export default function RessourcePanel() { if (v === "athletes") onAthletesClick(); else if (v === "activites") onActivitiesClick(); else if (v === "coach") onCoachClick(); - else {setShowAthletes(false); setShowActivites(false); setShowCoach(false)} + else if (v === "session") onSessionClick(); + else {setShowAthletes(false); setShowActivites(false); setShowCoachs(false); setShowSessions(false)} }}> - {user.role === "Admin" && } + {showAthletes && ( @@ -82,13 +104,20 @@ export default function RessourcePanel() { )} - {showCoach && ( -
+ {showCoachs && ( +

Liste des coachs

)} + {showSessions && ( +
+

Liste des sessions

+ +
+ )} +