diff --git a/front_end/src/App.tsx b/front_end/src/App.tsx index 6a12c75..afbfa64 100644 --- a/front_end/src/App.tsx +++ b/front_end/src/App.tsx @@ -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 ( - +
@@ -31,6 +32,7 @@ function App() { Learn React +
diff --git a/front_end/src/classes.tsx b/front_end/src/classes.tsx index cbc46b5..5147a21 100644 --- a/front_end/src/classes.tsx +++ b/front_end/src/classes.tsx @@ -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{ diff --git a/front_end/src/components/ent.css b/front_end/src/components/ent.css new file mode 100644 index 0000000..72b8bff --- /dev/null +++ b/front_end/src/components/ent.css @@ -0,0 +1,5 @@ +.ent_colonne { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 16px; +} \ No newline at end of file diff --git a/front_end/src/components/ent.tsx b/front_end/src/components/ent.tsx index 75a2d0e..f70630a 100644 --- a/front_end/src/components/ent.tsx +++ b/front_end/src/components/ent.tsx @@ -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([]) + const [week,setWeek] = useState(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( -
- +
+
+
+ Lundi +
+
+ Mardi + +
+
+ Mercredi +
+
+ Jeudi +
+
+ Vendredi +
+
+ Samedi +
+
+ Dimanche +
+ +
) } diff --git a/front_end/src/context/LocalDataContext2.tsx b/front_end/src/context/LocalDataContext.tsx similarity index 100% rename from front_end/src/context/LocalDataContext2.tsx rename to front_end/src/context/LocalDataContext.tsx diff --git a/front_end/src/context/useLocalData.tsx b/front_end/src/context/useLocalData.tsx index 89a4712..113b66e 100644 --- a/front_end/src/context/useLocalData.tsx +++ b/front_end/src/context/useLocalData.tsx @@ -1,5 +1,5 @@ import { useContext } from 'react' -import { LocalDataContext } from './LocalDataContext2' +import { LocalDataContext } from './LocalDataContext' export const useLocalData = () => { const context = useContext(LocalDataContext) diff --git a/front_end/src/provider/LocalDataProvider.tsx b/front_end/src/provider/LocalDataProvider.tsx index d080c1d..a5682a9 100644 --- a/front_end/src/provider/LocalDataProvider.tsx +++ b/front_end/src/provider/LocalDataProvider.tsx @@ -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(new User()) diff --git a/front_end/src/requetes.tsx b/front_end/src/requetes.tsx index 35370e2..570df7e 100644 --- a/front_end/src/requetes.tsx +++ b/front_end/src/requetes.tsx @@ -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{ //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{ + return true; +} + +export async function unsubscribeSession(user:User, session:Session):Promise{ + 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{ + 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){ }