Merge remote-tracking branch 'origin/main'

# Conflicts:
#	front_end/src/components/ressourcePanel.tsx
This commit is contained in:
tuanvu
2026-01-08 08:59:19 +01:00
9 changed files with 69 additions and 82 deletions

View File

@@ -1,15 +1,17 @@
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";
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";
import {calculTempsDeJeuParLigne} from "../utils/ligneUtils";
import { keyboard } from "@testing-library/user-event/dist/keyboard";
import { unescapeLeadingUnderscores } from "typescript";
export type keyWord = "athletes" | "activites" | "coachs" | "sessions"| "lignes";
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);
const [value,setValue] = useState<keyWord>("athletes");
console.log("Rôle utilisateur:", user.role);
console.log(user.nom);
console.log(user.prenom);
@@ -55,51 +57,18 @@
}
});
const allLignes: Ligne[] = Array.from(ligneMap.values());
function onAthletesClick(): void {
setShowAthletes(prev => !prev);
setShowActivites(false);
setShowCoachs(false);
setShowSessions(false);
setShowLignes(false);
const allLignes: Ligne[] = Array.from(ligneMap.values());
}
function onActivitiesClick(): void {
setShowActivites(prev => !prev);
setShowAthletes(false);
setShowCoachs(false);
setShowSessions(false);
setShowLignes(false);
// Calculer le temps de jeu pour chaque ligne
const tempsDeJeuParLigne: Map<number, number> = new Map();
allLignes.forEach(ligne => {
const tempsTotal = calculTempsDeJeuParLigne(allSessions, ligne);
tempsDeJeuParLigne.set(ligne.id, tempsTotal);
ligne.tempsDeJeu = tempsTotal;
});
}
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);
setShowLignes(false);
}
function onLigneClick():void{
setShowLignes(prev => !prev);
setShowAthletes(false);
setShowActivites(false);
setShowCoachs(false);
setShowSessions(false);
}
return (
<div className="ressource_panel">
@@ -109,53 +78,48 @@
<select
onChange={(e) => {
const v = (e.target as HTMLSelectElement).value;
if (v === "athletes") onAthletesClick();
else if (v === "activites") onActivitiesClick();
else if (v === "coach") onCoachClick();
else if (v === "session") onSessionClick();
else if (v === "lignes") onLigneClick();
else {setShowAthletes(false); setShowActivites(false); setShowCoachs(false); setShowSessions(false)}
setValue(v as keyWord)
}}>
<option value="athletes">Athlètes</option>
<option value="activites">Activités</option>
{user.role === "Admin" && <option value="coach"> Coach</option>}
<option value="session"> Session</option>
{user.role === "Admin" && <option value="coachs"> Coachs</option>}
<option value="sessions"> Sessions</option>
<option value="lignes"> Lignes</option>
</select>
{showAthletes && (
{value==="athletes" && (
<div className="edt_athletes_panel">
<h3>Liste des athlètes</h3>
<AthleteList athletes={allAthletes} />
</div>
)}
{showActivites && (
{value==="activites" && (
<div className="edt_activites_panel">
<h3>Liste des activités</h3>
<ActiviteList activites={allActivites} />
</div>
)}
{showCoachs && (
{value==="coachs" && (
<div className="edt_coachs_panel">
<h3>Liste des coachs</h3>
<CoachList coachs={allCoachs} />
</div>
)}
{showSessions && (
{value==="sessions" && (
<div className="edt_sessions_panel">
<h3>Liste des sessions</h3>
<SessionList sessions={allSessions} />
</div>
)}
{showLignes && (
{value==="lignes" && (
<div className="edt_lignes_panel">
<h3>Liste des lignes</h3>
<LigneList lignes={allLignes} />
<LigneList lignes={allLignes} tempsDeJeuParLigne={tempsDeJeuParLigne}/>
</div>
)}