Implemented AccountTransactionDetailsDialog

This commit is contained in:
dankito 2020-09-27 03:40:18 +02:00
parent c83f0992ed
commit 3ca9017bde
11 changed files with 258 additions and 21 deletions

View File

@ -34,7 +34,6 @@ import net.dankito.banking.util.extraction.NoOpTextExtractorRegistry
import net.dankito.utils.multiplatform.* import net.dankito.utils.multiplatform.*
import net.dankito.utils.multiplatform.log.LoggerFactory import net.dankito.utils.multiplatform.log.LoggerFactory
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.jvm.JvmOverloads
open class BankingPresenter( open class BankingPresenter(
@ -422,7 +421,10 @@ open class BankingPresenter(
} }
@JvmOverloads open fun formatAmount(amount: BigDecimal): String { // for languages not supporting default parameters
return formatAmount(amount, null)
}
open fun formatAmount(amount: BigDecimal, currencyIsoCode: String? = null): String { open fun formatAmount(amount: BigDecimal, currencyIsoCode: String? = null): String {
val isoCode = currencyIsoCode ?: currencyIsoCodeOfSelectedAccounts val isoCode = currencyIsoCode ?: currencyIsoCodeOfSelectedAccounts

View File

@ -35,6 +35,11 @@
366FA4E024C4924A0094F009 /* RecipientListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4DF24C4924A0094F009 /* RecipientListItem.swift */; }; 366FA4E024C4924A0094F009 /* RecipientListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4DF24C4924A0094F009 /* RecipientListItem.swift */; };
366FA4E224C4ED6C0094F009 /* EnterTanDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */; }; 366FA4E224C4ED6C0094F009 /* EnterTanDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */; };
366FA4E624C6EBF40094F009 /* EnterTanState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4E524C6EBF40094F009 /* EnterTanState.swift */; }; 366FA4E624C6EBF40094F009 /* EnterTanState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 366FA4E524C6EBF40094F009 /* EnterTanState.swift */; };
3675052C251FFE98006B13A0 /* AccountTransactionDetailsDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3675052B251FFE98006B13A0 /* AccountTransactionDetailsDialog.swift */; };
36750532252006C9006B13A0 /* TextWithScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36750531252006C9006B13A0 /* TextWithScrollView.swift */; };
3675053825201B08006B13A0 /* LabelledAmount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3675053725201B08006B13A0 /* LabelledAmount.swift */; };
3675053E25201D8E006B13A0 /* LabelledObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3675053D25201D8E006B13A0 /* LabelledObject.swift */; };
3675054225201F0C006B13A0 /* VerticalLabelledValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3675054125201F0C006B13A0 /* VerticalLabelledValue.swift */; };
3684EB8B2508F6F00001139E /* SearchBarWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */; }; 3684EB8B2508F6F00001139E /* SearchBarWithLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */; };
3684EB8F250B7F3C0001139E /* BankingUiCommon.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3684EB8F250B7F3C0001139E /* BankingUiCommon.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
3684EB90250B7F560001139E /* BankingUiCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */; }; 3684EB90250B7F560001139E /* BankingUiCommon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */; };
@ -182,6 +187,11 @@
366FA4DF24C4924A0094F009 /* RecipientListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipientListItem.swift; sourceTree = "<group>"; }; 366FA4DF24C4924A0094F009 /* RecipientListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecipientListItem.swift; sourceTree = "<group>"; };
366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnterTanDialog.swift; sourceTree = "<group>"; }; 366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnterTanDialog.swift; sourceTree = "<group>"; };
366FA4E524C6EBF40094F009 /* EnterTanState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnterTanState.swift; sourceTree = "<group>"; }; 366FA4E524C6EBF40094F009 /* EnterTanState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnterTanState.swift; sourceTree = "<group>"; };
3675052B251FFE98006B13A0 /* AccountTransactionDetailsDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountTransactionDetailsDialog.swift; sourceTree = "<group>"; };
36750531252006C9006B13A0 /* TextWithScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextWithScrollView.swift; sourceTree = "<group>"; };
3675053725201B08006B13A0 /* LabelledAmount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelledAmount.swift; sourceTree = "<group>"; };
3675053D25201D8E006B13A0 /* LabelledObject.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelledObject.swift; sourceTree = "<group>"; };
3675054125201F0C006B13A0 /* VerticalLabelledValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalLabelledValue.swift; sourceTree = "<group>"; };
3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarWithLabel.swift; sourceTree = "<group>"; }; 3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBarWithLabel.swift; sourceTree = "<group>"; };
3684EB8C250B7F2B0001139E /* BankingUiCommon.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = BankingUiCommon.framework.dSYM; path = "../BankingUiCommon/build/xcode-frameworks/BankingUiCommon.framework.dSYM"; sourceTree = "<group>"; }; 3684EB8C250B7F2B0001139E /* BankingUiCommon.framework.dSYM */ = {isa = PBXFileReference; lastKnownFileType = wrapper.dsym; name = BankingUiCommon.framework.dSYM; path = "../BankingUiCommon/build/xcode-frameworks/BankingUiCommon.framework.dSYM"; sourceTree = "<group>"; };
3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BankingUiCommon.framework; path = "../BankingUiCommon/build/xcode-frameworks/BankingUiCommon.framework"; sourceTree = "<group>"; }; 3684EB8E250B7F3C0001139E /* BankingUiCommon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = BankingUiCommon.framework; path = "../BankingUiCommon/build/xcode-frameworks/BankingUiCommon.framework"; sourceTree = "<group>"; };
@ -322,6 +332,7 @@
36BE065A24CA4B3500CBBB68 /* SelectBankDialog.swift */, 36BE065A24CA4B3500CBBB68 /* SelectBankDialog.swift */,
36FC92DB24B3A4A0002B12E9 /* AccountsDialog.swift */, 36FC92DB24B3A4A0002B12E9 /* AccountsDialog.swift */,
36BCF88A24C0BD2D005BEC29 /* AccountTransactionsDialog.swift */, 36BCF88A24C0BD2D005BEC29 /* AccountTransactionsDialog.swift */,
3675052B251FFE98006B13A0 /* AccountTransactionDetailsDialog.swift */,
36BCF88C24C1C1EA005BEC29 /* TransferMoneyDialog.swift */, 36BCF88C24C1C1EA005BEC29 /* TransferMoneyDialog.swift */,
366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */, 366FA4E124C4ED6C0094F009 /* EnterTanDialog.swift */,
36E21ED024DC540400649DC8 /* SettingsDialog.swift */, 36E21ED024DC540400649DC8 /* SettingsDialog.swift */,
@ -561,7 +572,11 @@
361116A7250562BE00315620 /* FaceIDButton.swift */, 361116A7250562BE00315620 /* FaceIDButton.swift */,
361116A9250562CF00315620 /* TouchIDButton.swift */, 361116A9250562CF00315620 /* TouchIDButton.swift */,
3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */, 3684EB8A2508F6F00001139E /* SearchBarWithLabel.swift */,
3675053D25201D8E006B13A0 /* LabelledObject.swift */,
3684EB91250FD4AF0001139E /* LabelledValue.swift */, 3684EB91250FD4AF0001139E /* LabelledValue.swift */,
3675053725201B08006B13A0 /* LabelledAmount.swift */,
3675054125201F0C006B13A0 /* VerticalLabelledValue.swift */,
36750531252006C9006B13A0 /* TextWithScrollView.swift */,
36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */, 36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */,
); );
path = views; path = views;
@ -739,6 +754,7 @@
3642F00C25010021005186FE /* UIKitActivityIndicator.swift in Sources */, 3642F00C25010021005186FE /* UIKitActivityIndicator.swift in Sources */,
36E21ECB24D88DF000649DC8 /* UIKitExtensions.swift in Sources */, 36E21ECB24D88DF000649DC8 /* UIKitExtensions.swift in Sources */,
36428CFF251BEC4C009DE1AE /* SectionWithoutBackground.swift in Sources */, 36428CFF251BEC4C009DE1AE /* SectionWithoutBackground.swift in Sources */,
3675053E25201D8E006B13A0 /* LabelledObject.swift in Sources */,
360782C524E541970098FEFE /* ScaleImageView.swift in Sources */, 360782C524E541970098FEFE /* ScaleImageView.swift in Sources */,
366FA4E224C4ED6C0094F009 /* EnterTanDialog.swift in Sources */, 366FA4E224C4ED6C0094F009 /* EnterTanDialog.swift in Sources */,
361116AA250562CF00315620 /* TouchIDButton.swift in Sources */, 361116AA250562CF00315620 /* TouchIDButton.swift in Sources */,
@ -785,6 +801,7 @@
36B8A4512503DE1800C15359 /* LoginDialog.swift in Sources */, 36B8A4512503DE1800C15359 /* LoginDialog.swift in Sources */,
36FC929C24B39A05002B12E9 /* AppDelegate.swift in Sources */, 36FC929C24B39A05002B12E9 /* AppDelegate.swift in Sources */,
36BCF88B24C0BD2D005BEC29 /* AccountTransactionsDialog.swift in Sources */, 36BCF88B24C0BD2D005BEC29 /* AccountTransactionsDialog.swift in Sources */,
3675054225201F0C006B13A0 /* VerticalLabelledValue.swift in Sources */,
36BCF87624BF114F005BEC29 /* UrlSessionWebClient.swift in Sources */, 36BCF87624BF114F005BEC29 /* UrlSessionWebClient.swift in Sources */,
36BE06C424D0801A00CBBB68 /* Size.swift in Sources */, 36BE06C424D0801A00CBBB68 /* Size.swift in Sources */,
366FA4E624C6EBF40094F009 /* EnterTanState.swift in Sources */, 366FA4E624C6EBF40094F009 /* EnterTanState.swift in Sources */,
@ -804,11 +821,14 @@
36E21ED124DC540400649DC8 /* SettingsDialog.swift in Sources */, 36E21ED124DC540400649DC8 /* SettingsDialog.swift in Sources */,
3684EB8B2508F6F00001139E /* SearchBarWithLabel.swift in Sources */, 3684EB8B2508F6F00001139E /* SearchBarWithLabel.swift in Sources */,
366FA4DC24C479120094F009 /* BankInfoListItem.swift in Sources */, 366FA4DC24C479120094F009 /* BankInfoListItem.swift in Sources */,
3675052C251FFE98006B13A0 /* AccountTransactionDetailsDialog.swift in Sources */,
36B8A44B2503D1E800C15359 /* BiometricAuthenticationService.swift in Sources */, 36B8A44B2503D1E800C15359 /* BiometricAuthenticationService.swift in Sources */,
36FC929E24B39A05002B12E9 /* SceneDelegate.swift in Sources */, 36FC929E24B39A05002B12E9 /* SceneDelegate.swift in Sources */,
3607829924E148D40098FEFE /* AdaptsToKeyboard.swift in Sources */, 3607829924E148D40098FEFE /* AdaptsToKeyboard.swift in Sources */,
36750532252006C9006B13A0 /* TextWithScrollView.swift in Sources */,
36E21ECF24DA0EEE00649DC8 /* IconView.swift in Sources */, 36E21ECF24DA0EEE00649DC8 /* IconView.swift in Sources */,
3642F0182502723A005186FE /* UIKitButton.swift in Sources */, 3642F0182502723A005186FE /* UIKitButton.swift in Sources */,
3675053825201B08006B13A0 /* LabelledAmount.swift in Sources */,
36B8A4562503E9B200C15359 /* UIAlertBase.swift in Sources */, 36B8A4562503E9B200C15359 /* UIAlertBase.swift in Sources */,
3642F01425018BA9005186FE /* TabBarController.swift in Sources */, 3642F01425018BA9005186FE /* TabBarController.swift in Sources */,
36BCF88524C098C8005BEC29 /* BankAccountListItem.swift in Sources */, 36BCF88524C098C8005BEC29 /* BankAccountListItem.swift in Sources */,

