From acb0dc5483a3c7b9d2efec0805fe7f533dcb6147 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Mon, 20 Oct 2025 16:01:47 -0700 Subject: seperate dancerush and dancearound eamuse import modals --- .../src/components/modals/DanceAroundModal.tsx | 155 ++++++++++++++++++++ frontend/src/components/modals/DancerushModal.tsx | 155 ++++++++++++++++++++ frontend/src/components/modals/EamusementModal.tsx | 160 --------------------- frontend/src/pages/Import.tsx | 32 +++-- 4 files changed, 332 insertions(+), 170 deletions(-) create mode 100644 frontend/src/components/modals/DanceAroundModal.tsx create mode 100644 frontend/src/components/modals/DancerushModal.tsx delete mode 100644 frontend/src/components/modals/EamusementModal.tsx diff --git a/frontend/src/components/modals/DanceAroundModal.tsx b/frontend/src/components/modals/DanceAroundModal.tsx new file mode 100644 index 0000000..45f1f6f --- /dev/null +++ b/frontend/src/components/modals/DanceAroundModal.tsx @@ -0,0 +1,155 @@ +import type { SupportedGame } from "../../types/game"; +import { EamuseImportInfo } from "../../types/constants"; + +interface DanceAroundModalProps { + isOpen: boolean; + onClose: () => void; + game: SupportedGame | undefined; + renderAsCard?: () => void; +} + +const DanceAroundModal = ({ + isOpen, + onClose, + game, + renderAsCard +}: DanceAroundModalProps) => { + if (renderAsCard) { + return ( +
+
+ + + +
+

+ Dance aROUND e-amusement Play History +

+

+ Import via scraping your Dance aROUND playdata from KONAMI e-amusement +

+ +
+ ); + } + + if (!isOpen) return null; + + const handleClose = () => { + onClose(); + }; + if(game === undefined){ + return "Sorry, due to some extreme error the game you're looking for doesn't seem to exist..." + } + return ( +
+ {/* Backdrop */} +
+ + {/* Modal */} +
+
+ {/* Header */} +
+

+ Import Dance aROUND Data +

+

+ Follow the instructions below to import your data +

+
+ + {/* Warning */} +
+

+ You may or may need to be subscribed to{" "} + + KONAMI's e-amusement Basic and/or Premium course + {" "} + to view a exportable playdata history for certain games. +

+
+ + {/* Instructions */} +
+

+ Instructions: +

+
    +
  1. Log into your e-amusement account
  2. + {EamuseImportInfo["dancearound"] ? ( +
  3. + Navigate to your{" "} + + Dance aROUND score data page + {" "} + Dance aROUND score data page +
  4. + ) : ( +
  5. Navigate to your Dance aROUND score data page
  6. + )} + {EamuseImportInfo["dancearound"] ? ( +
  7. + Install the userscript to your browser (use an extension such + as Tampermonkey) +
  8. + ) : ( +
  9. + Scrape the data using any method of your choice and translate + it into a Mirage Dance aROUND compatible JSON format +
  10. + )} +
  11. Upload the resulting JSON file into Mirage using the Batch-Manual Upload functionality
  12. +
  13. Verify that all data has been imported correctly
  14. +
+
+ + {/* Additional Info */} + + + {/* Actions */} +
+ +
+
+
+
+ ); +}; + +export default DanceAroundModal; diff --git a/frontend/src/components/modals/DancerushModal.tsx b/frontend/src/components/modals/DancerushModal.tsx new file mode 100644 index 0000000..a13ce2a --- /dev/null +++ b/frontend/src/components/modals/DancerushModal.tsx @@ -0,0 +1,155 @@ +import type { SupportedGame } from "../../types/game"; +import { EamuseImportInfo } from "../../types/constants"; + +interface DancerushModalProps { + isOpen: boolean; + onClose: () => void; + game: SupportedGame | undefined; + renderAsCard?: () => void; +} + +const DancerushModal = ({ + isOpen, + onClose, + game, + renderAsCard +}: DancerushModalProps) => { + if (renderAsCard) { + return ( +
+
+ + + +
+

+ DANCERUSH e-amusement Play History +

+

+ Import via scraping your DANCERUSH playdata from KONAMI e-amusement +

+ +
+ ); + } + + if (!isOpen) return null; + + const handleClose = () => { + onClose(); + }; + if(game === undefined){ + return "Sorry, due to some extreme error the game you're looking for doesn't seem to exist..." + } + return ( +
+ {/* Backdrop */} +
+ + {/* Modal */} +
+
+ {/* Header */} +
+

+ Import DANCERUSH Data +

+

+ Follow the instructions below to import your data +

+
+ + {/* Warning */} +
+

+ You may or may need to be subscribed to{" "} + + KONAMI's e-amusement Basic and/or Premium course + {" "} + to view a exportable playdata history for certain games. +

+
+ + {/* Instructions */} +
+

+ Instructions: +

+
    +
  1. Log into your e-amusement account
  2. + {EamuseImportInfo["dancerush"] ? ( +
  3. + Navigate to your{" "} + + DANCERUSH score data page + {" "} + DANCERUSH score data page +
  4. + ) : ( +
  5. Navigate to your DANCERUSH score data page
  6. + )} + {EamuseImportInfo["dancerush"] ? ( +
  7. + Install the userscript to your browser (use an extension such + as Tampermonkey) +
  8. + ) : ( +
  9. + Scrape the data using any method of your choice and translate + it into a Mirage DANCERUSH compatible JSON format +
  10. + )} +
  11. Upload the resulting JSON file into Mirage using the Batch-Manual Upload functionality
  12. +
  13. Verify that all data has been imported correctly
  14. +
+
+ + {/* Additional Info */} + + + {/* Actions */} +
+ +
+
+
+
+ ); +}; + +export default DancerushModal; diff --git a/frontend/src/components/modals/EamusementModal.tsx b/frontend/src/components/modals/EamusementModal.tsx deleted file mode 100644 index cb5c542..0000000 --- a/frontend/src/components/modals/EamusementModal.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import type { SupportedGame } from "../../types/game"; -import { EamuseImportInfo } from "../../types/constants"; - -interface EamusementUploadModalProps { - isOpen: boolean; - onClose: () => void; - game: SupportedGame | undefined; - renderAsCard?: () => void; -} - -const scriptLinkMap = { - "dancerush": "https://github.com/pinapelz/Mirage/raw/refs/heads/main/scripts/dancerush/dancerush_play_history.user.js", - "dancearound": "https://github.com/pinapelz/Mirage/raw/refs/heads/main/scripts/dancearound/dancearound_play_history.user.js", -} - -const EamusementUploadModal = ({ - isOpen, - onClose, - game, - renderAsCard -}: EamusementUploadModalProps) => { - if (renderAsCard) { - return ( -
-
- - - -
-

- e-amusement Play History -

-

- Import via scraping your playdata from KONAMI e-amusement -

- -
- ); - } - - if (!isOpen) return null; - - const handleClose = () => { - onClose(); - }; - if(game === undefined){ - return "Sorry, due to some extreme error the game you're looking for doesn't seem to exist..." - } - return ( -
- {/* Backdrop */} -
- - {/* Modal */} -
-
- {/* Header */} -
-

- Import {game.formattedName} Data -

-

- Follow the instructions below to import your data -

-
- - {/* Warning */} -
-

- You may or may need to be subscribed to{" "} - - KONAMI's e-amusement Basic and/or Premium course - {" "} - to view a exportable playdata history for certain games. -

-
- - {/* Instructions */} -
-

- Instructions: -

-
    -
  1. Log into your e-amusement account
  2. - {EamuseImportInfo[game.internalName] ? ( -
  3. - Navigate to your{" "} - - {game.formattedName} score data page - {" "} - {game.formattedName} score data page -
  4. - ) : ( -
  5. Navigate to your {game.formattedName} score data page
  6. - )} - {EamuseImportInfo[game.internalName] ? ( -
  7. - Install the userscript to your browser (use an extension such - as Tampermonkey) -
  8. - ) : ( -
  9. - Scrape the data using any method of your choice and translate - it into a Mirage {game.formattedName} compatible JSON format -
  10. - )} -
  11. Upload the resulting JSON file into Mirage using the Batch-Manual Upload functionality
  12. -
  13. Verify that all data has been imported correctly
  14. -
-
- - {/* Additional Info */} - - - {/* Actions */} -
- -
-
-
-
- ); -}; - -export default EamusementUploadModal; diff --git a/frontend/src/pages/Import.tsx b/frontend/src/pages/Import.tsx index b2e531b..0de1b2d 100644 --- a/frontend/src/pages/Import.tsx +++ b/frontend/src/pages/Import.tsx @@ -7,7 +7,8 @@ import { uploadScore } from "../utils/scoreUpload"; import { NavBar } from "../components/NavBar"; const JsonUploadModal = lazy(() => import("../components/modals/JsonUploadModal")); -const EamusementModal = lazy(() => import("../components/modals/EamusementModal")); +const DancerushModal = lazy(() => import("../components/modals/DancerushModal")); +const DanceAroundModal = lazy(() => import("../components/modals/DanceAroundModal")); const DivaNetModal = lazy(() => import("../components/modals/DivaNetModal")); const Import = () => { @@ -15,7 +16,8 @@ const Import = () => { const navigate = useNavigate(); const [selectedGame, setSelectedGame] = useState(""); const [isJsonModalOpen, setIsJsonModalOpen] = useState(false); - const [isEamusementModalOpen, setIsEamusementModalOpen] = useState(false); + const [isDancerushModalOpen, setIsDancerushModalOpen] = useState(false); + const [isDanceAroundModalOpen, setIsDanceAroundModalOpen] = useState(false); const [isDivaNetModalOpen, setIsDivaNetModalOpen] = useState(false); const [supportedGames, setSupportedGames] = useState([]); const [gamesLoading, setGamesLoading] = useState(true); @@ -132,11 +134,11 @@ const Import = () => { return ( <> - {}} game={supportedGames.find((g) => g.internalName === selectedGame)} - renderAsCard={() => setIsEamusementModalOpen(true)} + renderAsCard={() => setIsDancerushModalOpen(true)} /> ); @@ -145,11 +147,11 @@ const Import = () => { return ( <> - {}} game={supportedGames.find((g) => g.internalName === selectedGame)} - renderAsCard={() => setIsEamusementModalOpen(true)} + renderAsCard={() => setIsDanceAroundModalOpen(true)} /> ); @@ -286,10 +288,20 @@ const Import = () => { } /> )} - {isEamusementModalOpen && ( - setIsEamusementModalOpen(false)} + {isDancerushModalOpen && ( + setIsDancerushModalOpen(false)} + game={ + supportedGames.find((g) => g.internalName === selectedGame) || + undefined + } + /> + )} + {isDanceAroundModalOpen && ( + setIsDanceAroundModalOpen(false)} game={ supportedGames.find((g) => g.internalName === selectedGame) || undefined -- cgit v1.2.3