From 680e058a18c176cd31beaa3ef3e2d76ed262b898 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 18 Oct 2025 20:58:21 -0700 Subject: wrap all import modals in suspense --- frontend/src/pages/Import.tsx | 73 +++++++++++++++++++++++-------------------- 1 file 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 = () => { - {/* JSON Upload Modal */} - setIsJsonModalOpen(false)} - onUpload={handleJsonUpload} - game={ - supportedGames.find((g) => g.internalName === selectedGame) - ?.formattedName || "" - } - /> - - {/* Eamusement Modal */} - setIsEamusementModalOpen(false)} - game={ - supportedGames.find((g) => g.internalName === selectedGame) || - undefined - } - /> - - {/* DivaNet Modal */} - setIsDivaNetModalOpen(false)} - game={ - supportedGames.find((g) => g.internalName === selectedGame) || - undefined - } - /> + {/* Modals wrapped in Suspense */} + Loading...}> + {isJsonModalOpen && ( + setIsJsonModalOpen(false)} + onUpload={handleJsonUpload} + game={ + supportedGames.find((g) => g.internalName === selectedGame) + ?.formattedName || "" + } + /> + )} + {isEamusementModalOpen && ( + setIsEamusementModalOpen(false)} + game={ + supportedGames.find((g) => g.internalName === selectedGame) || + undefined + } + /> + )} + {isDivaNetModalOpen && ( + setIsDivaNetModalOpen(false)} + game={ + supportedGames.find((g) => g.internalName === selectedGame) || + undefined + } + /> + )} + ); }; -- cgit v1.2.3