]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/app/Routes.js
improved directory structure
[alttp.git] / resources / js / app / Routes.js
diff --git a/resources/js/app/Routes.js b/resources/js/app/Routes.js
new file mode 100644 (file)
index 0000000..5f2ed26
--- /dev/null
@@ -0,0 +1,84 @@
+import PropTypes from 'prop-types';
+import React from 'react';
+import { Navigate, Route, Routes } from 'react-router-dom';
+
+import FullLayout from './FullLayout';
+import AlttpSeed from '../pages/AlttpSeed';
+import DoorsTracker from '../pages/DoorsTracker';
+import Event from '../pages/Event';
+import Front from '../pages/Front';
+import Map from '../pages/Map';
+import Schedule from '../pages/Schedule';
+import Technique from '../pages/Technique';
+import Techniques from '../pages/Techniques';
+import Tournament from '../pages/Tournament';
+import User from '../pages/User';
+
+const AppRoutes = ({ doLogout }) => <Routes>
+       <Route element={<FullLayout doLogout={doLogout} />}>
+               <Route
+                       path="dungeons"
+                       element={<Techniques namespace="dungeons" type="dungeon" />}
+               />
+               <Route
+                       path="dungeons/:name"
+                       element={<Technique basepath="dungeons" type="dungeon" />}
+               />
+               <Route
+                       path="events/:name"
+                       element={<Event />}
+               />
+               <Route path="h/:hash" element={<AlttpSeed />} />
+               <Route
+                       path="locations"
+                       element={<Techniques namespace="locations" type="location" />}
+               />
+               <Route
+                       path="locations/:name"
+                       element={<Technique basepath="locations" type="location" />}
+               />
+               <Route path="map">
+                       <Route index element={<Navigate replace to="lw" />} />
+                       <Route path=":activeMap" element={<Map />} />
+               </Route>
+               <Route
+                       path="modes"
+                       element={<Techniques namespace="modes" type="mode" />}
+               />
+               <Route
+                       path="modes/:name"
+                       element={<Technique basepath="modes" type="mode" />}
+               />
+               <Route
+                       path="rulesets"
+                       element={<Techniques namespace="rulesets" type="ruleset" />}
+                       />
+               <Route
+                       path="rulesets/:name"
+                       element={<Technique basepath="rulesets" type="ruleset" />}
+               />
+               <Route path="schedule" element={<Schedule />} />
+               <Route
+                       path="tech"
+                       element={<Techniques namespace="techniques" type="tech" />}
+               />
+               <Route
+                       path="tech/:name"
+                       element={<Technique basepath="tech" type="tech" />}
+               />
+               <Route path="tournaments/:id" element={<Tournament />} />
+               <Route path="users/:id" element={<User />} />
+               <Route path="/" element={<Front />} />
+               <Route path="*" element={<Navigate to="/" />} />
+       </Route>
+       <Route
+               path="doors-tracker"
+               element={<DoorsTracker />}
+       />
+</Routes>;
+
+AppRoutes.propTypes = {
+       doLogout: PropTypes.func,
+};
+
+export default AppRoutes;