commit be9cee8bac54617f696c52f40247eacf4b76a002 parent f6bcdec84d9ca1824c3a7f72148944776f19e66d Author: Marc Stibane <marc@taler.net> Date: Sat, 22 Aug 2026 10:18:19 +0200 AI: handle timing Diffstat:
| M | TalerWallet1/Views/OIM/OIMbalances.swift | | | 13 | ++++++++----- |
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/TalerWallet1/Views/OIM/OIMbalances.swift b/TalerWallet1/Views/OIM/OIMbalances.swift @@ -86,15 +86,18 @@ struct OIMbalances: View { func closeChest() { if !closing { closing = true + let chestBeingClosed = selectedBalance // so a stale timer can't stomp on a chest opened later viewState = .chestClosing let delay = cash.flyOneByOne(to: .curve) // back to chest... DispatchQueue.main.asyncAfter(deadline: .now() + delay) { print("closeChest", delay) - withAnimation(.basic1) { - print("🚩OIMbalances.closeChest() reset selectedBalance") - selectedBalance = nil - available = nil - viewState = .chestsClosed + if selectedBalance == chestBeingClosed { // still the same chest? otherwise a newer + withAnimation(.basic1) { // openChest() already replaced it - leave it alone + print("🚩OIMbalances.closeChest() reset selectedBalance") + selectedBalance = nil + available = nil + viewState = .chestsClosed + } } closing = false }