Merge branch 'GringoElPepito' of https://git.justw.tf/Lightemerald/nuitdelinfo2023 into GringoElPepito
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import NavListHome from "./navlist";
|
||||
import list from "../list";
|
||||
import LoginButton from "../login-button";
|
||||
import logout from "../../../lib/logout";
|
||||
import {useEffect} from "react";
|
||||
|
||||
function NavbarreHome() {
|
||||
return(
|
||||
@@ -8,7 +10,14 @@ function NavbarreHome() {
|
||||
<div className="h-12 w-12 bg-red-500">
|
||||
</div>
|
||||
<NavListHome list={list}/>
|
||||
<LoginButton />
|
||||
{localStorage.getItem('token') !== null ? (
|
||||
<div>
|
||||
<a onClick={() => logout()}>logout</a>
|
||||
<p>{localStorage.getItem('username')}</p>
|
||||
</div>
|
||||
) : (
|
||||
<LoginButton/>
|
||||
) }
|
||||
</nav>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -10,21 +10,13 @@ import Register from "./pages/register";
|
||||
|
||||
const root = ReactDOM.createRoot(document.getElementById('root'));
|
||||
function App() {
|
||||
const savedToken = localStorage.getItem('token');
|
||||
const [token, setToken] = useState(savedToken ? savedToken : null)
|
||||
useEffect(() => {
|
||||
if(savedToken !== token){
|
||||
localStorage.setItem('token', token);
|
||||
}
|
||||
}, [token]);
|
||||
|
||||
return (
|
||||
<React.StrictMode>
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/" element={<Home />}/>
|
||||
<Route path="/login" element={<Login setToken={setToken} />}/>
|
||||
<Route path="/register" element={<Register setToken={setToken} />}/>
|
||||
<Route path="/" element={<Home/>}/>
|
||||
<Route path="/login" element={<Login />}/>
|
||||
<Route path="/register" element={<Register />}/>
|
||||
<Route path="/game" element={<Game />}/>
|
||||
<Route path="/game/:id" element={<GameTheme />}/>
|
||||
</Routes>
|
||||
|
||||
7
webapp/src/lib/logout.js
Normal file
7
webapp/src/lib/logout.js
Normal file
@@ -0,0 +1,7 @@
|
||||
function logout() {
|
||||
localStorage.removeItem('token');
|
||||
localStorage.removeItem('username');
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
export default logout
|
||||
@@ -5,7 +5,7 @@ import Footer from "../../components/content/home/footer";
|
||||
function Home() {
|
||||
return (
|
||||
<div className="h-screen w-screen flex flex-col justify-center items-center">
|
||||
<NavbarreHome />
|
||||
<NavbarreHome/>
|
||||
<HomeHero />
|
||||
<Footer />
|
||||
</div>
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import {Link, redirect, useNavigate} from "react-router-dom";
|
||||
import {useState} from "react";
|
||||
import {get, post} from '../../modules/fetcher';
|
||||
function Login({setToken}) {
|
||||
function Login() {
|
||||
const navigate = useNavigate();
|
||||
const loginUser = async (e) => {
|
||||
e.preventDefault()
|
||||
post('https://saucisson.justw.tf/api/users/login', {username, password}, '')
|
||||
.then(async res => {
|
||||
if (res.status === 200) {
|
||||
console.log(res.JSON.message)
|
||||
setToken(res.JSON.token)
|
||||
localStorage.setItem('username', username)
|
||||
localStorage.setItem('token', res.JSON.token)
|
||||
navigate('/')
|
||||
} else {
|
||||
setError(res.message)
|
||||
|
||||
@@ -3,7 +3,7 @@ import {post} from "../../modules/fetcher";
|
||||
import {useState} from "react";
|
||||
|
||||
|
||||
function Register({setToken}) {
|
||||
function Register() {
|
||||
const navigate = useNavigate();
|
||||
const registerUser = async (e) => {
|
||||
e.preventDefault()
|
||||
@@ -11,7 +11,8 @@ function Register({setToken}) {
|
||||
post('https://saucisson.justw.tf/api/users/register', {username, password}, '')
|
||||
.then(async res => {
|
||||
if (res.status === 200) {
|
||||
setToken(res.JSON.token)
|
||||
localStorage.setItem('username', username)
|
||||
localStorage.setItem('token', res.JSON.token)
|
||||
navigate('/')
|
||||
} else {
|
||||
setError(res.message)
|
||||
|
||||
Reference in New Issue
Block a user