Feat: Ajout de la liste pour les coachs visible que par les admins et la classe de test avec

This commit is contained in:
Amaël Kesteman
2026-01-07 14:23:15 +01:00
parent 57cd52ca3d
commit 30b27e7420
4 changed files with 92 additions and 16 deletions

View File

@@ -1,13 +1,15 @@
import { useState } from "react";
import { useLocalData } from "../context/useLocalData";
import { AthleteList, ActiviteList } from "./ressourceList";
import { Activite, Athlete } from "../classes";
// import { Dropdown } from "react-bootstrap"; // not used
import { AthleteList, ActiviteList, CoachList} from "./ressourceList";
import { Activite, Athlete, Coach } from "../classes";
export default function RessourcePanel() {
const { user } = useLocalData();
const [showAthletes, setShowAthletes] = useState(false);
const [showActivites, setShowActivites] = useState(false);
const [showCoach,setShowCoach] = useState(false);
console.log("Rôle utilisateur:", user.role);
if (user.role === "Athlete") return null;
const athleteMap: Map<number, Athlete> = new Map();
@@ -22,13 +24,31 @@ export default function RessourcePanel() {
});
const allActivites: Activite[] = Array.from(activiteMap.values());
const coachMap: Map<number, Coach> = new Map();
user.sessions.forEach(session => {
if (session.coach) {
coachMap.set(session.coach.id, session.coach);
}
});
const allCoachs: Coach[] = Array.from(coachMap.values());
function onAthletesClick(): void {
setShowAthletes(prev => !prev);
setShowActivites(false);
setShowCoach(false);
}
function onActivitiesClick(): void {
setShowActivites(prev => !prev);
setShowAthletes(false);
setShowCoach(false);
}
function onCoachClick(): void {
setShowCoach(prev => !prev);
setShowActivites(false);
setShowAthletes(false);
}
@@ -39,28 +59,38 @@ export default function RessourcePanel() {
const v = (e.target as HTMLSelectElement).value;
if (v === "athletes") onAthletesClick();
else if (v === "activites") onActivitiesClick();
else {setShowAthletes(false); setShowActivites(false);
}
else if (v === "coach") onCoachClick();
else {setShowAthletes(false); setShowActivites(false); setShowCoach(false)}
}}>
<option>Choissisez la ressource</option>
<option value="athletes">Athlètes</option>
<option value="activites">Activités</option>
{user.role === "Admin" && <option value="coach"> Coach</option>}
</select>
{showAthletes && (
<div className="edt_athletes_panel">
<h3>Liste des athlètes</h3>
<AthleteList athletes={allAthletes} activites={[]}/>
<AthleteList athletes={allAthletes} />
</div>
)}
{showActivites && (
<div className="edt_activites_panel">
<h3>Liste des activités</h3>
<ActiviteList athletes={[]} activites={allActivites} />
<ActiviteList activites={allActivites} />
</div>
)}
{showCoach && (
<div className="edt_coach_panel">
<h3>Liste des coachs</h3>
<CoachList coachs={allCoachs} />
</div>
)}
</div>
);
}