taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit be9cee8bac54617f696c52f40247eacf4b76a002
parent f6bcdec84d9ca1824c3a7f72148944776f19e66d
Author: Marc Stibane <marc@taler.net>
Date:   Sat, 22 Aug 2026 10:18:19 +0200

AI: handle timing

Diffstat:
MTalerWallet1/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 }