Merge remote-tracking branch 'refs/remotes/origin/main'

This commit is contained in:
Alexis Leboeuf
2026-01-07 12:42:42 +01:00
5 changed files with 303 additions and 56 deletions

View File

@@ -1,27 +0,0 @@
import Dropdown from 'react-bootstrap/Dropdown';
import { Athlete } from '../classes';
type Props = {
onAthletesClick: () => void;
onActivitiesClick: () => void;
}
function ListButton({ onAthletesClick, onActivitiesClick }: Props) {
return (
<Dropdown>
<Dropdown.Toggle>
Sélectionner la ressource
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item as="button" onClick={onAthletesClick}>
Athlètes
</Dropdown.Item>
<Dropdown.Item as="button" onClick={onActivitiesClick}>
Activités
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
);
}
export default ListButton;

View File

@@ -1,8 +1,8 @@
import { useState } from "react";
import { useLocalData } from "../context/useLocalData";
import ListButton from "./dropdownButton";
import { AthleteList, ActiviteList } from "./ressourceList";
import { Activite, Athlete } from "../classes";
// import { Dropdown } from "react-bootstrap"; // not used
export default function RessourcePanel() {
const { user } = useLocalData();
@@ -22,31 +22,45 @@ export default function RessourcePanel() {
});
const allActivites: Activite[] = Array.from(activiteMap.values());
function onAthletesClick(): void {
setShowAthletes(prev => !prev);
setShowActivites(false);
}
function onActivitiesClick(): void {
setShowActivites(prev => !prev);
setShowAthletes(false);
}
return (
<div className="ressource_panel">
<ListButton
onAthletesClick={() => {
setShowAthletes(prev => !prev);
setShowActivites(false);
}}
onActivitiesClick={() => {
setShowActivites(prev => !prev);
setShowAthletes(false);
}}
/>
<select
onChange={(e) => {
const v = (e.target as HTMLSelectElement).value;
if (v === "athletes") onAthletesClick();
else if (v === "activites") onActivitiesClick();
else {setShowAthletes(false); setShowActivites(false);
}
}}>
<option>Choissisez la ressource</option>
<option value="athletes">Athlètes</option>
<option value="activites">Activités</option>
</select>
{showAthletes && (
<div className="edt_athletes_panel">
<h3>Liste des athlètes</h3>
<AthleteList athletes={allAthletes} activites={[]}/>
</div>
)}
{showActivites && (
<div className="edt_activites_panel">
<h3>Liste des activités</h3>
<ActiviteList athletes={[]} activites={allActivites} />
</div>
)}
</div>
);
}

View File

@@ -14,6 +14,7 @@ const useAuthHeader = () => {
export function delay(ms: number): Promise<void> {
return new Promise(resolve => setTimeout(resolve, ms));
}
//UPDATE /////////////////////////////////////////////////////////
//COACH / ATHLETE