fix(ui): transactions modal touch scrolling on phones
Some checks failed
Demo images / Build & push demo images (push) Failing after 2m3s

The tx list kept a vestigial overflow-y-auto from before the modal
contract refactor made BaseModal's slot wrapper the scroller. With a
modal open, modal-scroll-locked applies overscroll-behavior:contain to
every .overflow-y-auto inside the overlay, so touch scrolls latched
onto the non-scrollable inner list and could not chain up to the real
scroller — the modal was unscrollable on any touch device. Wheel input
latches onto the scrollable ancestor directly, which is why desktop
never showed it. Verified with headless-chromium touch synthesis at
360x640/320x568: list scrolls to bottom, background stays contained.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
archipelago 2026-07-29 04:32:41 -04:00
parent 7326bb9262
commit c99f1c7b77

View File

@ -26,7 +26,12 @@
<p class="text-white/40 text-sm">No {{ activeFilter }} transactions</p>
</div>
<div v-else class="flex-1 overflow-y-auto -mx-2 px-2 divide-y divide-white/5">
<!-- Must NOT be its own scroll container: BaseModal's slot wrapper is the
scroller, and modal-scroll-locked gives every .overflow-y-auto inside
the overlay overscroll-behavior:contain a nested scroller with no
overflow then swallows touch scrolling entirely (phones only; wheel
latches onto the scrollable ancestor and never sees the bug). -->
<div v-else class="-mx-2 px-2 divide-y divide-white/5">
<div
v-for="tx in filteredTransactions"
:key="(tx.kind || 'onchain') + tx.tx_hash + tx.time_stamp"