From b026b0761f68220871f0109a9a87828e3f272c76 Mon Sep 17 00:00:00 2001 From: Thiendekaco Date: Tue, 5 Mar 2024 16:40:05 +0700 Subject: [PATCH] Resolve ui bug #9 --- packages/core/src/index.ts | 17 ++++--- packages/core/src/provider.ts | 44 +++++++++++++------ .../src/views/connect/ConnectingWallet.svelte | 4 +- packages/core/src/views/connect/Index.svelte | 41 +++++++++++------ .../src/components/account/AccountList.tsx | 19 ++++++-- packages/demo/src/utils/api/substrateApi.ts | 2 +- packages/demo/src/web3-onboard.ts | 5 --- .../hw-common/src/elements/TableHeader.svelte | 10 ----- .../hw-common/src/views/AccountSelect.svelte | 9 +--- packages/walletconnect/src/walletConnect.ts | 1 + .../src/walletConnect.ts | 5 ++- 11 files changed, 95 insertions(+), 62 deletions(-) diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 3c3aa6a9b..cfa24c1b6 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -127,12 +127,19 @@ function init(options: InitOptions): OnboardAPI { initI18N(i18n) addChains(chainIdToHex(chains).concat(chainsPolkadot)) - const modalWC = new WalletConnectModal({ projectId }); - qrModalConnect$.next({ - isOpen: false, - modal: modalWC - }) + if(projectId){ + const modalWC = new WalletConnectModal( + { + projectId + }); + + qrModalConnect$.next({ + isOpen: false, + modal: modalWC + }) + } + if (typeof connect !== 'undefined') { diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index 0d95746a6..a9dc2183b 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -12,13 +12,13 @@ import type { import { weiToEth } from '@subwallet-connect/common' import { disconnectWallet$, qrModalConnect$, uriConnect$ } from './streams.js' import { updateAccount, updateWallet } from './store/actions.js' -import { validEnsChain } from './utils.js' -import disconnect from './disconnect.js' -import { state } from './store/index.js' +import { validEnsChain } from './utils.js'; +import disconnect from './disconnect.js'; +import { state } from './store/index.js'; import { getBNMulitChainSdk } from './services.js' import { configuration } from './configuration.js' import { getBalanceSubstrate } from './utils.js'; -import { BN } from 'bn.js' +import BN from 'bn.js'; import type { @@ -114,7 +114,6 @@ export function listenChainChanged(args: { const addHandler = (handler: ChainListener) => { provider.on('chainChanged', handler) } - const removeHandler = (handler: ChainListener) => { provider.removeListener('chainChanged', handler) } @@ -127,23 +126,42 @@ export function listenChainChanged(args: { export function listenUriChange(args: { provider: EIP1193Provider | SubstrateProvider uriConnect$: BehaviorSubject -}): void { +}): () => void { const { provider, uriConnect$ } = args - provider.on('uriChanged', (uri : string)=> { - uriConnect$.next(uri) - }); + const handler = (uri : string) => { + uriConnect$.next(uri) + } + + provider.on('uriChanged', handler); + + + const removeHandler = () => { + provider.removeListener('uriChanged', handler) + } + + return removeHandler + } export function listenStateModal(args: { provider: EIP1193Provider | SubstrateProvider qrModalConnect$: BehaviorSubject -}): void { - const { provider, qrModalConnect$ } = args +}) : () => void { + const { provider, qrModalConnect$ } = args; - provider.on('qrModalState', (state : boolean)=>{ + const handler = (state : boolean)=>{ qrModalConnect$.next({ ...qrModalConnect$.value, isOpen : state }) - }) + }; + + + provider.on('qrModalState', handler) + + const removeHandler = () => { + provider.removeListener('qrModalState', handler) + } + + return removeHandler } diff --git a/packages/core/src/views/connect/ConnectingWallet.svelte b/packages/core/src/views/connect/ConnectingWallet.svelte index 0c2a7f607..b930aaf7b 100644 --- a/packages/core/src/views/connect/ConnectingWallet.svelte +++ b/packages/core/src/views/connect/ConnectingWallet.svelte @@ -23,10 +23,10 @@ qrModalConnect$ .pipe(withLatestFrom(uriConnect$)) - .subscribe(([{ isOpen, modal }, uri])=>{ + .subscribe(async ([{ isOpen, modal }, uri])=>{ if(isOpen && modal && uri !== ''){ try{ - modal.openModal({ uri }) + await modal.openModal({ uri }); }catch (e) { console.log(e) } diff --git a/packages/core/src/views/connect/Index.svelte b/packages/core/src/views/connect/Index.svelte index a013685d6..dcaa6f645 100644 --- a/packages/core/src/views/connect/Index.svelte +++ b/packages/core/src/views/connect/Index.svelte @@ -1,6 +1,6 @@