contructeur classes, type DTO dans TS, clean hard code

This commit is contained in:
trochas
2026-01-08 15:42:11 +01:00
parent 78b82fcfee
commit f2a0f8ca86
7 changed files with 207 additions and 97 deletions

View File

@@ -1,6 +1,6 @@
import { useState } from "react";
import { useLocalData } from "../context/useLocalData";
import { Activite, Athlete, Coach , Session, Ligne, getUserTest } from "../classes";
import { Activite, Athlete, Coach , Session, Ligne, Admin } from "../classes";
import {calculTempsDeJeuParLigne} from "../utils/ligneUtils";
import { keyboard } from "@testing-library/user-event/dist/keyboard";
import ObjectSession from "./object/session";
@@ -10,14 +10,11 @@ import ObjectUser from "./object/user";
export type keyWord = "athletes" | "activites" | "coachs" | "sessions"| "lignes";
export default function RessourcePanel() {
//const { user } = useLocalData();
const user = getUserTest(); //TODO
const { user } = useLocalData();
//const user = getUserTest(); //TODO
const [value,setValue] = useState<keyWord>("athletes");
console.log("Rôle utilisateur:", user.role);
console.log(user.nom);
console.log(user.prenom);
console.log(user.email);
if (user.role === "athlete") return null;
if (user instanceof Athlete) return null;
const allAthletes: Athlete[] = [];
@@ -28,26 +25,8 @@ import ObjectUser from "./object/user";
const allSessions: Session[] = [];
const ligneMap: Map<number, Ligne> = new Map();
user.sessions.forEach(session => {
if (session.ligne) {
const allLignes: Ligne[] = [];
session.ligne.forEach(ligne => {
ligneMap.set(ligne.id, ligne);
});
}
});
const allLignes: Ligne[] = Array.from(ligneMap.values());
// 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;
});
@@ -63,7 +42,7 @@ import ObjectUser from "./object/user";
}}>
<option value="athletes">Athlètes</option>
<option value="activites">Activités</option>
{user.role === "admin" && <option value="coachs"> Coachs</option>}
{user instanceof Admin && <option value="coachs"> Coachs</option>}
<option value="sessions"> Sessions</option>
<option value="lignes"> Lignes</option>