@@ -2,8 +2,14 @@ import { useSelector } from "@xstate/react"
22import { FeatureNames } from "api/types"
33import { FullScreenLoader } from "components/Loader/FullScreenLoader"
44import { RequirePermission } from "components/RequirePermission/RequirePermission"
5+ import IndexPage from "pages"
6+ import AuditPage from "pages/AuditPage/AuditPage"
7+ import LoginPage from "pages/LoginPage/LoginPage"
58import { SetupPage } from "pages/SetupPage/SetupPage"
69import { 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"
713import { FC , lazy , Suspense , useContext } from "react"
814import { Route , Routes } from "react-router-dom"
915import { selectPermissions } from "xServices/auth/authSelectors"
@@ -12,28 +18,27 @@ import { XServiceContext } from "xServices/StateContext"
1218import { AuthAndFrame } from "./components/AuthAndFrame/AuthAndFrame"
1319import { RequireAuth } from "./components/RequireAuth/RequireAuth"
1420import { 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"
2921
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+ )
3037const WorkspaceAppErrorPage = lazy (
3138 ( ) => import ( "./pages/WorkspaceAppErrorPage/WorkspaceAppErrorPage" ) ,
3239)
3340const TerminalPage = lazy ( ( ) => import ( "./pages/TerminalPage/TerminalPage" ) )
34- const WorkspacesPage = lazy ( ( ) => import ( "./pages/WorkspacesPage/WorkspacesPage" ) )
3541const CreateWorkspacePage = lazy ( ( ) => import ( "./pages/CreateWorkspacePage/CreateWorkspacePage" ) )
36- const AuditPage = lazy ( ( ) => import ( "./pages/AuditPage/AuditPage" ) )
3742const TemplatePage = lazy ( ( ) => import ( "./pages/TemplatePage/TemplatePage" ) )
3843
3944export const AppRouter : FC = ( ) => {
@@ -133,9 +138,6 @@ export const AppRouter: FC = () => {
133138 />
134139 </ Route >
135140
136- { /* REMARK: Route under construction
137- Eventually, we should gate this page
138- with permissions and licensing */ }
139141 < Route path = "/audit" >
140142 < Route
141143 index
0 commit comments