From f83baff19dfbb8dbc5c0826ec0d73cd533879646 Mon Sep 17 00:00:00 2001 From: taimanhui <73929028+taimanhui@users.noreply.github.com> Date: Mon, 6 Jun 2022 17:02:13 +0800 Subject: [PATCH] disable BTC hardware support on mobile platforms OK-9087 OK-9581 (#830) * chore: disable BTC hardware support on mobile platforms Fixes: OK-9581 * fix: filter networks for supported account types Fixes: OK-9087 --- .../engine/src/vaults/impl/btc/settings.ts | 4 ++- .../src/views/Account/AddNewAccount/index.tsx | 31 ++++++++++++++++--- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/engine/src/vaults/impl/btc/settings.ts b/packages/engine/src/vaults/impl/btc/settings.ts index e422034d07c..bb463194649 100644 --- a/packages/engine/src/vaults/impl/btc/settings.ts +++ b/packages/engine/src/vaults/impl/btc/settings.ts @@ -1,3 +1,5 @@ +import platformEnv from '@onekeyhq/shared/src/platformEnv'; + import { IVaultSettings } from '../../types'; const settings: IVaultSettings = { @@ -6,7 +8,7 @@ const settings: IVaultSettings = { tokenEnabled: false, importedAccountEnabled: true, - hardwareAccountEnabled: true, + hardwareAccountEnabled: !platformEnv.isNative, watchingAccountEnabled: true, }; diff --git a/packages/kit/src/views/Account/AddNewAccount/index.tsx b/packages/kit/src/views/Account/AddNewAccount/index.tsx index f0437460413..60a5eb03c1b 100644 --- a/packages/kit/src/views/Account/AddNewAccount/index.tsx +++ b/packages/kit/src/views/Account/AddNewAccount/index.tsx @@ -56,11 +56,30 @@ const CreateAccount: FC = ({ onClose }) => { 'network', activeNetworkId ?? (networks ?? [])?.[0]?.id, ); + const selectableNetworks = networks + .filter((network) => { + if (wallet?.type === 'hw') { + return network.settings.hardwareAccountEnabled; + } + if (wallet?.type === 'imported') { + return network.settings.importedAccountEnabled; + } + if (wallet?.type === 'watching') { + return network.settings.watchingAccountEnabled; + } + return true; + }) + .map((network) => network.id); const isSmallScreen = useIsVerticalLayout(); useEffect(() => { - const selectedNetwork = - networks?.find((n) => n.id === watchNetwork) ?? null; + const selectedNetwork = networks?.find( + (n) => + n.id === + (selectableNetworks.includes(watchNetwork) + ? watchNetwork + : selectableNetworks[0]), + ); if (selectedNetwork) { const { prefix, category } = selectedNetwork.accountNameInfo.default; if (typeof prefix !== 'undefined') { @@ -68,7 +87,7 @@ const CreateAccount: FC = ({ onClose }) => { setValue('name', `${prefix} #${id + 1}`); } } - }, [wallet, networks, watchNetwork, setValue]); + }, [wallet, networks, watchNetwork, selectableNetworks, setValue]); const authenticationDone = useCallback( async (password: string) => { @@ -116,7 +135,11 @@ const CreateAccount: FC = ({ onClose }) => { scrollViewProps={{ children: (
- +