fix style

This commit is contained in:
trochas
2026-01-10 19:50:41 +01:00
parent e85f76c810
commit 62b9231d38
9 changed files with 144 additions and 138 deletions

View File

@@ -4,62 +4,48 @@ import { dateToString, hoursToString } from '../edt';
import '../style/objectList.css';
import { Modal } from '../Modal';
import Loading from '../loading';
import {delay} from "../../requetes";
import {delay, getSessionsOfUserAPI} from "../../requetes";
import CreateActivite from '../createActivite';
import { useLocalData } from '../../context/useLocalData';
import ObjectSession from './session';
import StatAthlete from '../StatsAthlete';
type Props = {
admin?:Admin|null;
athlete?:Athlete|null;
coach?:Coach|null;
user:User;
}
function ObjectUser({admin=null,athlete=null,coach=null}:Props){
function ObjectUser({user}:Props){
const {user,setUser} = useLocalData()
const[user2,setUser2]= useState<User>(getUser());
//const {user,setUser} = useLocalData());
const [open, setOpen] = useState<boolean>(false);
const [open2, setOpen2] = useState<boolean>(false);
const [loading,setLoading] = useState<boolean>(false);
const [sessions,setSessions] = useState<Session[]>([]);
function getUser(): User{
if(admin!=null) return admin;
if(athlete!=null) return athlete;
if(coach!=null) return coach;
else return new User();
}
function handleOpen(): void {
setOpen(!open);
}
function handleDeleteSession(session:Session): void {
if(athlete!==null){
athlete.sessions.splice(athlete.sessions.indexOf(session), 1);
setSessions([...athlete.sessions])
if(user instanceof Coach || user instanceof Athlete){
user.sessions.splice(user.sessions.indexOf(session), 1);
setSessions([...user.sessions])
}
if(coach!==null){
coach.sessions.splice(coach.sessions.indexOf(session), 1);
setSessions([...coach.sessions])
}
}
function handleAddSession(): void {
if(athlete!==null){
if(user instanceof Athlete){
setOpen2(true)
}
}
async function updateSession(){
if(athlete!==null){
//TODO
await delay(2000);
//await update ... (athlete);
if(user instanceof Athlete || user instanceof Coach){
user.sessions = await getSessionsOfUserAPI(user);
setLoading(false);
}
}
@@ -74,11 +60,11 @@ function ObjectUser({admin=null,athlete=null,coach=null}:Props){
useEffect(() => {
if(!loading){
if(athlete!==null){
setSessions([...athlete.sessions])
if(user instanceof Athlete){
setSessions([...user.sessions])
}
if(coach!==null){
setSessions([...coach.sessions])
if(user instanceof Coach){
setSessions([...user.sessions])
}
}
},[loading])
@@ -86,13 +72,13 @@ function ObjectUser({admin=null,athlete=null,coach=null}:Props){
function returnSession(session: Session|null){
if(session!==null){
if(athlete!==null){
athlete.sessions.push(session);
setSessions([...athlete.sessions])
if(user instanceof Athlete){
user.sessions.push(session);
setSessions([...user.sessions])
}
if(coach!==null){
coach.sessions.push(session);
setSessions([...coach.sessions])
if(user instanceof Coach){
user.sessions.push(session);
setSessions([...user.sessions])
}
}
setOpen2(false);
@@ -101,23 +87,29 @@ function ObjectUser({admin=null,athlete=null,coach=null}:Props){
return(
<div>
<div className="object" onClick={() => handleOpen()}>
<div>{user2.nom}</div>
<div>{user.nom}</div>
{/* <div>{user2.role}</div> */}
</div>
{open &&
<Modal isOpen={open} onClose={() => setOpen(false)}>
<div className="object_modal">
<div>{user2.nom}</div>
<div>{user2.email}</div>
<div className='list_object'>
<div>Sessions :</div>
{/* TODO */}
<div>{user.prenom}</div>
<div>{user.nom}</div>
{(user instanceof Athlete || user instanceof Coach) &&
<div className='padding'>
<div className='list_object_modal'>
<div>Sessions :</div>
{user.sessions.map((session,index)=>(
<ObjectSession session={session}></ObjectSession>
))}
</div>
</div>
}
</div>
{athlete !== null && (
{user instanceof Athlete && (
<div className="stats-container">
<StatAthlete athlete={athlete} sessions={sessions} />
<StatAthlete athlete={user}/>
</div>
)}
</div>