aboutsummaryrefslogtreecommitdiffstats
path: root/frontend
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-10-18 20:58:21 -0700
committerPinapelz <yukais@pinapelz.com>2025-10-18 20:58:28 -0700
commit680e058a18c176cd31beaa3ef3e2d76ed262b898 (patch)
tree468778bfb69c91cd982984b6b0180fbdf2956dfc /frontend
parentb1231975d352857cde59982cbc937cc82483bb27 (diff)
wrap all import modals in suspense
Diffstat (limited to 'frontend')
-rw-r--r--frontend/src/pages/Import.tsx73
1 files changed, 39 insertions, 34 deletions
diff --git a/frontend/src/pages/Import.tsx b/frontend/src/pages/Import.tsx
index dc88ab4..b2e531b 100644
--- a/frontend/src/pages/Import.tsx
+++ b/frontend/src/pages/Import.tsx
@@ -1,13 +1,14 @@
-import { useState, useEffect } from "react";
+import { useState, useEffect, Suspense, lazy } from "react";
import { useNavigate } from "react-router";
import { useAuth } from "../contexts/AuthContext";
-import JsonUploadModal from "../components/modals/JsonUploadModal";
-import EamusementModal from "../components/modals/EamusementModal";
import SessionExpiredPopup from "../components/SessionExpiredPopup";
import type { SupportedGame } from "../types/game";
import { uploadScore } from "../utils/scoreUpload";
import { NavBar } from "../components/NavBar";
-import DivaNetModal from "../components/modals/DivaNetModal";
+
+const JsonUploadModal = lazy(() => import("../components/modals/JsonUploadModal"));
+const EamusementModal = lazy(() => import("../components/modals/EamusementModal"));
+const DivaNetModal = lazy(() => import("../components/modals/DivaNetModal"));
const Import = () => {
const { user, isLoading, logout } = useAuth();
@@ -272,36 +273,40 @@ const Import = () => {
</div>
</div>
- {/* JSON Upload Modal */}
- <JsonUploadModal
- isOpen={isJsonModalOpen}
- onClose={() => setIsJsonModalOpen(false)}
- onUpload={handleJsonUpload}
- game={
- supportedGames.find((g) => g.internalName === selectedGame)
- ?.formattedName || ""
- }
- />
-
- {/* Eamusement Modal */}
- <EamusementModal
- isOpen={isEamusementModalOpen}
- onClose={() => setIsEamusementModalOpen(false)}
- game={
- supportedGames.find((g) => g.internalName === selectedGame) ||
- undefined
- }
- />
-
- {/* DivaNet Modal */}
- <DivaNetModal
- isOpen={isDivaNetModalOpen}
- onClose={() => setIsDivaNetModalOpen(false)}
- game={
- supportedGames.find((g) => g.internalName === selectedGame) ||
- undefined
- }
- />
+ {/* Modals wrapped in Suspense */}
+ <Suspense fallback={<div>Loading...</div>}>
+ {isJsonModalOpen && (
+ <JsonUploadModal
+ isOpen={isJsonModalOpen}
+ onClose={() => setIsJsonModalOpen(false)}
+ onUpload={handleJsonUpload}
+ game={
+ supportedGames.find((g) => g.internalName === selectedGame)
+ ?.formattedName || ""
+ }
+ />
+ )}
+ {isEamusementModalOpen && (
+ <EamusementModal
+ isOpen={isEamusementModalOpen}
+ onClose={() => setIsEamusementModalOpen(false)}
+ game={
+ supportedGames.find((g) => g.internalName === selectedGame) ||
+ undefined
+ }
+ />
+ )}
+ {isDivaNetModalOpen && (
+ <DivaNetModal
+ isOpen={isDivaNetModalOpen}
+ onClose={() => setIsDivaNetModalOpen(false)}
+ game={
+ supportedGames.find((g) => g.internalName === selectedGame) ||
+ undefined
+ }
+ />
+ )}
+ </Suspense>
</div>
);
};
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage