import { useKeycloak } from '@react-keycloak/web' import { useEffect, useState } from 'react'; import { Admin, Athlete, Coach, User } from '../classes'; import { useLocalData } from '../context/useLocalData'; import { loginOrRegister, postAthlete } from '../requetes'; import { clearAuthToken, setAuthToken } from '../api'; import { AthleteDTO } from '../classesDTO'; import { Modal } from './Modal'; import './style/topBar.css'; export const Login =() =>{ const {userLocal: user,setUserLocal: setUser} = useLocalData() const { keycloak } = useKeycloak(); const [open,setOpen] = useState(false); async function loginUser(){ if(keycloak.authenticated){ setAuthToken(keycloak.token); const logedUser = await loginOrRegister(keycloak); console.log(logedUser); if(logedUser!==null){ setUser(logedUser); } else{ alert("Erreur de connexion " + keycloak.tokenParsed?.sub + " " + keycloak.tokenParsed?.realm_access?.roles); } } } useEffect(() => { loginUser() },[keycloak.authenticated]) async function handleLogin() { await keycloak.login(); } function handleLogout(): void { keycloak.logout() setUser(new User()); clearAuthToken(); setOpen(false); } function handleOpen(): void { setOpen(!open); } if(keycloak.authenticated){ return(
{open &&
Prenom : { user.prenom}
Nom : { user.nom}
{/*
Keycloak ID : { keycloak.tokenParsed?.sub}
*/} {user instanceof Athlete &&
Role : Athlete
} {user instanceof Coach &&
Role : Coach
} {user instanceof Admin &&
Role : Admin
}
}
) } else{ return(
) } } export default Login