]> git.localhorst.tv Git - alttp.git/blob - resources/js/app/Routes.js
ca543ee7088b0de66fb6c85c89e39d0d34e05c4d
[alttp.git] / resources / js / app / Routes.js
1 import PropTypes from 'prop-types';
2 import React from 'react';
3 import { Navigate, Route, Routes } from 'react-router-dom';
4
5 import FullLayout from './FullLayout';
6 import AlttpSeed from '../pages/AlttpSeed';
7 import DiscordBot from '../pages/DiscordBot';
8 import DoorsTracker from '../pages/DoorsTracker';
9 import Event from '../pages/Event';
10 import Front from '../pages/Front';
11 import Map from '../pages/Map';
12 import Schedule from '../pages/Schedule';
13 import Technique from '../pages/Technique';
14 import Techniques from '../pages/Techniques';
15 import Tournament from '../pages/Tournament';
16 import User from '../pages/User';
17
18 const AppRoutes = ({ doLogout }) => <Routes>
19         <Route element={<FullLayout doLogout={doLogout} />}>
20                 <Route
21                         path="discord-bot"
22                         element={<DiscordBot />}
23                 />
24                 <Route
25                         path="dungeons"
26                         element={<Techniques namespace="dungeons" type="dungeon" />}
27                 />
28                 <Route
29                         path="dungeons/:name"
30                         element={<Technique basepath="dungeons" type="dungeon" />}
31                 />
32                 <Route
33                         path="events/:name"
34                         element={<Event />}
35                 />
36                 <Route path="h/:hash" element={<AlttpSeed />} />
37                 <Route
38                         path="locations"
39                         element={<Techniques namespace="locations" type="location" />}
40                 />
41                 <Route
42                         path="locations/:name"
43                         element={<Technique basepath="locations" type="location" />}
44                 />
45                 <Route path="map">
46                         <Route index element={<Navigate replace to="lw" />} />
47                         <Route path=":activeMap" element={<Map />} />
48                 </Route>
49                 <Route
50                         path="modes"
51                         element={<Techniques namespace="modes" type="mode" />}
52                 />
53                 <Route
54                         path="modes/:name"
55                         element={<Technique basepath="modes" type="mode" />}
56                 />
57                 <Route
58                         path="rulesets"
59                         element={<Techniques namespace="rulesets" type="ruleset" />}
60                         />
61                 <Route
62                         path="rulesets/:name"
63                         element={<Technique basepath="rulesets" type="ruleset" />}
64                 />
65                 <Route path="schedule" element={<Schedule />} />
66                 <Route
67                         path="tech"
68                         element={<Techniques namespace="techniques" type="tech" />}
69                 />
70                 <Route
71                         path="tech/:name"
72                         element={<Technique basepath="tech" type="tech" />}
73                 />
74                 <Route path="tournaments/:id" element={<Tournament />} />
75                 <Route path="users/:id" element={<User />} />
76                 <Route path="/" element={<Front />} />
77                 <Route path="*" element={<Navigate to="/" />} />
78         </Route>
79         <Route
80                 path="doors-tracker"
81                 element={<DoorsTracker />}
82         />
83 </Routes>;
84
85 AppRoutes.propTypes = {
86         doLogout: PropTypes.func,
87 };
88
89 export default AppRoutes;