taler-ios

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

commit 775f83c78e7107a31c52a16eefacc26aa9b036e3
parent b9e61e56b8bacec8576aa317d99c842b7b1cd754
Author: Marc Stibane <marc@taler.net>
Date:   Sat, 13 Jul 2024 23:47:35 +0200

IconBadge improvements

Diffstat:
MTalerWallet1/Views/HelperViews/IconBadge.swift | 32++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)

diff --git a/TalerWallet1/Views/HelperViews/IconBadge.swift b/TalerWallet1/Views/HelperViews/IconBadge.swift @@ -20,9 +20,11 @@ struct PendingIconBadge: View { // since the money already left the wallet, show DONE : DONE_OUTGOING // PENDING_OUTGOING IconBadge(imageName: imageName, + isPending: true, foreColor: foreColor, shouldConfirm: shouldConfirm, - needsKYC: needsKYC) + needsKYC: needsKYC, + wideIconName: nil) } } // MARK: - @@ -37,9 +39,11 @@ struct TransactionIconBadge: View { var body: some View { let imageName = type.iconName(done) IconBadge(imageName: imageName, + isPending: false, foreColor: foreColor, shouldConfirm: shouldConfirm, - needsKYC: needsKYC) + needsKYC: needsKYC, + wideIconName: nil) } } // MARK: - @@ -51,34 +55,42 @@ struct ButtonIconBadge: View { var body: some View { let imageName = type.iconName(done) IconBadge(imageName: imageName, + isPending: false, foreColor: foreColor, shouldConfirm: false, - needsKYC: false) + needsKYC: false, + wideIconName: ICONNAME_INCOMING_P2P) } } // MARK: - struct IconBadge: View { let imageName: String + let isPending: Bool let foreColor:Color // let pending: Bool let shouldConfirm: Bool let needsKYC: Bool + let wideIconName: String? var body: some View { - let badgeName = needsKYC ? NEEDS_KYC - : CONFIRM_BANK HStack(alignment: .top, spacing: -8) { // TODO: adapt spacing to dynamic fontsize + let image = isPending ? Image(systemName: imageName) + : Image(imageName) ZStack { // "taler.turn.up.backward" is wider than all others // ZStack centers the main icon, and the badge will always be at the same position - Image(ICONNAME_REFUND) + Image(wideIconName ?? ICONNAME_REFUND) .foregroundColor(.clear) - Image(imageName) + image .foregroundColor(foreColor) }.talerFont(.title) - Image(systemName: badgeName) - .talerFont(.caption) - .foregroundColor((needsKYC || shouldConfirm) ? .red : .clear) + if wideIconName == nil { + let badgeName = needsKYC ? NEEDS_KYC + : CONFIRM_BANK + Image(systemName: badgeName) + .talerFont(.caption) + .foregroundColor((needsKYC || shouldConfirm) ? .red : .clear) + } }.accessibilityHidden(true) } }