From 84845ff9a298473d35a91bcea31b443e87aa4a91 Mon Sep 17 00:00:00 2001 From: TheMas3212 Date: Sun, 9 Jan 2022 07:15:28 +1100 Subject: [PATCH 1/2] Refactor GameRoot.tsc to use a switch case statement instead of 20 nested ternarys --- src/ui/GameRoot.tsx | 306 +++++++++++++++++++++++++++----------------- 1 file changed, 187 insertions(+), 119 deletions(-) diff --git a/src/ui/GameRoot.tsx b/src/ui/GameRoot.tsx index d78b53029..2e06d4b68 100644 --- a/src/ui/GameRoot.tsx +++ b/src/ui/GameRoot.tsx @@ -300,6 +300,181 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme if (page !== Page.Terminal) window.scrollTo(0, 0); }); + let mainPage = Cannot load; + let withSidebar = true; + switch (page) { + case Page.Recovery: { + mainPage = ; + withSidebar = false; + break; + } + case Page.BitVerse: { + mainPage = ; + withSidebar = false; + break + } + case Page.Infiltration: { + mainPage = ; + withSidebar = false; + break; + } + case Page.BladeburnerCinematic: { + mainPage = ; + withSidebar = false; + break; + } + case Page.Work: { + mainPage = ; + withSidebar = false; + break; + } + case Page.Terminal: { + mainPage = ; + break; + } + case Page.Sleeves: { + mainPage = ; + break; + } + case Page.StaneksGift: { + mainPage = ; + break; + } + case Page.Stats: { + mainPage = ; + break; + } + case Page.ScriptEditor: { + mainPage = ; + break; + } + case Page.ActiveScripts: { + mainPage = ; + break; + } + case Page.Hacknet: { + mainPage = ; + break; + } + case Page.CreateProgram: { + mainPage = ; + break; + } + case Page.Factions: { + mainPage = ; + break; + } + case Page.Faction: { + mainPage = ; + break; + } + case Page.Milestones: { + mainPage = ; + break; + } + case Page.Tutorial: { + mainPage = { + prestigeAugmentation(); + Router.toTerminal(); + iTutorialStart(); + }} + />; + break; + } + case Page.DevMenu: { + mainPage = ; + break; + } + case Page.Gang: { + mainPage = ; + break; + } + case Page.Corporation: { + mainPage = ; + break; + } + case Page.Bladeburner: { + mainPage = ; + break; + } + case Page.Resleeves: { + mainPage = ; + break; + } + case Page.Travel: { + mainPage = ; + break; + } + case Page.StockMarket: { + mainPage = ; + break; + } + case Page.City: { + mainPage = ; + break; + } + case Page.Job: + case Page.Location: { + mainPage = ; + break; + } + case Page.Options: { + mainPage = saveObject.saveGame()} + export={() => { + // Apply the export bonus before saving the game + onExport(player); + saveObject.exportGame() + }} + forceKill={killAllScripts} + softReset={() => { + dialogBoxCreate("Soft Reset!"); + prestigeAugmentation(); + Router.toTerminal(); + }} + />; + break; + } + case Page.Augmentations: { + mainPage = { + // Apply the export bonus before saving the game + onExport(player); + saveObject.exportGame(); + }} + installAugmentationsFn={() => { + installAugmentations(); + Router.toTerminal(); + }} + />; + break; + } + case Page.Achievements: { + mainPage = ; + break; + } + } + + const renderPopups = [Page.Recovery, Page.BitVerse, Page.Infiltration, Page.BladeburnerCinematic].includes(page); return ( @@ -311,131 +486,24 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme )} - {page === Page.Recovery ? ( - - ) : page === Page.BitVerse ? ( - - ) : page === Page.Infiltration ? ( - - ) : page === Page.BladeburnerCinematic ? ( - - ) : page === Page.Work ? ( - - ) : ( + {withSidebar ? ( - {page === Page.Terminal ? ( - - ) : page === Page.Sleeves ? ( - - ) : page === Page.StaneksGift ? ( - - ) : page === Page.Stats ? ( - - ) : page === Page.ScriptEditor ? ( - - ) : page === Page.ActiveScripts ? ( - - ) : page === Page.Hacknet ? ( - - ) : page === Page.CreateProgram ? ( - - ) : page === Page.Factions ? ( - - ) : page === Page.Faction ? ( - - ) : page === Page.Milestones ? ( - - ) : page === Page.Tutorial ? ( - { - prestigeAugmentation(); - Router.toTerminal(); - iTutorialStart(); - }} - /> - ) : page === Page.DevMenu ? ( - - ) : page === Page.Gang ? ( - - ) : page === Page.Corporation ? ( - - ) : page === Page.Bladeburner ? ( - - ) : page === Page.Resleeves ? ( - - ) : page === Page.Travel ? ( - - ) : page === Page.StockMarket ? ( - - ) : page === Page.City ? ( - - ) : page === Page.Job ? ( - - ) : page === Page.Location ? ( - - ) : page === Page.Options ? ( - saveObject.saveGame()} - export={() => { - // Apply the export bonus before saving the game - onExport(player); - saveObject.exportGame() - }} - forceKill={killAllScripts} - softReset={() => { - dialogBoxCreate("Soft Reset!"); - prestigeAugmentation(); - Router.toTerminal(); - }} - /> - ) : page === Page.Augmentations ? ( - { - // Apply the export bonus before saving the game - onExport(player); - saveObject.exportGame(); - }} - installAugmentationsFn={() => { - installAugmentations(); - Router.toTerminal(); - }} - /> - ) : page === Page.Achievements ? ( - - ) : ( - <> - Cannot load - - )} + {mainPage} - )} + ) : mainPage } - - - - - + {renderPopups && ( + <> + + + + + + + )} From 2e31dda75ebce7945de47c972505d3307a66831f Mon Sep 17 00:00:00 2001 From: TheMas3212 Date: Sun, 9 Jan 2022 07:25:41 +1100 Subject: [PATCH 2/2] make Popups use variable like Sidebar does --- src/ui/GameRoot.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ui/GameRoot.tsx b/src/ui/GameRoot.tsx index 2e06d4b68..068b99b32 100644 --- a/src/ui/GameRoot.tsx +++ b/src/ui/GameRoot.tsx @@ -302,25 +302,30 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme let mainPage = Cannot load; let withSidebar = true; + let withPopups = true; switch (page) { case Page.Recovery: { mainPage = ; withSidebar = false; + withPopups = false; break; } case Page.BitVerse: { mainPage = ; withSidebar = false; + withPopups = false; break } case Page.Infiltration: { mainPage = ; withSidebar = false; + withPopups = false; break; } case Page.BladeburnerCinematic: { mainPage = ; withSidebar = false; + withPopups = false; break; } case Page.Work: { @@ -474,7 +479,6 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme } } - const renderPopups = [Page.Recovery, Page.BitVerse, Page.Infiltration, Page.BladeburnerCinematic].includes(page); return ( @@ -495,7 +499,7 @@ export function GameRoot({ player, engine, terminal }: IProps): React.ReactEleme ) : mainPage } - {renderPopups && ( + {withPopups && ( <>