Files
dndmaster/frontend/src/App.jsx
T
Marces Zastrow 0e888ca258 +
2025-01-17 13:27:12 +01:00

95 lines
2.9 KiB
React

import React, { useState } from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import { Helmet } from 'react-helmet';
import './App.css';
import Header from './components/header';
import Home from './pages/home';
import Login from './pages/login';
import Register from './pages/register';
import JoinGame from './pages/joinGame';
import StartGame from './pages/startGame';
import Profile from './pages/profile';
import Games from './pages/games.jsx';
import GameMasterPage from './pages/gameMasterPage.jsx';
import CreateItem from './pages/createItem.jsx';
import CreateCharacter from './pages/createCharacter.jsx';
import CreateNpc from './pages/createNpc.jsx';
import { UserProvider } from './context/UserContext.jsx';
function App() {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const [popupMessage, setPopupMessage] = useState('');
const showPopup = (message) => {
setPopupMessage(message);
setTimeout(() => setPopupMessage(''), 3000);
};
return (
<UserProvider>
<meta name="P&P-Master" content="WoW. A description." />
<Router>
<div>
<Helmet>
<title>P&P-Master</title>
</Helmet>
{popupMessage && <div className="popup">{popupMessage}</div>}
<Header isLoggedIn={isLoggedIn} />
<Routes>
<Route
path="/"
element={<Home isLoggedIn={isLoggedIn} setIsLoggedIn={setIsLoggedIn} />}
/>
<Route
path="/login"
element={<Login setIsLoggedIn={setIsLoggedIn} />}
/>
<Route
path="/register"
element={<Register setIsLoggedIn={(status) => {
setIsLoggedIn(status);
showPopup('User registered successfully!');
}} />}
/>
<Route
path="/joinGame"
element={<JoinGame isLoggedIn={isLoggedIn} />}
/>
<Route
path="/startGame"
element={<StartGame isLoggedIn={isLoggedIn} />}
/>
<Route
path="/profile"
element={<Profile isLoggedIn={isLoggedIn} />}
/>
<Route
path='/games/:gameId/master'
element={<GameMasterPage isLoggedIn={isLoggedIn} />}
/>
<Route
path='/games/:gameId'
element={<Games isLoggedIn={isLoggedIn} />}
/>
<Route
path='/create-Character'
element={<CreateCharacter isLoggedIn={isLoggedIn} />}
/>
<Route
path='/create-item'
element={<CreateItem isLoggedIn={isLoggedIn} />}
/>
<Route
path='/create-npc'
element={<CreateNpc isLoggedIn={isLoggedIn} />}
/>
</Routes>
</div>
</Router>
</UserProvider>
);
}
export default App;