commit 775f83c78e7107a31c52a16eefacc26aa9b036e3
parent b9e61e56b8bacec8576aa317d99c842b7b1cd754
Author: Marc Stibane <marc@taler.net>
Date: Sat, 13 Jul 2024 23:47:35 +0200
IconBadge improvements
Diffstat:
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)
}
}