fix(wallet): channel funding-tx link uses the explorer flow + consent modal above nested modals
Some checks failed
Demo images / Build & push demo images (push) Failing after 35s

The Channels panel's 'Funding tx in Mempool' link still hardcoded the
local app (missed in the explorer rollout): now it routes like every
other tx link — local Mempool when running, else the saved external
explorer, with the first-time consent modal setting it up and then
opening the tx. The consent modal moves to z-3600 so it renders above
the Wallet Settings modal that can trigger it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-22 20:02:35 -04:00
parent 6347d16a2f
commit bfd8bc5b9a
2 changed files with 11 additions and 3 deletions

View File

@ -1,8 +1,12 @@
<template>
<!-- z-3600: this consent prompt can be triggered from INSIDE another
modal (e.g. Wallet Settings Channels funding tx), so it must sit
above the standard modal layer (3000) but below the app overlay (4000). -->
<BaseModal
:show="!!explorer.pendingTx.value"
title="Open on an external explorer?"
max-width="max-w-md"
z-index="z-[3600]"
@close="explorer.cancelPending()"
>
<!-- Same visual language as the uninstall keep-your-data warning: amber

View File

@ -301,7 +301,7 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { rpcClient } from '@/api/rpc-client'
import { useAppLauncherStore } from '@/stores/appLauncher'
import { useTxExplorer } from '@/composables/useTxExplorer'
defineProps<{ compact?: boolean }>()
@ -390,10 +390,14 @@ function fundingTxid(ch: Channel): string {
return /^[0-9a-fA-F]{64}$/.test(txid) ? txid : ''
}
const txExplorer = useTxExplorer()
function openInMempool(txid: string) {
if (!txid) return
// Overlay the explorer above the current page never navigate away.
useAppLauncherStore().openSession('mempool', { path: `/tx/${txid}` })
// Same routing as every other tx link (missed in the first pass
// 2026-07-22): local Mempool app when it's running, otherwise the saved
// external explorer, with the first-time consent modal setting it up and
// then opening the tx.
txExplorer.openTx(txid)
}
function capacityPercent(amount: number, capacity: number): number {