LogoutButton
This commit is contained in:
@@ -3,6 +3,7 @@ import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
|
|||||||
import LoginForm from './components/LoginForm';
|
import LoginForm from './components/LoginForm';
|
||||||
//import RegisterForm from './components/RegisterForm';
|
//import RegisterForm from './components/RegisterForm';
|
||||||
//import ToolOverview from './components/ToolOverview';
|
//import ToolOverview from './components/ToolOverview';
|
||||||
|
import Home from './components/Home';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const isLoggedIn = localStorage.getItem('token') !== null;
|
const isLoggedIn = localStorage.getItem('token') !== null;
|
||||||
@@ -11,11 +12,12 @@ function App() {
|
|||||||
return (
|
return (
|
||||||
<BrowserRouter>
|
<BrowserRouter>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={isLoggedIn ? <ToolOverview /> : <Navigate to="/login" />} />
|
{/*<Route path="/" element={isLoggedIn ? <ToolOverview /> : <Navigate to="/login" />} />*/}
|
||||||
<Route path="/login" element={<LoginForm />} />
|
<Route path="/login" element={<LoginForm />} />
|
||||||
<Route path="/register" element={<RegisterForm />} />
|
{/*<Route path="/register" element={<RegisterForm />} />*/}
|
||||||
{/*<Route path="/tools/md5" element={isLoggedIn ? <Md5Tool /> : <Navigate to="/login" />} />*/}
|
<Route path="/tools/md5" element={isLoggedIn ? <Md5Tool /> : <Navigate to="/login" />} />
|
||||||
{/*<Route path="/admin" element={isLoggedIn && role === 'admin' ? <AdminDashboard /> : <Navigate to="/" />} />*/}
|
{/*<Route path="/admin" element={isLoggedIn && role === 'admin' ? <AdminDashboard /> : <Navigate to="/" />} />*/}
|
||||||
|
<Route path="/" element={<Home />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
function Home() {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
const token = localStorage.getItem('token');
|
||||||
|
const role = localStorage.getItem('role');
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<h1>Willkommen bei den Tools</h1>
|
||||||
|
{!token ? (
|
||||||
|
<>
|
||||||
|
<p>Bitte logge dich ein oder registriere dich.</p>
|
||||||
|
<button onClick={() => navigate('/login')}>Login</button>
|
||||||
|
<button onClick={() => navigate('/register')}>Registrieren</button>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<p>Willkommen zurück!</p>
|
||||||
|
<button onClick={() => navigate('/tools/md5')}>Zum MD5 Tool</button>
|
||||||
|
{role === 'admin' && <button onClick={() => navigate('/admin')}>Admin-Bereich</button>}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Home;
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
|
function LogoutButton() {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
const logout = () => {
|
||||||
|
localStorage.clear();
|
||||||
|
navigate('/login');
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<button onClick={logout}>Logout</button>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default LogoutButton;
|
||||||
Reference in New Issue
Block a user