2022-04-06 16:37:23 +02:00
|
|
|
import './style/main.sass';
|
|
|
|
import './style/sb-admin-2.css'
|
|
|
|
import './style/style.css';
|
|
|
|
|
|
|
|
import {BrowserRouter, Navigate, Route, Routes} from "react-router-dom";
|
|
|
|
import React from "react";
|
2022-05-23 17:58:06 +02:00
|
|
|
import PlayerPage from "./views/layout/PlayerPage";
|
|
|
|
import PlayerOverview from "./views/player/PlayerOverview";
|
|
|
|
import PlayerSessions from "./views/player/PlayerSessions";
|
|
|
|
import PlayerPvpPve from "./views/player/PlayerPvpPve";
|
|
|
|
import PlayerServers from "./views/player/PlayerServers";
|
|
|
|
import PlayerPluginData from "./views/player/PlayerPluginData";
|
2022-04-06 16:37:23 +02:00
|
|
|
import {ThemeContextProvider} from "./hooks/themeHook";
|
|
|
|
import axios from "axios";
|
|
|
|
import ErrorView from "./views/ErrorView";
|
|
|
|
import {faMapSigns} from "@fortawesome/free-solid-svg-icons";
|
|
|
|
import {MetadataContextProvider} from "./hooks/metadataHook";
|
|
|
|
import {AuthenticationContextProvider} from "./hooks/authenticationHook";
|
|
|
|
import {NavigationContextProvider} from "./hooks/navigationHook";
|
2022-05-23 17:58:06 +02:00
|
|
|
import ServerPage from "./views/layout/ServerPage";
|
|
|
|
import ServerOverview from "./views/server/ServerOverview";
|
2022-04-06 16:37:23 +02:00
|
|
|
import MainPageRedirect from "./components/navigation/MainPageRedirect";
|
2022-05-23 17:58:06 +02:00
|
|
|
import OnlineActivity from "./views/server/OnlineActivity";
|
|
|
|
import ServerSessions from "./views/server/ServerSessions";
|
|
|
|
import ServerPvpPve from "./views/server/ServerPvpPve";
|
|
|
|
import PlayerbaseOverview from "./views/server/PlayerbaseOverview";
|
2022-06-05 20:38:12 +02:00
|
|
|
import ServerPlayers from "./views/server/ServerPlayers";
|
2022-06-05 21:09:46 +02:00
|
|
|
import PlayersPage from "./views/layout/PlayersPage";
|
|
|
|
import AllPlayers from "./views/players/AllPlayers";
|
2022-06-08 17:24:38 +02:00
|
|
|
import ServerGeolocations from "./views/server/ServerGeolocations";
|
2022-04-06 16:37:23 +02:00
|
|
|
|
2022-07-13 20:21:20 +02:00
|
|
|
const SwaggerView = React.lazy(() => import("./views/SwaggerView"));
|
|
|
|
|
2022-04-06 16:37:23 +02:00
|
|
|
const OverviewRedirect = () => {
|
|
|
|
return (<Navigate to={"overview"} replace={true}/>)
|
|
|
|
}
|
|
|
|
|
|
|
|
const ContextProviders = ({children}) => (
|
|
|
|
<AuthenticationContextProvider>
|
|
|
|
<MetadataContextProvider>
|
|
|
|
<ThemeContextProvider>
|
|
|
|
<NavigationContextProvider>
|
|
|
|
{children}
|
|
|
|
</NavigationContextProvider>
|
|
|
|
</ThemeContextProvider>
|
|
|
|
</MetadataContextProvider>
|
|
|
|
</AuthenticationContextProvider>
|
|
|
|
)
|
|
|
|
|
|
|
|
function App() {
|
|
|
|
axios.defaults.withCredentials = true;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="App">
|
|
|
|
<ContextProviders>
|
|
|
|
<div id="wrapper">
|
|
|
|
<BrowserRouter>
|
|
|
|
<Routes>
|
|
|
|
<Route path="" element={<MainPageRedirect/>}/>
|
|
|
|
<Route path="/player/:identifier" element={<PlayerPage/>}>
|
|
|
|
<Route path="" element={<OverviewRedirect/>}/>
|
|
|
|
<Route path="overview" element={<PlayerOverview/>}/>
|
|
|
|
<Route path="sessions" element={<PlayerSessions/>}/>
|
|
|
|
<Route path="pvppve" element={<PlayerPvpPve/>}/>
|
|
|
|
<Route path="servers" element={<PlayerServers/>}/>
|
|
|
|
<Route path="plugins/:serverName" element={<PlayerPluginData/>}/>
|
|
|
|
<Route path="*" element={<ErrorView error={{
|
|
|
|
message: 'Unknown tab address, please correct the address',
|
|
|
|
title: 'No such tab',
|
|
|
|
icon: faMapSigns
|
|
|
|
}}/>}/>
|
|
|
|
</Route>
|
2022-06-05 21:09:46 +02:00
|
|
|
<Route path="/players" element={<PlayersPage/>}>
|
|
|
|
<Route path="" element={<AllPlayers/>}/>
|
|
|
|
<Route path="*" element={<AllPlayers/>}/>
|
|
|
|
</Route>
|
2022-04-06 16:37:23 +02:00
|
|
|
<Route path="/server/:identifier" element={<ServerPage/>}>
|
|
|
|
<Route path="" element={<OverviewRedirect/>}/>
|
|
|
|
<Route path="overview" element={<ServerOverview/>}/>
|
2022-05-23 17:58:06 +02:00
|
|
|
<Route path="online-activity" element={<OnlineActivity/>}/>
|
2022-05-21 19:25:49 +02:00
|
|
|
<Route path="sessions" element={<ServerSessions/>}/>
|
2022-05-22 09:57:06 +02:00
|
|
|
<Route path="pvppve" element={<ServerPvpPve/>}/>
|
2022-05-23 17:58:06 +02:00
|
|
|
<Route path="playerbase" element={<PlayerbaseOverview/>}/>
|
2022-05-22 09:57:06 +02:00
|
|
|
<Route path="retention" element={<></>}/>
|
2022-06-05 20:38:12 +02:00
|
|
|
<Route path="players" element={<ServerPlayers/>}/>
|
2022-06-08 17:24:38 +02:00
|
|
|
<Route path="geolocations" element={<ServerGeolocations/>}/>
|
2022-04-06 16:37:23 +02:00
|
|
|
<Route path="performance" element={<></>}/>
|
|
|
|
<Route path="plugins-overview" element={<></>}/>
|
|
|
|
</Route>
|
2022-07-13 20:21:20 +02:00
|
|
|
<Route path="docs" element={<React.Suspense fallback={<></>}>
|
|
|
|
<SwaggerView/>
|
|
|
|
</React.Suspense>}/>
|
2022-04-06 16:37:23 +02:00
|
|
|
</Routes>
|
|
|
|
</BrowserRouter>
|
|
|
|
</div>
|
|
|
|
</ContextProviders>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default App;
|