taler-ios

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

commit 8a2efd38f0ce3ad84691a3552a62cd1488572f12
parent cd52ab1e95e9998632fd30a8215f3439074ea68f
Author: Marc Stibane <marc@taler.net>
Date:   Mon, 22 Jun 2026 13:24:45 +0200

NavigationLinks instead of buttons

Diffstat:
MTalerWallet1/Views/Balances/DiscountPasses.swift | 83++++++++++++++++++++++++++++++-------------------------------------------------
1 file changed, 31 insertions(+), 52 deletions(-)

diff --git a/TalerWallet1/Views/Balances/DiscountPasses.swift b/TalerWallet1/Views/Balances/DiscountPasses.swift @@ -62,6 +62,7 @@ struct DiscountsPassesList: View { // MARK: - struct DiscountPassesSection: View { let stack: CallStack + @EnvironmentObject private var controller: Controller @Environment(\.colorScheme) private var colorScheme @Environment(\.colorSchemeContrast) private var colorSchemeContrast @@ -69,61 +70,39 @@ struct DiscountPassesSection: View { @State private var passes: Bool = false var body: some View { + let discText = String(localized: "Discounts") + let passText = String(localized: "Passes") + let activeColor = WalletColors().talerColor + let inactiveColor = WalletColors().secondary(colorScheme, colorSchemeContrast) Section { - let discText = String(localized: "Discounts") - let discountsLink = Button(action: {discounts = true} ) { - Label { - Text(discText) - } icon: { - Image(ICONNAME_DISCOUNTS, SYSTEM_DISCOUNTS) - } - }.buttonStyle(TalerButtonStyle(type: .bordered, one: true)) - - let passText = String(localized: "Passes") - let passesLink = Button(action: {passes = true} ) { - Label { - Text(passText) - } icon: { - Image(ICONNAME_PASSES, SYSTEM_PASSES) - } - }.buttonStyle(TalerButtonStyle(type: .bordered, one: true)) - - let vLayout = VStack { - discountsLink - passesLink - } + let discCount = controller.discounts.count + let discColor = discCount > 0 ? activeColor : inactiveColor + let discountsLabel = Label { + Text(discText) + } icon: { + Image(ICONNAME_DISCOUNTS, SYSTEM_DISCOUNTS) + .foregroundColor(discColor) + } - let actions = Group { - let discountsDest = DiscountsPassesList(stack: stack.push(), - isDiscount: true, - navTitle: discText) - let passesDest = DiscountsPassesList(stack: stack.push(), - isDiscount: false, - navTitle: passText) - NavLink($discounts) { discountsDest } - NavLink($passes) { passesDest } - } + let passCount = controller.subscriptions.count + let passColor = passCount > 0 ? activeColor : inactiveColor + let passesLabel = Label { + Text(passText) + } icon: { + Image(ICONNAME_PASSES, SYSTEM_PASSES) + .foregroundColor(passColor) + } - Group { -// if #available(iOS 16.4, *) { // TODO: truncates "• Discoun…" -// LayoutThatFits([HStackLayout(), VStackLayout()]) { -// discountsLink -// passesLink -// } -// ViewThatFits() { -// HStack { -// discountsLink -// passesLink -// } -// vLayout -// } -// } else { - vLayout -// } - } - .background(actions) - .talerFont(.title2) - .foregroundColor(WalletColors().secondary(colorScheme, colorSchemeContrast)) + let discountsDest = DiscountsPassesList(stack: stack.push(), + isDiscount: true, + navTitle: discText) + let passesDest = DiscountsPassesList(stack: stack.push(), + isDiscount: false, + navTitle: passText) + NavigationLink(destination: discountsDest) { discountsLabel } + NavigationLink(destination: passesDest) { passesLabel } } + .listRowSeparator(.hidden) + .talerFont(.title2) } }