correction ressource list, clean composant

This commit is contained in:
trochas
2026-01-08 12:41:25 +01:00
parent 7c6ee6b65f
commit be4ab7d7cf
16 changed files with 491 additions and 228 deletions

View File

@@ -2,14 +2,16 @@ import { useState, useEffect } from "react";
import { Session, User, Coach, Activite, Groupe } from "../classes";
import { useLocalData } from "../context/useLocalData";
import { sessionService } from "../api";
import { postSession } from "../requetes";
export const CreateSession = () => {
const {user} = useLocalData()
const {user} = useLocalData();
const [session,setSession] = useState<Session>(new Session());
const [activities, setActivities] = useState<Activite[]>([]);
const [name,setName] = useState("");
const [groupe, setGroupe] = useState<Groupe>("");
const [creneau, setCreneau] = useState("");
const [duree, setDuree] = useState<number>(0);
const [activities, setActivities] = useState<Activite[]>([]);
const [activiteNom, setActiviteNom] = useState("");
const [activiteTheme, setActiviteTheme] = useState("");
const [activiteDuree, setActiviteDuree] = useState(0);
@@ -23,101 +25,78 @@ export const CreateSession = () => {
newActivite.theme=activiteTheme;
newActivite.duree= activiteDuree;
newActivite.data= new Map<string,string>();
try{
await sessionService.create(newActivite);
console.log("Session créée");
setActivities([...activities, newActivite]);
session.activites.push(newActivite);
setActivities([...activities, newActivite]);
setActiviteNom("");
setActiviteTheme("");
setActiviteDuree(0);
} catch (error) {
console.error("Erreur lors de la création de la session", error);
}
}
async function handleCreateSession() {
const data = {
name: name,
creneau: creneau, // string ISO OK
duree: duree,
isRecurrent: isRecurent,
coachId: user?.id,
groupe: groupe ? groupe : undefined,
postSession(session);
console.log("Session créée");
activites: activities.map(a => ({
nom: a.nom,
theme: a.theme,
duree: a.duree
}))
};
// reset
setName("");
setGroupe("");
setCreneau("");
setDuree(0);
setIsRecurent(false);
setActivities([]);
try {
await sessionService.create(data);
console.log("Session créée");
// reset
setName("");
setGroupe("");
setCreneau("");
setDuree(0);
setIsRecurent(false);
setActivities([]);
} catch (err) {
console.error("Erreur lors de la création de la session", err);
}
}
return (
<div className="ent">
<h2>Activité</h2>
<label>
Name:
<input type="text" value={activiteNom} onChange={e => setActiviteNom(e.target.value)} />
</label>
<label>
Theme:
<input type="text" value={activiteTheme} onChange={e => setActiviteTheme(e.target.value)} />
</label>
<label>
Duree (minutes):
<input type="number" value={activiteDuree} onChange={e => setActiviteDuree(Number(e.target.value))} />
</label>
<button type="button" onClick={addAcitivte}>Add Activite</button>
<h2>Créer une session</h2>
<label>
Nom:
<input type="text" value={name} onChange={e => setName(e.target.value)} />
</label>
<label>
Groupe:
</label>
<label>
Creneau:
<input type="datetime-local" value={creneau} onChange={e => setCreneau(e.target.value)} />
</label>
<label>
Duree (minutes):
<input type="number" value={duree} onChange={e => setDuree(Number(e.target.value))} />
</label>
<label>
Recurrent:
<input type="checkbox" checked={isRecurent} onChange={e => setIsRecurent(e.target.checked)} />
</label>
<h3>Ajouter une activité : </h3>
<label>
Nom de l'activitée:
<input type="text" value={activiteNom} onChange={e => setActiviteNom(e.target.value)} />
</label>
<label>
Theme:
<input type="text" value={activiteTheme} onChange={e => setActiviteTheme(e.target.value)} />
</label>
<label>
Duree (minutes):
<input type="number" value={activiteDuree} onChange={e => setActiviteDuree(Number(e.target.value))} />
</label>
<button type="button" onClick={addAcitivte}>Ajouter</button>
<ul>
{activities.map((act, idx) => (
<li key={idx}>{act.nom} - {act.theme} ({act.duree} min)</li>
))}
</ul>
<h2>Create Session</h2>
<label>
Name:
<input type="text" value={name} onChange={e => setName(e.target.value)} />
</label>
<label>
Groupe:
</label>
<label>
Creneau:
<input type="datetime-local" value={creneau} onChange={e => setCreneau(e.target.value)} />
</label>
<label>
Duree (minutes):
<input type="number" value={duree} onChange={e => setDuree(Number(e.target.value))} />
</label>
<label>
Recurrent:
<input type="checkbox" checked={isRecurent} onChange={e => setIsRecurent(e.target.checked)} />
</label>
<ul>
{activities.map((act, idx) => (
<li key={idx}>{act.nom} - {act.theme} ({act.duree} min)</li>
))}
</ul>
<button type="button" onClick={handleCreateSession}>Create Session</button>
<button type="button" onClick={handleCreateSession}>Create Session</button>
</div>
);
);
};
export default CreateSession;