Skip to content

Commit 5ccc8d9

Browse files
committed
feat: Using code spitting / lazy import
1 parent 80feab9 commit 5ccc8d9

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

src/App.tsx

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import { faGear, faList, faStopwatch } from "@fortawesome/free-solid-svg-icons";
22
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
33
import clsx from "clsx";
4+
import { Suspense, lazy } from "react";
45
import { Link, Navigate, Route, Routes, useLocation } from "react-router-dom";
56
import Toast from "./components/general/Toast";
6-
import IssuesPage from "./pages/IssuesPage";
7-
import SettingsPage from "./pages/SettingsPage";
8-
import TimePage from "./pages/TimePage";
7+
8+
const IssuesPage = lazy(() => import("./pages/IssuesPage"));
9+
const SettingsPage = lazy(() => import("./pages/SettingsPage"));
10+
const TimePage = lazy(() => import("./pages/TimePage"));
911

1012
function App() {
1113
const location = useLocation();
@@ -66,9 +68,32 @@ function App() {
6668
<main className="h-[500px] overflow-y-auto p-2">
6769
<Routes>
6870
<Route index element={<Navigate to="/issues" replace />} />
69-
<Route path="/issues" element={<IssuesPage />} />
70-
<Route path="/time" element={<TimePage />} />
71-
<Route path="/settings" element={<SettingsPage />} />
71+
72+
<Route
73+
path="/issues"
74+
element={
75+
<Suspense>
76+
<IssuesPage />
77+
</Suspense>
78+
}
79+
/>
80+
<Route
81+
path="/time"
82+
element={
83+
<Suspense>
84+
<TimePage />
85+
</Suspense>
86+
}
87+
/>
88+
<Route
89+
path="/settings"
90+
element={
91+
<Suspense>
92+
<SettingsPage />
93+
</Suspense>
94+
}
95+
/>
96+
7297
<Route path="*" element={<Toast type="error" message="Page not found!" allowClose={false} />} />
7398
</Routes>
7499
</main>

0 commit comments

Comments
 (0)