fix redir depending on auth state

This commit is contained in:
Guillaume Dorce 2022-09-09 15:48:32 +02:00
parent e3720181f8
commit 279a866812
4 changed files with 5 additions and 14 deletions

View File

@ -1,7 +1,8 @@
import { BrowserRouter, useNavigate, Outlet, Route, Routes } from 'react-router-dom';
import { BrowserRouter, Navigate, Outlet, Route, Routes } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import Login from './routes/login';
import Home from './routes/home';
import { checkAuth } from './controllers/Auth';
// Create a client
const queryClient = new QueryClient();
@ -11,8 +12,8 @@ export default () => {
<BrowserRouter>
<QueryClientProvider client={queryClient}>
<Routes>
<Route path="/login" element={<Login />} />
<Route path="/home" element={<Home />} />
<Route path="/login" element={checkAuth() ? <Navigate to="/home" /> : <Login />} />
<Route path="/home" element={!checkAuth() ? <Navigate to="/login" /> : <Home />} />
</Routes>
<Outlet />
</QueryClientProvider>

View File

@ -1,5 +1,4 @@
import { useCookies } from "react-cookie";
import { useNavigate } from "react-router-dom";
const checkAuth = () => {
const [cookie, setCookie] = useCookies(['token']);

View File

@ -1,11 +1,6 @@
import AppHeader from "@components/AppHeader";
import { Navigate } from "react-router-dom";
import { checkAuth } from "../controllers/Auth";
const Home = () => {
if (!checkAuth()) {
return <Navigate to="/login" />;
}
return (
<>
<AppHeader />

View File

@ -4,12 +4,8 @@ import { useQuery } from '@tanstack/react-query';
import { useState } from 'react';
import { useCookies } from 'react-cookie';
import type { Token } from '../types';
import { checkAuth } from '../controllers/Auth';
const Login = () => {
if (checkAuth()) {
return <Navigate to="/home" />;
}
const [cookie, setCookie] = useCookies(['token']);
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
@ -30,7 +26,7 @@ const Login = () => {
{
onSuccess: (data: Token) => {
setCookie('token', data.token, { path: '/', expires: new Date(data.expiresAt) });
return <Navigate to="/home" />;
return <Navigate to="/" />;
},
onError: (error) => {
console.error(error);