@@ -17,133 +17,136 @@ import { SettingsPage } from "./pages/SettingsPage/SettingsPage"
17
17
import { CreateWorkspacePage } from "./pages/TemplatesPages/OrganizationPage/TemplatePage/CreateWorkspacePage"
18
18
import { TemplatePage } from "./pages/TemplatesPages/OrganizationPage/TemplatePage/TemplatePage"
19
19
import { TemplatesPage } from "./pages/TemplatesPages/TemplatesPage"
20
- import { TerminalPage } from "./pages/TerminalPage/TerminalPage"
21
20
import { CreateUserPage } from "./pages/UsersPage/CreateUserPage/CreateUserPage"
22
21
import { UsersPage } from "./pages/UsersPage/UsersPage"
23
22
import { WorkspacePage } from "./pages/WorkspacesPage/WorkspacesPage"
24
23
25
- export const AppRouter : React . FC = ( ) => (
26
- < Routes >
27
- < Route path = "/" >
28
- < Route
29
- index
30
- element = {
31
- < RequireAuth >
32
- < IndexPage />
33
- </ RequireAuth >
34
- }
35
- />
36
-
37
- < Route path = "login" element = { < LoginPage /> } />
38
- < Route path = "healthz" element = { < HealthzPage /> } />
39
- < Route
40
- path = "cli-auth"
41
- element = {
42
- < RequireAuth >
43
- < CliAuthenticationPage />
44
- </ RequireAuth >
45
- }
46
- />
24
+ const TerminalPage = React . lazy ( ( ) => import ( "./pages/TerminalPage/TerminalPage" ) )
47
25
48
- < Route path = "templates" >
26
+ export const AppRouter : React . FC = ( ) => (
27
+ < React . Suspense fallback = { < > </ > } >
28
+ < Routes >
29
+ < Route path = "/" >
49
30
< Route
50
31
index
51
32
element = {
52
- < AuthAndFrame >
53
- < TemplatesPage />
54
- </ AuthAndFrame >
33
+ < RequireAuth >
34
+ < IndexPage />
35
+ </ RequireAuth >
36
+ }
37
+ />
38
+
39
+ < Route path = "login" element = { < LoginPage /> } />
40
+ < Route path = "healthz" element = { < HealthzPage /> } />
41
+ < Route
42
+ path = "cli-auth"
43
+ element = {
44
+ < RequireAuth >
45
+ < CliAuthenticationPage />
46
+ </ RequireAuth >
55
47
}
56
48
/>
57
- < Route path = ":organization/:template" >
49
+
50
+ < Route path = "templates" >
51
+ < Route
52
+ index
53
+ element = {
54
+ < AuthAndFrame >
55
+ < TemplatesPage />
56
+ </ AuthAndFrame >
57
+ }
58
+ />
59
+ < Route path = ":organization/:template" >
60
+ < Route
61
+ index
62
+ element = {
63
+ < AuthAndFrame >
64
+ < TemplatePage />
65
+ </ AuthAndFrame >
66
+ }
67
+ />
68
+ < Route
69
+ path = "create"
70
+ element = {
71
+ < RequireAuth >
72
+ < CreateWorkspacePage />
73
+ </ RequireAuth >
74
+ }
75
+ />
76
+ </ Route >
77
+ </ Route >
78
+
79
+ < Route path = "workspaces" >
80
+ < Route
81
+ path = ":workspace"
82
+ element = {
83
+ < AuthAndFrame >
84
+ < WorkspacePage />
85
+ </ AuthAndFrame >
86
+ }
87
+ />
88
+ </ Route >
89
+
90
+ < Route path = "users" >
58
91
< Route
59
92
index
60
93
element = {
61
94
< AuthAndFrame >
62
- < TemplatePage />
95
+ < UsersPage />
63
96
</ AuthAndFrame >
64
97
}
65
98
/>
66
99
< Route
67
100
path = "create"
68
101
element = {
69
102
< RequireAuth >
70
- < CreateWorkspacePage />
103
+ < CreateUserPage />
71
104
</ RequireAuth >
72
105
}
73
106
/>
74
107
</ Route >
75
- </ Route >
76
-
77
- < Route path = "workspaces" >
78
108
< Route
79
- path = ":workspace "
109
+ path = "orgs "
80
110
element = {
81
111
< AuthAndFrame >
82
- < WorkspacePage />
112
+ < OrgsPage />
83
113
</ AuthAndFrame >
84
114
}
85
115
/>
86
- </ Route >
87
-
88
- < Route path = "users" >
89
116
< Route
90
- index
117
+ path = "settings"
91
118
element = {
92
119
< AuthAndFrame >
93
- < UsersPage />
120
+ < SettingsPage />
94
121
</ AuthAndFrame >
95
122
}
96
123
/>
97
- < Route
98
- path = "create"
99
- element = {
100
- < RequireAuth >
101
- < CreateUserPage />
102
- </ RequireAuth >
103
- }
104
- />
105
- </ Route >
106
- < Route
107
- path = "orgs"
108
- element = {
109
- < AuthAndFrame >
110
- < OrgsPage />
111
- </ AuthAndFrame >
112
- }
113
- />
114
- < Route
115
- path = "settings"
116
- element = {
117
- < AuthAndFrame >
118
- < SettingsPage />
119
- </ AuthAndFrame >
120
- }
121
- />
122
124
123
- < Route path = "preferences" element = { < PreferencesLayout /> } >
124
- < Route path = "account" element = { < AccountPage /> } />
125
- < Route path = "security" element = { < SecurityPage /> } />
126
- < Route path = "ssh-keys" element = { < SSHKeysPage /> } />
127
- < Route path = "linked-accounts" element = { < LinkedAccountsPage /> } />
128
- </ Route >
125
+ < Route path = "preferences" element = { < PreferencesLayout /> } >
126
+ < Route path = "account" element = { < AccountPage /> } />
127
+ < Route path = "security" element = { < SecurityPage /> } />
128
+ < Route path = "ssh-keys" element = { < SSHKeysPage /> } />
129
+ < Route path = "linked-accounts" element = { < LinkedAccountsPage /> } />
130
+ </ Route >
129
131
130
- < Route path = ":username" >
131
- < Route path = ":workspace" >
132
- < Route
133
- path = "terminal"
134
- element = {
135
- < RequireAuth >
136
- < TerminalPage />
137
- </ RequireAuth >
138
- }
139
- />
132
+ < Route path = ":username" >
133
+ < Route path = ":workspace" >
134
+ < Route
135
+ path = "terminal"
136
+ element = {
137
+ < RequireAuth >
138
+ < TerminalPage />
139
+ </ RequireAuth >
140
+ }
141
+ />
142
+ </ Route >
140
143
</ Route >
141
- </ Route >
142
144
143
- { /* Using path="*"" means "match anything", so this route
145
+ { /* Using path="*"" means "match anything", so this route
144
146
acts like a catch-all for URLs that we don't have explicit
145
147
routes for. */ }
146
- < Route path = "*" element = { < NotFoundPage /> } />
147
- </ Route >
148
- </ Routes >
148
+ < Route path = "*" element = { < NotFoundPage /> } />
149
+ </ Route >
150
+ </ Routes >
151
+ </ React . Suspense >
149
152
)
0 commit comments