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