diff --git a/front_end/src/classes.tsx b/front_end/src/classes.tsx index 739e1cf..d4c6dd9 100644 --- a/front_end/src/classes.tsx +++ b/front_end/src/classes.tsx @@ -8,6 +8,13 @@ export class User{ role!: Role; } +export class Ligne{ + id!: number; + nom!: String; + composition!: Athlete[] //les joueurs compososant la ligne + tempsDeJeu!: number; // en minutes +} + export class Admin extends User{ role!: Role; @@ -37,6 +44,7 @@ export class Session{ athletes!: Athlete[] duree! : number; groupe! : Groupe; + ligne! : Ligne[]; } export class Activite{ @@ -54,24 +62,6 @@ export function getUserTest():User{ const s1 = new Session(); const s2 = new Session(); const s3 = new Session(); - user.id = 0; - user.nom = "Emilien-Yee NootNoot"; - user.role = "Coach" - s1.creneau = new Date(); - s1.id = 1; - s1.name = "Entrainement Frisbee" - s1.isRecurrent = true; - var date2 = new Date(); - date2.setDate(date2.getDate() + 2); - s2.creneau = date2; - s2.id = 2; - s2.isRecurrent = false; - s2.name = "entraintement 2" - s3.creneau = date2; - s3.id = 3; - s3.isRecurrent = false; - s3.name = "entraintement 3" - const athlete1 = new Athlete(); athlete1.id = 1; athlete1.nom = "Alice Dupont"; @@ -87,6 +77,49 @@ export function getUserTest():User{ athlete3.nom = "Clara Lopez"; athlete3.groupe = "Loisir"; + const ligne1 = new Ligne(); + ligne1.id = 1; + ligne1.nom = "Ligne A"; + ligne1.composition = [athlete1, athlete2]; // Alice + Bob + ligne1.tempsDeJeu = 45; + + const ligne2 = new Ligne(); + ligne2.id = 2; + ligne2.nom = "Ligne B"; + ligne2.composition = [athlete2, athlete3]; // Bob + Clara + ligne2.tempsDeJeu = 40; + + const ligne3 = new Ligne(); + ligne3.id = 3; + ligne3.nom = "Ligne C"; + ligne3.composition = [athlete1, athlete3]; // Alice + Clara + ligne3.tempsDeJeu = 50; + + + + user.id = 0; + user.nom = "Emilien-Yee NootNoot"; + user.role = "Coach" + s1.creneau = new Date(); + s1.id = 1; + s1.name = "Entrainement Frisbee" + s1.isRecurrent = true; + s1.ligne = [ligne1]; + var date2 = new Date(); + date2.setDate(date2.getDate() + 2); + s2.creneau = date2; + s2.id = 2; + s2.isRecurrent = false; + s2.name = "entraintement 2" + s2.ligne = [ligne2]; + s3.creneau = date2; + s3.id = 3; + s3.isRecurrent = false; + s3.name = "entraintement 3" + s3.ligne = [ligne3]; + + + s1.athletes = [athlete1, athlete2]; s2.athletes = [athlete2, athlete3]; s3.athletes = [athlete1, athlete3]; diff --git a/front_end/src/components/ressourceList.tsx b/front_end/src/components/ressourceList.tsx index c597865..b21912a 100644 --- a/front_end/src/components/ressourceList.tsx +++ b/front_end/src/components/ressourceList.tsx @@ -1,9 +1,10 @@ -import { Athlete, Activite, Coach, Session } from "../classes"; +import { Athlete, Activite, Coach, Session, Ligne } from "../classes"; type AthleteListProps = { athletes: Athlete[] }; type ActiviteListProps = { activites: Activite[] }; type CoachListProps = { coachs: Coach[] }; type SessionListProps = { sessions: Session[]}; +type LigneListProps = { lignes: Ligne[]}; function AthleteList({ athletes }: AthleteListProps) { return ( @@ -70,6 +71,9 @@ function SessionList({ sessions }: SessionListProps) {
Coach: {sessions.coach ? sessions.coach.nom : "Pas de coach sur la séance"}
+
+ Ligne: {sessions.ligne ? sessions.ligne.map(ligne => ligne.nom).join(", ") : "Pas de ligne sur la séance"} +
))} @@ -77,4 +81,33 @@ function SessionList({ sessions }: SessionListProps) { ); } -export { AthleteList, ActiviteList, CoachList , SessionList }; \ No newline at end of file +function LigneList({ lignes }: LigneListProps) { + return ( + + ); +} + +export { AthleteList, ActiviteList, CoachList , SessionList, LigneList }; \ No newline at end of file diff --git a/front_end/src/components/ressourcePanel.tsx b/front_end/src/components/ressourcePanel.tsx index b46469e..57f8661 100644 --- a/front_end/src/components/ressourcePanel.tsx +++ b/front_end/src/components/ressourcePanel.tsx @@ -1,125 +1,163 @@ -import { useState } from "react"; -import { useLocalData } from "../context/useLocalData"; -import { AthleteList, ActiviteList, CoachList, SessionList} from "./ressourceList"; -import { Activite, Athlete, Coach , Session } from "../classes"; + import { useState } from "react"; + import { useLocalData } from "../context/useLocalData"; + import { AthleteList, ActiviteList, CoachList, SessionList, LigneList} from "./ressourceList"; + import { Activite, Athlete, Coach , Session, Ligne } from "../classes"; -export default function RessourcePanel() { - const { user } = useLocalData(); - const [showAthletes, setShowAthletes] = useState(false); - const [showActivites, setShowActivites] = 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; + export default function RessourcePanel() { + const { user } = useLocalData(); + const [showAthletes, setShowAthletes] = useState(false); + const [showActivites, setShowActivites] = useState(false); + const [showCoachs,setShowCoachs] = useState(false); + const [showSessions, setShowSessions] = useState(false); + const [showLignes, setShowLignes] = useState(false); + console.log("Rôle utilisateur:", user.role); + if (user.role === "Athlete") return null; - const athleteMap: Map = new Map(); - user.sessions.forEach(session => { - session.athletes?.forEach(a => athleteMap.set(a.id, a)); - }); - const allAthletes: Athlete[] = Array.from(athleteMap.values()); + const athleteMap: Map = new Map(); + user.sessions.forEach(session => { + session.athletes?.forEach(a => athleteMap.set(a.id, a)); + }); + const allAthletes: Athlete[] = Array.from(athleteMap.values()); - const activiteMap: Map = new Map(); - user.sessions.forEach(session => { - session.activites?.forEach(act => activiteMap.set(act.id, act)); - }); - const allActivites: Activite[] = Array.from(activiteMap.values()); + const activiteMap: Map = new Map(); + user.sessions.forEach(session => { + session.activites?.forEach(act => activiteMap.set(act.id, act)); + }); + const allActivites: Activite[] = Array.from(activiteMap.values()); - const coachMap: Map = new Map(); - user.sessions.forEach(session => { - if (session.coach) { - coachMap.set(session.coach.id, session.coach); - } - }); + const coachMap: Map = new Map(); + user.sessions.forEach(session => { + if (session.coach) { + coachMap.set(session.coach.id, session.coach); + } + }); - const allCoachs: Coach[] = Array.from(coachMap.values()); + const allCoachs: Coach[] = Array.from(coachMap.values()); - const sessionMap: Map = new Map(); - user.sessions.forEach(session => { - sessionMap.set(session.id, session); - }); + const sessionMap: Map = new Map(); + user.sessions.forEach(session => { + sessionMap.set(session.id, session); + }); - const allSessions: Session[] = Array.from(sessionMap.values()); + const allSessions: Session[] = Array.from(sessionMap.values()); - function onAthletesClick(): void { - setShowAthletes(prev => !prev); - setShowActivites(false); - setShowCoachs(false); - setShowSessions(false); + const ligneMap: Map = new Map(); + user.sessions.forEach(session => { + if (session.ligne) { - } - function onActivitiesClick(): void { - setShowActivites(prev => !prev); - setShowAthletes(false); - setShowCoachs(false); - setShowSessions(false); + session.ligne.forEach(ligne => { + ligneMap.set(ligne.id, ligne); + }); + } + }); + + const allLignes: Ligne[] = Array.from(ligneMap.values()); + + function onAthletesClick(): void { + setShowAthletes(prev => !prev); + setShowActivites(false); + setShowCoachs(false); + setShowSessions(false); + setShowLignes(false); + + } + function onActivitiesClick(): void { + setShowActivites(prev => !prev); + setShowAthletes(false); + setShowCoachs(false); + setShowSessions(false); + setShowLignes(false); - } - function onCoachClick(): void { - setShowCoachs(prev => !prev); - setShowActivites(false); - setShowAthletes(false); - setShowSessions(false); + } + function onCoachClick(): void { + setShowCoachs(prev => !prev); + setShowActivites(false); + setShowAthletes(false); + setShowSessions(false); + setShowLignes(false); - } + } - function onSessionClick(): void { - setShowSessions(prev => !prev); - setShowActivites(false); - setShowAthletes(false); - setShowCoachs(false); + function onSessionClick(): void { + setShowSessions(prev => !prev); + setShowActivites(false); + setShowAthletes(false); + setShowCoachs(false); + setShowLignes(false); - } + } + + function onLigneClick():void{ + setShowLignes(prev => !prev); + setShowAthletes(false); + setShowActivites(false); + setShowCoachs(false); + setShowSessions(false); + } - return ( -
- + return ( +
+
+ Sélectionner une ressource: +
+ - {showActivites && ( -
-

Liste des activités

- -
- )} + {showAthletes && ( +
+

Liste des athlètes

+ +
+ )} - {showCoachs && ( -
-

Liste des coachs

- -
- )} + {showActivites && ( +
+

Liste des activités

+ +
+ )} - {showSessions && ( -
-

Liste des sessions

- -
- )} + {showCoachs && ( +
+

Liste des coachs

+ +
+ )} + + {showSessions && ( +
+

Liste des sessions

+ +
+ )} + + {showLignes && ( +
+

Liste des lignes

+ +
+ )} -
- ); -} +
+ ); + }