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

View File

@@ -3,7 +3,7 @@ export type Groupe = "Entrainement" | "Competition" | "Loisir";
export class User{
id!: number;
nom!: String;
session!: Session[]; //nb: Admin liaison non symétrique /!\
sessions!: Session[]; //nb: Admin liaison non symétrique /!\
}
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 { User } from "../classes"
import { Session, User } from "../classes"
import { useLocalData } from "../context/useLocalData"
import './ent.css';
//import {updateSessionsOfUser } from "../requetes";
export const ENT =() =>{
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(
<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>
)
}

View File

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

View File

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

View File

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