diff --git a/frontend/src/screens/setup/ImportMnemonic.tsx b/frontend/src/screens/setup/ImportMnemonic.tsx index 3772ed98..2b111fc7 100644 --- a/frontend/src/screens/setup/ImportMnemonic.tsx +++ b/frontend/src/screens/setup/ImportMnemonic.tsx @@ -1,7 +1,7 @@ import * as bip39 from "@scure/bip39"; import { wordlist } from "@scure/bip39/wordlists/english"; import { LifeBuoy, ShieldCheck } from "lucide-react"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import MnemonicInputs from "src/components/MnemonicInputs"; @@ -16,6 +16,12 @@ export function ImportMnemonic() { const navigate = useNavigate(); const setupStore = useSetupStore(); + useEffect(() => { + // in case the user presses back, remove their last-saved mnemonic + useSetupStore.getState().updateNodeInfo({ + mnemonic: undefined, + }); + }, []); const [mnemonic, setMnemonic] = useState(""); async function onSubmit(e: React.FormEvent) { @@ -41,7 +47,7 @@ export function ImportMnemonic() { nextBackupReminder: sixMonthsLater.toISOString(), }); - navigate(`/setup/node?wallet=import`); + navigate(`/setup/node`); } return ( diff --git a/frontend/src/screens/setup/SetupAdvanced.tsx b/frontend/src/screens/setup/SetupAdvanced.tsx index 4c1d256c..fba99fad 100644 --- a/frontend/src/screens/setup/SetupAdvanced.tsx +++ b/frontend/src/screens/setup/SetupAdvanced.tsx @@ -22,7 +22,7 @@ export function SetupAdvanced() { Import Existing Mnemonic - + diff --git a/frontend/src/screens/setup/SetupNode.tsx b/frontend/src/screens/setup/SetupNode.tsx index a98c6c64..9f329994 100644 --- a/frontend/src/screens/setup/SetupNode.tsx +++ b/frontend/src/screens/setup/SetupNode.tsx @@ -1,5 +1,5 @@ import React, { ReactElement } from "react"; -import { useNavigate, useSearchParams } from "react-router-dom"; +import { useNavigate } from "react-router-dom"; import Container from "src/components/Container"; import TwoColumnLayoutHeader from "src/components/TwoColumnLayoutHeader"; import { BreezIcon } from "src/components/icons/Breez"; @@ -12,6 +12,7 @@ import { BackendType } from "src/types"; import cashu from "src/assets/images/node/cashu.png"; import lnd from "src/assets/images/node/lnd.png"; +import useSetupStore from "src/state/SetupStore"; type BackendTypeDefinition = { id: BackendType; @@ -54,17 +55,15 @@ const backendTypes: BackendTypeDefinition[] = [ export function SetupNode() { const navigate = useNavigate(); - const [searchParams] = useSearchParams(); + const setupStore = useSetupStore(); const [selectedBackendType, setSelectedBackupType] = React.useState(); function next() { - navigate( - `/setup/node/${selectedBackendType?.id.toLowerCase()}?wallet=${searchParams.get("wallet")}` - ); + navigate(`/setup/node/${selectedBackendType?.id.toLowerCase()}`); } - const importSelected = searchParams.get("wallet") === "import"; + const hasImportedMnemonic = !!setupStore.nodeInfo.mnemonic; return ( <> @@ -77,7 +76,7 @@ export function SetupNode() {
{backendTypes .filter((item) => - importSelected ? backendTypeHasMnemonic(item.id) : true + hasImportedMnemonic ? backendTypeHasMnemonic(item.id) : true ) .map((item) => (
{ - if (searchParams.get("wallet") !== "import") { + // only generate a mnemonic if one is not already imported + if (!useSetupStore.getState().nodeInfo.mnemonic) { useSetupStore.getState().updateNodeInfo({ mnemonic: bip39.generateMnemonic(wordlist, 128), });