-
+
{loading && }
{week_days_nums.map((num,index)=>(
{week_days[index]}
{dateToString(getNextDay(week,index))}
-
+
{sessions.map((session,index2)=>(
session.creneau.getDay()===num &&
diff --git a/front_end/src/components/edt_session.tsx b/front_end/src/components/edt_session.tsx
index 66d0b0c..4b23c40 100644
--- a/front_end/src/components/edt_session.tsx
+++ b/front_end/src/components/edt_session.tsx
@@ -4,6 +4,7 @@ import { dateToString, hoursToString } from './edt';
import './style/edt.css';
import { Modal } from './Modal';
import Loading from './loading';
+import {delay} from "../requetes";
type Props = {
@@ -21,6 +22,7 @@ function EdtSession({session}:Props){
async function updateActivites(){
//TODO
+ await delay(2000);
//await updateActivitiesOfSessionAPI(session);
setLoading(false);
}
@@ -37,19 +39,24 @@ function EdtSession({session}:Props){
return(
handleOpen()}>
-
{hoursToString(sDate)}
+
+
{hoursToString(sDate)}
+ {!session.isRecurrent &&
recurrent
}
+
{session.name}
{open &&
setOpen(false)}>
- {session.name}
- {hoursToString(sDate)}
- {dateToString(sDate)}
- {session.activites.map((activite,index)=>(
- activite
- ))}
-
- {loading && }
+
+
{session.name}
+
{hoursToString(sDate)}
+
{dateToString(sDate)}
+ {session.activites.map((activite,index)=>(
+
activite
+ ))}
+ {loading &&
}
+
+
}
diff --git a/front_end/src/components/login.tsx b/front_end/src/components/login.tsx
index a99949a..8facb90 100644
--- a/front_end/src/components/login.tsx
+++ b/front_end/src/components/login.tsx
@@ -1,19 +1,40 @@
import { useKeycloak } from '@react-keycloak/web'
+import { useEffect } from 'react';
+import { getUserTest, User } from '../classes';
+import { useLocalData } from '../context/useLocalData';
export const Login =() =>{
+ const {user,setUser} = useLocalData()
+
+
+ useEffect(() => { //TODO à supprimer
+ setUser(getUserTest())
+ },[]);
+
+
+ function handleLogin(): void {
+ keycloak.login()
+ //TODO setUser
+ }
+
+ function handleLogout(): void {
+ keycloak.logout()
+ setUser(new User());
+ }
+
const { keycloak } = useKeycloak()
return(
Authenticated : {keycloak.authenticated ? '✅' : '❌'}
-
diff --git a/front_end/src/components/style/edt.css b/front_end/src/components/style/edt.css
index 4c4d274..d715519 100644
--- a/front_end/src/components/style/edt.css
+++ b/front_end/src/components/style/edt.css
@@ -1,56 +1,74 @@
.edt{
- justify-contedt: cedter;
+ justify-content: center;
background-color: var(--tint1);
border-radius: 30px;
padding: 10px;
}
+
.edt_header{
- justify-contedt: cedter;
+ justify-content: center;
display: grid;
- grid-template-columns: repeat(2, 1fr);
+ grid-template-columns: repeat(2, 0.5fr);
/* background-color: #0000FF; */
padding-bottom: 10px;
gap: 30%;
}
.edt_colonnes {
+ position: relative;
display: grid;
align-items: flex-start;
- grid-template-columns: repeat(7, 1fr);
+ grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 16px;
color: var(--text);
/* background-color: #00FF00; */
width: 100%;
}
+.edt_loading{
+ position: absolute;
+ inset: 0;
+ display: grid;
+ /* place-items: center; */
+ pointer-events: none;
+}
+
.edt_colonne {
display: grid;
background-color: var(--tint3);
border-radius: 20px;
+ container-type: inline-size;
}
.edt_day_header{
+ font-size: clamp(5px, 1vw, 18px);
padding: 8px;
/* background-color: var(--tint2); */
border-radius: 20px;
height: 30px;
- text-align: cedter;
+ text-align: center;
font-size: 1em;
}
-.edt_day_contedt{
- display: grid;
+.edt_day_content{
+ display: flex;
+ flex-direction: column;
gap: 8px;
padding: 8px;
border-radius: 20px;
+ min-width: 0;
+ /* background-color: #FF0000; */
}
.edt_session {
+
+ font-size: clamp(1px, 8cqi, 18px);
gap: 8px;
background-color: var(--tint4);
border-radius: 12px;
- padding: 8px;
+ padding: 5%;
+ min-width: 0;
}
.edt_session:hover {
@@ -61,6 +79,11 @@
background-color: var(--tint5);
}
+.edt_session_header{
+ display: flex;
+ gap: 5px;
+}
+
.edt_date{
font-size: 0.75em;
}
@@ -72,3 +95,11 @@
border-radius: 20px;
}
+
+.edt_session_modal{
+ background-color: var(--tint2);
+ padding: 20px;
+ border-radius: 20px;
+ position: relative;
+}
+
diff --git a/front_end/src/index.css b/front_end/src/index.css
index f82f209..bbb1bfe 100644
--- a/front_end/src/index.css
+++ b/front_end/src/index.css
@@ -49,16 +49,14 @@ code {
}
.modal{
- background-color: var(--tint2);
padding: 10px;
- border-radius: 20px;
min-width: 200px;
min-height: 100px;
}
.loading{
- width: 24px;
- height: 24px;
+ width: 40px;
+ height: 40px;
animation: spin 1s linear infinite;
}
diff --git a/front_end/src/requetes.tsx b/front_end/src/requetes.tsx
index 1b13c48..08d3ec9 100644
--- a/front_end/src/requetes.tsx
+++ b/front_end/src/requetes.tsx
@@ -2,14 +2,21 @@ import api from "./api";
import { Activite, Athlete, Coach, Session, User } from "./classes";
import { useKeycloak } from '@react-keycloak/web'
-const { keycloak } = useKeycloak()
+/*const { keycloak } = useKeycloak()
const useAuthHeader = () => {
return keycloak?.token
? { Authorization: `Bearer ${keycloak.token}` }
: {}
+}*/
+
+//debug:
+export function delay(ms: number): Promise {
+ return new Promise(resolve => setTimeout(resolve, ms));
}
+
+
//UPDATE /////////////////////////////////////////////////////////
//COACH / ATHLETE