Skip to content

Commit 9884cc3

Browse files
authored
Fix: Wrap router in suspense (#918)
1 parent 02449e4 commit 9884cc3

2 files changed

Lines changed: 25 additions & 14 deletions

File tree

web/client/src/main.tsx

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { type HTMLAttributes } from 'react'
1+
import React, { Suspense, type HTMLAttributes } from 'react'
22
import ThemeProvider from '@context/theme'
33
import ReactDOM from 'react-dom/client'
44
import { RouterProvider } from 'react-router-dom'
@@ -8,6 +8,8 @@ import Header from './library/pages/root/Header'
88
import Footer from './library/pages/root/Footer'
99
import { router } from './routes'
1010
import './index.css'
11+
import Loading from '@components/loading/Loading'
12+
import Spinner from '@components/logo/Spinner'
1113

1214
export interface PropsComponent extends HTMLAttributes<HTMLElement> {}
1315

@@ -28,7 +30,18 @@ ReactDOM.createRoot(getRootNode()).render(
2830
<Header />
2931
<Divider />
3032
<main className="h-full overflow-hidden">
31-
<RouterProvider router={router} />
33+
<Suspense
34+
fallback={
35+
<div className="flex justify-center items-center w-full h-full">
36+
<Loading className="inline-block">
37+
<Spinner className="w-3 h-3 border border-neutral-10 mr-4" />
38+
<h3 className="text-md">Loading Page...</h3>
39+
</Loading>
40+
</div>
41+
}
42+
>
43+
<RouterProvider router={router} />
44+
</Suspense>
3245
</main>
3346
<Divider />
3447
<Footer />

web/client/src/routes.tsx

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,10 @@ import Loading from '@components/loading/Loading'
55
import Spinner from '@components/logo/Spinner'
66
import IDE from './library/pages/ide/IDE'
77

8-
const Editor = lazy(async () => await import('./library/pages/editor/Editor'))
9-
const Docs = lazy(async () => await import('./library/pages/docs/Docs'))
10-
const DocsContent = lazy(
11-
async () => await import('./library/pages/docs/Content'),
12-
)
13-
const DocsWelcome = lazy(
14-
async () => await import('./library/pages/docs/Welcome'),
15-
)
8+
const Editor = lazy(() => import('./library/pages/editor/Editor'))
9+
const Docs = lazy(() => import('./library/pages/docs/Docs'))
10+
const DocsContent = lazy(() => import('./library/pages/docs/Content'))
11+
const DocsWelcome = lazy(() => import('./library/pages/docs/Welcome'))
1612

1713
export const EnumRoutes = {
1814
Ide: '/',
@@ -68,10 +64,12 @@ export const router = createBrowserRouter([
6864
element: (
6965
<Suspense
7066
fallback={
71-
<Loading className="inline-block">
72-
<Spinner className="w-5 h-5 border border-neutral-10 mr-4" />
73-
<h3 className="text-xl">Loading Content...</h3>
74-
</Loading>
67+
<div className="flex justify-center items-center w-full h-full">
68+
<Loading className="inline-block">
69+
<Spinner className="w-3 h-3 border border-neutral-10 mr-4" />
70+
<h3 className="text-md">Loading Content...</h3>
71+
</Loading>
72+
</div>
7573
}
7674
>
7775
<DocsContent />

0 commit comments

Comments
 (0)