diff --git a/app.vue b/app.vue index 6e4d3e79..0bf3ea41 100644 --- a/app.vue +++ b/app.vue @@ -21,7 +21,10 @@ const { addProviderEvents, removeProviderEvents } = const { disconnect } = useBaseProvider() const { cacheValue } = useCache() const { currencyList } = storeToRefs(useCurrencyStore()) -const { initProvider, connect } = useWalletConnectProvider() +const { + initProvider: initWalletConnectProvider, + connect: connectWalletConnect, +} = useWalletConnectProvider() const { formatMessage } = useIntl() const { gridChainId, tempGrids } = storeToRefs(useGridStore()) const swHasUpgrade = ref(false) @@ -60,8 +63,8 @@ const setupWeb3Instances = async () => { // reconnect wallet connect if (isWalletConnect.value) { - await initProvider() - await connect() + await initWalletConnectProvider() + await connectWalletConnect() } } diff --git a/components/FollowButton.vue b/components/FollowButton.vue index dc6ed33c..7384f15f 100644 --- a/components/FollowButton.vue +++ b/components/FollowButton.vue @@ -94,7 +94,15 @@ const handleClick = async (event: Event) => { // when we are not connected, we need to connect first if (!isConnected.value) { - await connect() + try { + isPending.value = true + await connect() + } catch (error) { + console.warn(error) + } finally { + isPending.value = false + } + invalidateQueries() // stop if we want to follow ourselves diff --git a/components/ModalTemplateConnectWallet.vue b/components/ModalTemplateConnectWallet.vue index 719e7634..e29a9281 100644 --- a/components/ModalTemplateConnectWallet.vue +++ b/components/ModalTemplateConnectWallet.vue @@ -107,7 +107,7 @@ const handleToggleMobile = () => { {{ formatMessage('modal_connect_wallet_mobile_scan_text') }} diff --git a/components/WalletConnectButton.vue b/components/WalletConnectButton.vue index bf8aa55d..6584f4c8 100644 --- a/components/WalletConnectButton.vue +++ b/components/WalletConnectButton.vue @@ -4,11 +4,19 @@ const deepLink = ref('') const { initProvider, connect: connectWalletConnect } = useWalletConnectProvider() const { walletConnectProvider: provider } = storeToRefs(useAppStore()) +const isLoading = ref(false) + +const handleClick = async () => { + isLoading.value = true + navigateTo(deepLink.value, { external: true }) +} onMounted(async () => { await initProvider() provider.value?.on('display_uri', (data: string) => { - deepLink.value = walletConnectDeepLinkUrl(data) + deepLink.value = walletConnectDeepLinkUrl(data, { + withRedirectUrl: true, + }) }) try { @@ -20,7 +28,19 @@ onMounted(async () => {