ent en cours

This commit is contained in:
trochas
2026-01-06 10:05:57 +01:00
parent 20197a69ce
commit defefd2c79
8 changed files with 89 additions and 22 deletions

View File

@@ -5,6 +5,7 @@ import { ReactKeycloakProvider } from '@react-keycloak/web'
import keycloak from './keycloak' import keycloak from './keycloak'
import Login from './components/login'; import Login from './components/login';
import { LocalDataProvider } from './provider/LocalDataProvider'; import { LocalDataProvider } from './provider/LocalDataProvider';
import ENT from './components/ent';
const keycloakInitOptions = { const keycloakInitOptions = {
@@ -14,7 +15,7 @@ const keycloakInitOptions = {
function App() { function App() {
return ( return (
<ReactKeycloakProvider authClient={keycloak} initOptions={keycloakInitOptions}> <ReactKeycloakProvider authClient={keycloak} /*initOptions={keycloakInitOptions}*/>
<LocalDataProvider> <LocalDataProvider>
<div className="App"> <div className="App">
<header className="App-header"> <header className="App-header">
@@ -31,6 +32,7 @@ function App() {
Learn React Learn React
</a> </a>
<Login/> <Login/>
<ENT/>
</header> </header>
</div> </div>
</LocalDataProvider> </LocalDataProvider>

View File

@@ -3,7 +3,7 @@ export type Groupe = "Entrainement" | "Competition" | "Loisir";
export class User{ export class User{
id!: number; id!: number;
nom!: String; nom!: String;
session!: Session[]; //nb: Admin liaison non symétrique /!\ sessions!: Session[]; //nb: Admin liaison non symétrique /!\
} }
export class Admin extends User{ export class Admin extends User{

View File

@@ -0,0 +1,5 @@
.ent_colonne {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 16px;
}

View File

@@ -1,14 +1,65 @@
import { useState } from "react" import { useState } from "react"
import { User } from "../classes" import { Session, User } from "../classes"
import { useLocalData } from "../context/useLocalData" import { useLocalData } from "../context/useLocalData"
import './ent.css';
//import {updateSessionsOfUser } from "../requetes";
export const ENT =() =>{ export const ENT =() =>{
const {user} = useLocalData() const {user} = useLocalData()
const [sessions, setSessions] = useState<Session[]>([])
const [week,setWeek] = useState<Date>(new Date());
function updateSessions(){
var newWeek: Session[] = []
user.sessions.forEach(session => {
newWeek.push(session);
});
setSessions(newWeek);
}
function changeWeek(){
updateSessions()
setWeek(new Date());
}
async function updateWeek(){
//TODO updateSession
//await updateSessionsOfUser(user,null,null);
var newWeek: Session[] = []
user.sessions.forEach(session => {
newWeek.push(session);
});
setSessions(newWeek);
}
return( return(
<div> <div className="ent">
<div className="ent_colonne">
<div>
Lundi
</div>
<div>
Mardi
</div>
<div>
Mercredi
</div>
<div>
Jeudi
</div>
<div>
Vendredi
</div>
<div>
Samedi
</div>
<div>
Dimanche
</div>
</div>
</div> </div>
) )
} }

View File

@@ -1,5 +1,5 @@
import { useContext } from 'react' import { useContext } from 'react'
import { LocalDataContext } from './LocalDataContext2' import { LocalDataContext } from './LocalDataContext'
export const useLocalData = () => { export const useLocalData = () => {
const context = useContext(LocalDataContext) const context = useContext(LocalDataContext)

View File

@@ -1,6 +1,6 @@
import { useState } from 'react' import { useState } from 'react'
import { Session, User } from '../classes' import { Session, User } from '../classes'
import { LocalDataContext } from '../context/LocalDataContext2' import { LocalDataContext } from '../context/LocalDataContext'
export const LocalDataProvider = ({ children }: { children: React.ReactNode }) => { export const LocalDataProvider = ({ children }: { children: React.ReactNode }) => {
const [user, setUser] = useState<User>(new User()) const [user, setUser] = useState<User>(new User())

View File

@@ -1,5 +1,5 @@
import { Activite, Athlete, Coach, Session, User } from "./classes"; import { Activite, Athlete, Coach, Session, User } from "./classes";
import { useKeycloak } from '@react-keycloak/web' /*import { useKeycloak } from '@react-keycloak/web'
const { keycloak } = useKeycloak() const { keycloak } = useKeycloak()
@@ -7,7 +7,7 @@ const useAuthHeader = () => {
return keycloak?.token return keycloak?.token
? { Authorization: `Bearer ${keycloak.token}` } ? { Authorization: `Bearer ${keycloak.token}` }
: {} : {}
} }*/
//UPDATE ///////////////////////////////////////////////////////// //UPDATE /////////////////////////////////////////////////////////
@@ -16,55 +16,64 @@ const useAuthHeader = () => {
/* /*
retourne l'utilisateur lié à l'identifiant keyloack retourne l'utilisateur lié à l'identifiant keyloack
*/ */
export function getUser(id:number){ export async function getUser(id:number): Promise<boolean>{
//keycloak.id; //keycloak.id;
return true;
} }
/* /*
retourne toutes les Session dont l'user est inscrit retourne toutes les Session dont l'user est inscrit
*/ */
export function updateSessionsOfUser(user:Coach|Athlete, min: Date, max: Date){ export async function updateSessionsOfUser(user:Coach|Athlete, min: Date|null, max: Date|null){
//TODO //TODO
} }
export function updateActivitiesOfSession(session:Session){ export async function updateActivitiesOfSession(session:Session){
//TODO //TODO
} }
export async function subscribeSession(user:User, session:Session):Promise<boolean>{
return true;
}
export async function unsubscribeSession(user:User, session:Session):Promise<boolean>{
return true;
}
// ADMIN : // ADMIN :
export function updateAllSession(min: Date, max: Date){ export async function updateAllSession(min: Date, max: Date){
//TODO //TODO
} }
export function updateAllUser(){ export async function updateAllUser(){
} }
// POST ///////////////////////////////////////////////////////// // POST /////////////////////////////////////////////////////////
// COACH ADMIN // COACH ADMIN
export function postSession(session: Session){ export async function postSession(session: Session){
} }
export function postActivity(session: Session, activity: Activite){ export async function postActivity(session: Session, activity: Activite){
//post nouvelle activitée //post nouvelle activitée
//associer la nouvelle activité à la session //associer la nouvelle activité à la session
} }
export function postUser(user: User){ export async function postUser(user: User):Promise<boolean>{
return true;
} }
// SET ///////////////////////////////////////////////////////// // SET /////////////////////////////////////////////////////////
//ADMIN //ADMIN
export function setUserName(user: User, name: string){ export async function setUserName(user: User, name: string){
} }
//COACH //COACH
export function setSessionCreneau(session: Session, date:Date){ export async function setSessionCreneau(session: Session, date:Date){
} }