correction ressource list, clean composant
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user