@@ -11,7 +11,7 @@ import TemplatesPage from "pages/TemplatesPage/TemplatesPage"
11
11
import UsersPage from "pages/UsersPage/UsersPage"
12
12
import WorkspacesPage from "pages/WorkspacesPage/WorkspacesPage"
13
13
import { FC , lazy , Suspense } from "react"
14
- import { Route , Routes } from "react-router-dom"
14
+ import { Route , Routes , BrowserRouter as Router } from "react-router-dom"
15
15
import { DashboardLayout } from "./components/DashboardLayout/DashboardLayout"
16
16
import { RequireAuth } from "./components/RequireAuth/RequireAuth"
17
17
import { SettingsLayout } from "./components/SettingsLayout/SettingsLayout"
@@ -120,112 +120,117 @@ const CreateTemplatePage = lazy(
120
120
export const AppRouter : FC = ( ) => {
121
121
return (
122
122
< Suspense fallback = { < FullScreenLoader /> } >
123
- < Routes >
124
- < Route path = "login" element = { < LoginPage /> } />
125
- < Route path = "setup" element = { < SetupPage /> } />
123
+ < Router >
124
+ < Routes >
125
+ < Route path = "login" element = { < LoginPage /> } />
126
+ < Route path = "setup" element = { < SetupPage /> } />
126
127
127
- { /* Dashboard routes */ }
128
- < Route element = { < RequireAuth /> } >
129
- < Route element = { < DashboardLayout /> } >
130
- < Route index element = { < IndexPage /> } />
128
+ { /* Dashboard routes */ }
129
+ < Route element = { < RequireAuth /> } >
130
+ < Route element = { < DashboardLayout /> } >
131
+ < Route index element = { < IndexPage /> } />
131
132
132
- < Route path = "gitauth" element = { < GitAuthPage /> } />
133
+ < Route path = "gitauth" element = { < GitAuthPage /> } />
133
134
134
- < Route path = "workspaces" element = { < WorkspacesPage /> } />
135
+ < Route path = "workspaces" element = { < WorkspacesPage /> } />
135
136
136
- < Route path = "starter-templates" >
137
- < Route index element = { < StarterTemplatesPage /> } />
138
- < Route path = ":exampleId" element = { < StarterTemplatePage /> } />
139
- </ Route >
137
+ < Route path = "starter-templates" >
138
+ < Route index element = { < StarterTemplatesPage /> } />
139
+ < Route path = ":exampleId" element = { < StarterTemplatePage /> } />
140
+ </ Route >
140
141
141
- < Route path = "templates" >
142
- < Route index element = { < TemplatesPage /> } />
143
- < Route path = "new" element = { < CreateTemplatePage /> } />
144
- < Route path = ":template" >
145
- < Route element = { < TemplateLayout /> } >
146
- < Route index element = { < TemplateSummaryPage /> } />
147
- < Route
148
- path = "permissions"
149
- element = { < TemplatePermissionsPage /> }
150
- />
142
+ < Route path = "templates" >
143
+ < Route index element = { < TemplatesPage /> } />
144
+ < Route path = "new" element = { < CreateTemplatePage /> } />
145
+ < Route path = ":template" >
146
+ < Route element = { < TemplateLayout /> } >
147
+ < Route index element = { < TemplateSummaryPage /> } />
148
+ < Route
149
+ path = "permissions"
150
+ element = { < TemplatePermissionsPage /> }
151
+ />
152
+ </ Route >
153
+
154
+ < Route path = "workspace" element = { < CreateWorkspacePage /> } />
155
+ < Route path = "settings" element = { < TemplateSettingsPage /> } />
156
+ < Route path = "versions" >
157
+ < Route path = ":version" element = { < TemplateVersionPage /> } />
158
+ </ Route >
151
159
</ Route >
160
+ </ Route >
152
161
153
- < Route path = "workspace" element = { < CreateWorkspacePage /> } />
154
- < Route path = "settings" element = { < TemplateSettingsPage /> } />
155
- < Route path = "versions" >
156
- < Route path = ":version" element = { < TemplateVersionPage /> } />
162
+ < Route path = "users" >
163
+ < Route element = { < UsersLayout /> } >
164
+ < Route index element = { < UsersPage /> } />
157
165
</ Route >
158
- </ Route >
159
- </ Route >
160
166
161
- < Route path = "users" >
162
- < Route element = { < UsersLayout /> } >
163
- < Route index element = { < UsersPage /> } />
167
+ < Route path = "create" element = { < CreateUserPage /> } />
164
168
</ Route >
165
169
166
- < Route path = "create" element = { < CreateUserPage /> } />
167
- </ Route >
170
+ < Route path = "/groups" >
171
+ < Route element = { < UsersLayout /> } >
172
+ < Route index element = { < GroupsPage /> } />
173
+ </ Route >
168
174
169
- < Route path = "/groups" >
170
- < Route element = { < UsersLayout /> } >
171
- < Route index element = { < GroupsPage /> } />
175
+ < Route path = "create" element = { < CreateGroupPage /> } />
176
+ < Route path = ":groupId" element = { < GroupPage /> } />
177
+ < Route
178
+ path = ":groupId/settings"
179
+ element = { < SettingsGroupPage /> }
180
+ />
172
181
</ Route >
173
182
174
- < Route path = "create" element = { < CreateGroupPage /> } />
175
- < Route path = ":groupId" element = { < GroupPage /> } />
176
- < Route path = ":groupId/settings" element = { < SettingsGroupPage /> } />
177
- </ Route >
178
-
179
- < Route path = "/audit" element = { < AuditPage /> } />
180
-
181
- < Route
182
- path = "/settings/deployment"
183
- element = { < DeploySettingsLayout /> }
184
- >
185
- < Route path = "general" element = { < GeneralSettingsPage /> } />
186
- < Route path = "security" element = { < SecuritySettingsPage /> } />
187
- < Route path = "appearance" element = { < AppearanceSettingsPage /> } />
188
- < Route path = "network" element = { < NetworkSettingsPage /> } />
189
- < Route path = "userauth" element = { < UserAuthSettingsPage /> } />
190
- < Route path = "gitauth" element = { < GitAuthSettingsPage /> } />
191
- </ Route >
183
+ < Route path = "/audit" element = { < AuditPage /> } />
184
+
185
+ < Route
186
+ path = "/settings/deployment"
187
+ element = { < DeploySettingsLayout /> }
188
+ >
189
+ < Route path = "general" element = { < GeneralSettingsPage /> } />
190
+ < Route path = "security" element = { < SecuritySettingsPage /> } />
191
+ < Route path = "appearance" element = { < AppearanceSettingsPage /> } />
192
+ < Route path = "network" element = { < NetworkSettingsPage /> } />
193
+ < Route path = "userauth" element = { < UserAuthSettingsPage /> } />
194
+ < Route path = "gitauth" element = { < GitAuthSettingsPage /> } />
195
+ </ Route >
192
196
193
- < Route path = "settings" element = { < SettingsLayout /> } >
194
- < Route path = "account" element = { < AccountPage /> } />
195
- < Route path = "security" element = { < SecurityPage /> } />
196
- < Route path = "ssh-keys" element = { < SSHKeysPage /> } />
197
- < Route path = "tokens" element = { < TokensPage /> } />
198
- </ Route >
197
+ < Route path = "settings" element = { < SettingsLayout /> } >
198
+ < Route path = "account" element = { < AccountPage /> } />
199
+ < Route path = "security" element = { < SecurityPage /> } />
200
+ < Route path = "ssh-keys" element = { < SSHKeysPage /> } />
201
+ < Route path = "tokens" element = { < TokensPage /> } />
202
+ </ Route >
199
203
200
- < Route path = "/@:username" >
201
- < Route path = ":workspace" >
202
- < Route index element = { < WorkspacePage /> } />
203
- < Route path = "schedule" element = { < WorkspaceSchedulePage /> } />
204
- < Route
205
- path = "builds/:buildNumber"
206
- element = { < WorkspaceBuildPage /> }
207
- />
208
- < Route
209
- path = "change-version"
210
- element = { < WorkspaceChangeVersionPage /> }
211
- />
204
+ < Route path = "/@:username" >
205
+ < Route path = ":workspace" >
206
+ < Route index element = { < WorkspacePage /> } />
207
+ < Route path = "schedule" element = { < WorkspaceSchedulePage /> } />
208
+ < Route
209
+ path = "builds/:buildNumber"
210
+ element = { < WorkspaceBuildPage /> }
211
+ />
212
+ < Route
213
+ path = "change-version"
214
+ element = { < WorkspaceChangeVersionPage /> }
215
+ />
216
+ </ Route >
212
217
</ Route >
213
218
</ Route >
214
- </ Route >
215
219
216
- { /* Terminal and CLI auth pages don't have the dashboard layout */ }
217
- < Route
218
- path = "/@:username/:workspace/terminal"
219
- element = { < TerminalPage /> }
220
- />
221
- < Route path = "cli-auth" element = { < CliAuthenticationPage /> } />
222
- </ Route >
220
+ { /* Terminal and CLI auth pages don't have the dashboard layout */ }
221
+ < Route
222
+ path = "/@:username/:workspace/terminal"
223
+ element = { < TerminalPage /> }
224
+ />
225
+ < Route path = "cli-auth" element = { < CliAuthenticationPage /> } />
226
+ </ Route >
223
227
224
- { /* Using path="*"" means "match anything", so this route
228
+ { /* Using path="*"" means "match anything", so this route
225
229
acts like a catch-all for URLs that we don't have explicit
226
230
routes for. */ }
227
- < Route path = "*" element = { < NotFoundPage /> } />
228
- </ Routes >
231
+ < Route path = "*" element = { < NotFoundPage /> } />
232
+ </ Routes >
233
+ </ Router >
229
234
</ Suspense >
230
235
)
231
236
}
0 commit comments