View File

@ -26,6 +26,9 @@
"BIC" = "BIC"; "BIC" = "BIC";
"Bank Code" = "Bank Code"; "Bank Code" = "Bank Code";
"Amount" = "Amount";
"Reference" = "Reference";
"Settings" = "Settings"; "Settings" = "Settings";
@ -93,6 +96,21 @@
"Could not fetch transactions for %@. Error message from your bank: %@." = "Could not fetch transactions for %@.\nError message from your bank:\n%@."; "Could not fetch transactions for %@. Error message from your bank: %@." = "Could not fetch transactions for %@.\nError message from your bank:\n%@.";
/* AccountTransactionDetailsDialog */
"Account Transaction Details Dialog Title" = "Transaction details";
"Sender" = "Sender";
"Recipient" = "Recipient";
"Name" = "Name";
"Booking text" = "Booking text";
"Booking date" = "Booking date";
"Value date" = "Value date";
"Account day opening balance" = "Day opening balance";
"Account day closing balance" = "Day closing balance";
/* New action sheet */ /* New action sheet */
"Show transfer money dialog" = "Transfer money"; "Show transfer money dialog" = "Transfer money";
@ -105,8 +123,6 @@
"Recipient IBAN" = "IBAN"; "Recipient IBAN" = "IBAN";
"BIC: %@, %@" = "BIC: %@, %@"; "BIC: %@, %@" = "BIC: %@, %@";
"No BIC found for bank code %@" = "No BIC found for bank code %@"; "No BIC found for bank code %@" = "No BIC found for bank code %@";
"Amount" = "Amount";
"Reference" = "Reference";
"Enter reference" = "Optionally enter reference"; "Enter reference" = "Optionally enter reference";
"Real-time transfer" = "Real-time transfer"; "Real-time transfer" = "Real-time transfer";

