From 63a097d82680dc09014718b371045d698ff2697f Mon Sep 17 00:00:00 2001 From: Paul Miller Date: Mon, 26 Jun 2023 15:33:57 -0500 Subject: [PATCH] fix setup error precendence --- src/components/SetupErrorDisplay.tsx | 21 ++++++++++++--------- src/routes/index.tsx | 2 +- src/state/megaStore.tsx | 4 ++++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/components/SetupErrorDisplay.tsx b/src/components/SetupErrorDisplay.tsx index bd5e722..e2eb1e8 100644 --- a/src/components/SetupErrorDisplay.tsx +++ b/src/components/SetupErrorDisplay.tsx @@ -28,17 +28,20 @@ function ErrorFooter() { ); } -export default function SetupErrorDisplay(props: { error: Error }) { +export default function SetupErrorDisplay(props: { initialError: Error }) { + // Error shouldn't be reactive, so we assign to it so it just gets rendered with the first value + const error = props.initialError; + return ( - + Multiple tabs detected Multiple tabs detected

- {props.error.name}:{" "} - {props.error.message} + {error.name}:{" "} + {error.message}

Mutiny currently only supports use in one tab at a @@ -50,13 +53,13 @@ export default function SetupErrorDisplay(props: { error: Error }) {
- + Incompatible browser Incompatible browser detected

- {props.error.name}:{" "} - {props.error.message} + {error.name}:{" "} + {error.message}

Mutiny requires a modern browser that supports @@ -86,8 +89,8 @@ export default function SetupErrorDisplay(props: { error: Error }) { Failed to load Mutiny

- {props.error.name}:{" "} - {props.error.message} + {error.name}:{" "} + {error.message}

Something went wrong while booting up Mutiny Wallet. diff --git a/src/routes/index.tsx b/src/routes/index.tsx index b34dd05..5e03898 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -12,7 +12,7 @@ export default function Home() { return ( }> - + diff --git a/src/state/megaStore.tsx b/src/state/megaStore.tsx index a20ccae..a0264a8 100644 --- a/src/state/megaStore.tsx +++ b/src/state/megaStore.tsx @@ -134,6 +134,10 @@ export const Provider: ParentComponent = (props) => { settings?: MutinyWalletSettingStrings ): Promise { try { + // If we're already in an error state there should be no reason to continue + if (state.setup_error) { + throw state.setup_error; + } setState({ wallet_loading: true }); const mutinyWallet = await setupMutinyWallet(settings); // Get balance optimistically