@@ -2,8 +2,14 @@ import { useSelector } from "@xstate/react"
2
2
import { FeatureNames } from "api/types"
3
3
import { FullScreenLoader } from "components/Loader/FullScreenLoader"
4
4
import { RequirePermission } from "components/RequirePermission/RequirePermission"
5
+ import IndexPage from "pages"
6
+ import AuditPage from "pages/AuditPage/AuditPage"
7
+ import LoginPage from "pages/LoginPage/LoginPage"
5
8
import { SetupPage } from "pages/SetupPage/SetupPage"
6
9
import { TemplateSettingsPage } from "pages/TemplateSettingsPage/TemplateSettingsPage"
10
+ import TemplatesPage from "pages/TemplatesPage/TemplatesPage"
11
+ import UsersPage from "pages/UsersPage/UsersPage"
12
+ import WorkspacesPage from "pages/WorkspacesPage/WorkspacesPage"
7
13
import { FC , lazy , Suspense , useContext } from "react"
8
14
import { Route , Routes } from "react-router-dom"
9
15
import { selectPermissions } from "xServices/auth/authSelectors"
@@ -12,28 +18,27 @@ import { XServiceContext } from "xServices/StateContext"
12
18
import { AuthAndFrame } from "./components/AuthAndFrame/AuthAndFrame"
13
19
import { RequireAuth } from "./components/RequireAuth/RequireAuth"
14
20
import { SettingsLayout } from "./components/SettingsLayout/SettingsLayout"
15
- import { IndexPage } from "./pages"
16
- import { NotFoundPage } from "./pages/404Page/404Page"
17
- import { CliAuthenticationPage } from "./pages/CliAuthPage/CliAuthPage"
18
- import { HealthzPage } from "./pages/HealthzPage/HealthzPage"
19
- import { LoginPage } from "./pages/LoginPage/LoginPage"
20
- import { TemplatesPage } from "./pages/TemplatesPage/TemplatesPage"
21
- import { AccountPage } from "./pages/UserSettingsPage/AccountPage/AccountPage"
22
- import { SecurityPage } from "./pages/UserSettingsPage/SecurityPage/SecurityPage"
23
- import { SSHKeysPage } from "./pages/UserSettingsPage/SSHKeysPage/SSHKeysPage"
24
- import { CreateUserPage } from "./pages/UsersPage/CreateUserPage/CreateUserPage"
25
- import { UsersPage } from "./pages/UsersPage/UsersPage"
26
- import { WorkspaceBuildPage } from "./pages/WorkspaceBuildPage/WorkspaceBuildPage"
27
- import { WorkspacePage } from "./pages/WorkspacePage/WorkspacePage"
28
- import { WorkspaceSchedulePage } from "./pages/WorkspaceSchedulePage/WorkspaceSchedulePage"
29
21
22
+ // Lazy load pages
23
+ // - Pages that are secondary, not in the main navigation or not usually accessed
24
+ // - Pages that use heavy dependencies like charts or time libraries
25
+ const NotFoundPage = lazy ( ( ) => import ( "./pages/404Page/404Page" ) )
26
+ const CliAuthenticationPage = lazy ( ( ) => import ( "./pages/CliAuthPage/CliAuthPage" ) )
27
+ const HealthzPage = lazy ( ( ) => import ( "./pages/HealthzPage/HealthzPage" ) )
28
+ const AccountPage = lazy ( ( ) => import ( "./pages/UserSettingsPage/AccountPage/AccountPage" ) )
29
+ const SecurityPage = lazy ( ( ) => import ( "./pages/UserSettingsPage/SecurityPage/SecurityPage" ) )
30
+ const SSHKeysPage = lazy ( ( ) => import ( "./pages/UserSettingsPage/SSHKeysPage/SSHKeysPage" ) )
31
+ const CreateUserPage = lazy ( ( ) => import ( "./pages/UsersPage/CreateUserPage/CreateUserPage" ) )
32
+ const WorkspaceBuildPage = lazy ( ( ) => import ( "./pages/WorkspaceBuildPage/WorkspaceBuildPage" ) )
33
+ const WorkspacePage = lazy ( ( ) => import ( "./pages/WorkspacePage/WorkspacePage" ) )
34
+ const WorkspaceSchedulePage = lazy (
35
+ ( ) => import ( "./pages/WorkspaceSchedulePage/WorkspaceSchedulePage" ) ,
36
+ )
30
37
const WorkspaceAppErrorPage = lazy (
31
38
( ) => import ( "./pages/WorkspaceAppErrorPage/WorkspaceAppErrorPage" ) ,
32
39
)
33
40
const TerminalPage = lazy ( ( ) => import ( "./pages/TerminalPage/TerminalPage" ) )
34
- const WorkspacesPage = lazy ( ( ) => import ( "./pages/WorkspacesPage/WorkspacesPage" ) )
35
41
const CreateWorkspacePage = lazy ( ( ) => import ( "./pages/CreateWorkspacePage/CreateWorkspacePage" ) )
36
- const AuditPage = lazy ( ( ) => import ( "./pages/AuditPage/AuditPage" ) )
37
42
const TemplatePage = lazy ( ( ) => import ( "./pages/TemplatePage/TemplatePage" ) )
38
43
39
44
export const AppRouter : FC = ( ) => {
@@ -133,9 +138,6 @@ export const AppRouter: FC = () => {
133
138
/>
134
139
</ Route >
135
140
136
- { /* REMARK: Route under construction
137
- Eventually, we should gate this page
138
- with permissions and licensing */ }
139
141
< Route path = "/audit" >
140
142
< Route
141
143
index
0 commit comments