View File

@ -26,6 +26,9 @@
"BIC" = "BIC"; "BIC" = "BIC";
"Bank Code" = "Bankleitzahl"; "Bank Code" = "Bankleitzahl";
"Amount" = "Betrag";
"Reference" = "Verwendungszweck";
"Settings" = "Einstellungen"; "Settings" = "Einstellungen";
@ -93,6 +96,22 @@
"Could not fetch transactions for %@. Error message from your bank: %@." = "Umsätze für %@ konnten nicht abgerufen werden.\nFehlermeldung Ihrer Bank:\n%@."; "Could not fetch transactions for %@. Error message from your bank: %@." = "Umsätze für %@ konnten nicht abgerufen werden.\nFehlermeldung Ihrer Bank:\n%@.";
/* AccountTransactionDetailsDialog */
"Account Transaction Details Dialog Title" = "Umsatzdetails";
"Sender" = "Zahlender"; // TODO: Sender?
"Recipient" = "Empfänger";
"Name" = "Name";
"Booking text" = "Buchungstext";
"Booking date" = "Buchungsdatum";
"Value date" = "Wertstellungsdatum";
"Account day opening balance" = "Taganfangssaldo";
"Account day closing balance" = "Tagschlusssaldo";
/* New action sheet */ /* New action sheet */
"Show transfer money dialog" = "Überweisung"; "Show transfer money dialog" = "Überweisung";
@ -105,8 +124,6 @@
"Recipient IBAN" = "IBAN"; "Recipient IBAN" = "IBAN";
"BIC: %@, %@" = "BIC: %@, %@"; "BIC: %@, %@" = "BIC: %@, %@";
"No BIC found for bank code %@" = "Keine BIC gefunden für BLZ %@"; "No BIC found for bank code %@" = "Keine BIC gefunden für BLZ %@";
"Amount" = "Betrag";
"Reference" = "Verwendungszweck";
"Enter reference" = "Optional einen Verwendungszweck eingeben"; "Enter reference" = "Optional einen Verwendungszweck eingeben";
"Real-time transfer" = "Echtzeitüberweisung"; "Real-time transfer" = "Echtzeitüberweisung";

View File

@ -0,0 +1,68 @@
import SwiftUI
import BankingUiSwift
struct AccountTransactionDetailsDialog: View {
private let transaction: IAccountTransaction
@Inject private var presenter: BankingPresenterSwift
init(_ transaction: IAccountTransaction) {
self.transaction = transaction
}
var body: some View {
Form {
if transaction.otherPartyName != nil || transaction.otherPartyAccountId != nil {
Section(header: Text(transaction.amount.isPositive ? "Sender" : "Recipient")) {
LabelledValue("Name", transaction.otherPartyName)
LabelledValue("IBAN", transaction.otherPartyAccountId) // TODO: check if it's really an IBAN
LabelledValue("BIC", transaction.otherPartyBankCode) // TODO: check if it's really a BIC
}
}
Section {
LabelledAmount("Amount", transaction.amount, transaction.currency)
VerticalLabelledValue("Reference", transaction.reference)
}
Section {
LabelledValue("Booking text", transaction.bookingText ?? "")
LabelledValue("Booking date", presenter.formatToMediumDate(date: transaction.bookingDate))
LabelledValue("Value date", presenter.formatToMediumDate(date: transaction.valueDate))
LabelledObject("Account") {
IconedTitleView(transaction.account)
}
if let openingBalance = transaction.openingBalance {
LabelledAmount("Account day opening balance", openingBalance, transaction.currency)
}
if let closingBalance = transaction.closingBalance {
LabelledAmount("Account day closing balance", closingBalance, transaction.currency)
}
}
}
.showNavigationBarTitle("Account Transaction Details Dialog Title")
}
}
struct AccountTransactionDetailsDialog_Previews: PreviewProvider {
static var previews: some View {
AccountTransactionDetailsDialog(AccountTransaction(account: previewBanks[0].accounts[0] as! BankAccount, otherPartyName: "Other party name", unparsedReference: "Reference", amount: CommonBigDecimal(decimal: "84.23"), valueDate: CommonDate(year: 2020, month: 10, day: 21), bookingText: "Booking text"))
}
}

View File

@ -110,6 +110,9 @@ struct AccountTransactionsDialog: View {
Section { Section {
ForEach(filteredTransactions, id: \.technicalId) { transaction in ForEach(filteredTransactions, id: \.technicalId) { transaction in
AccountTransactionListItem(transaction, self.showBankIcons) AccountTransactionListItem(transaction, self.showBankIcons)
.onTapGesture {
SceneDelegate.navigateToView(AccountTransactionDetailsDialog(transaction))
}
} }
} }

View File

@ -0,0 +1,40 @@
import SwiftUI
import BankingUiSwift
struct LabelledAmount: View {
private let label: LocalizedStringKey
private let amount: CommonBigDecimal
private let currencyIsoCode: String?
init(_ label: LocalizedStringKey, _ amount: CommonBigDecimal, _ currencyIsoCode: String? = nil) {
self.label = label
self.amount = amount
self.currencyIsoCode = currencyIsoCode
}
init(_ label: String, _ amount: CommonBigDecimal, _ currencyIsoCode: String? = nil) {
self.init(LocalizedStringKey(label), amount, currencyIsoCode)
}
var body: some View {
LabelledObject(label) {
AmountLabel(amount, currencyIsoCode)
}
}
}
struct LabelledDate_Previews: PreviewProvider {
static var previews: some View {
LabelledAmount("Amount", CommonBigDecimal(double: 84.25), "EUR")
}
}

View File

@ -0,0 +1,37 @@
import SwiftUI
struct LabelledObject<Content: View>: View {
private let label: LocalizedStringKey
private let objectView: () -> Content
init(_ label: LocalizedStringKey, @ViewBuilder _ objectView: @escaping () -> Content) {
self.label = label
self.objectView = objectView
}
var body: some View {
HStack {
Text(label)
Spacer()
objectView()
}
}
}
struct LabelledObject_Previews: PreviewProvider {
static var previews: some View {
LabelledObject("Label") {
Text("Value")
}
}
}

View File

@ -7,8 +7,6 @@ struct LabelledValue: View {
private let value: LocalizedStringKey private let value: LocalizedStringKey
@State private var textFitsIntoAvailableSpace = true
init(_ label: LocalizedStringKey, _ value: LocalizedStringKey) { init(_ label: LocalizedStringKey, _ value: LocalizedStringKey) {
self.label = label self.label = label
@ -21,11 +19,7 @@ struct LabelledValue: View {
var body: some View { var body: some View {
HStack { LabelledObject(label) {
Text(label)
Spacer()
TextWithScrollView(value) TextWithScrollView(value)
} }
} }

View File

@ -0,0 +1,45 @@
import SwiftUI
struct VerticalLabelledValue: View {
private let label: LocalizedStringKey
private let value: LocalizedStringKey
init(_ label: LocalizedStringKey, _ value: LocalizedStringKey) {
self.label = label
self.value = value
}
init(_ label: LocalizedStringKey, _ value: String) {
self.init(label, LocalizedStringKey(value))
}
var body: some View {
VStack(alignment: .leading) {
HStack {
Text(label)
Spacer()
}
Spacer()
Text(value)
.detailForegroundColor()
}
}
}
struct VerticalLabelledValue_Previews: PreviewProvider {
static var previews: some View {
VerticalLabelledValue("Label", "Value")
}
}

View File

@ -11,13 +11,8 @@ struct BankAccountListItem : View {
var body: some View { var body: some View {
NavigationLink(destination: LazyView(AccountTransactionsDialog(account: self.account)), isActive: $navigateToAccountTransactionsDialog) { NavigationLink(destination: LazyView(AccountTransactionsDialog(account: self.account)), isActive: $navigateToAccountTransactionsDialog) {
HStack { LabelledAmount(account.displayName, account.balance, account.currency)
Text(account.displayName) .frame(height: 35)
Spacer()
AmountLabel(account.balance, account.currency)
}.frame(height: 35)
.background(Color.systemBackground) // make background tapable .background(Color.systemBackground) // make background tapable
} }
.disabled( !account.isAccountTypeSupportedByApplication) .disabled( !account.isAccountTypeSupportedByApplication)