From ab288bc048ff54da2e3f134558f94624d5f2683e Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 16 Nov 2025 18:36:33 -0600 Subject: [PATCH 1/3] feat: transaction item dynamic type --- .../View/Activity/TransactionItemView.swift | 110 ++++++++---------- 1 file changed, 50 insertions(+), 60 deletions(-) diff --git a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift index b268faa3..76161487 100644 --- a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift +++ b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift @@ -30,50 +30,50 @@ struct TransactionItemView: View { var body: some View { - HStack(spacing: 15) { + VStack(alignment: .leading, spacing: 20) { - if isRedacted { - Image( - systemName: - "circle.fill" - ) - .font(.largeTitle) - .symbolRenderingMode(.palette) - .foregroundStyle( - Color.gray.opacity(0.5) - ) - } else { - ZStack { - Image(systemName: "circle.fill") - .font(.largeTitle) - .foregroundStyle(Color.gray.opacity(0.25)) + let delta = txDetails.balanceDelta + let prefix = (delta >= 0 ? "+ " : "- ").appending("\(format.displayPrefix) ") + let amount = format.formatted(UInt64(abs(delta)), fiatPrice: fiatPrice) + let suffix = format.displayText + + Text("\(prefix)\(amount) \(suffix)") + .font(.title) + .fontWeight(.semibold) + .fontDesign(.rounded) + .lineLimit(1) + .redacted(reason: isRedacted ? .placeholder : []) + + HStack { + if isRedacted { Image( systemName: - txDetails.balanceDelta >= 0 - ? "arrow.down" : "arrow.up" + "circle.fill" ) - .font(.callout) + .symbolRenderingMode(.palette) .foregroundStyle( - { - switch txDetails.chainPosition { - case .confirmed(_, _): - Color.bitcoinOrange - case .unconfirmed(_): - Color.gray.opacity(0.5) - } - }() + Color.gray.opacity(0.5) ) + } else { + ZStack { + Image( + systemName: + txDetails.balanceDelta >= 0 + ? "arrow.down" : "arrow.up" + ) + .foregroundStyle( + { + switch txDetails.chainPosition { + case .confirmed(_, _): + Color.bitcoinOrange + case .unconfirmed(_): + Color.gray.opacity(0.5) + } + }() + ) + } } - } - VStack(alignment: .leading, spacing: 5) { - Text(txDetails.txid.description) - .truncationMode(.middle) - .lineLimit(1) - .fontDesign(.monospaced) - .fontWeight(.semibold) - .font(.title) - .foregroundStyle(.primary) switch txDetails.chainPosition { case .confirmed(let confirmationBlockTime, _): Text( @@ -83,8 +83,6 @@ struct TransactionItemView: View { ) ) .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) - .font(.caption2) - .fontWidth(.condensed) case .unconfirmed(let timestamp): if let timestamp { Text( @@ -94,38 +92,30 @@ struct TransactionItemView: View { ) ) .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) - .font(.caption2) - .fontWidth(.condensed) } else { Text("Pending") .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) - .font(.caption2) - .fontWidth(.condensed) } } + } - .foregroundStyle(.secondary) - .font(.subheadline) - .padding(.trailing, 30.0) .redacted(reason: isRedacted ? .placeholder : []) + .foregroundStyle(.secondary) + .font(.callout) - Spacer() - - let delta = txDetails.balanceDelta - let prefix = (delta >= 0 ? "+ " : "- ").appending("\(format.displayPrefix) ") - let amount = format.formatted(UInt64(abs(delta)), fiatPrice: fiatPrice) - let suffix = format.displayText - - Text("\(prefix)\(amount) \(suffix)") - .font(.subheadline) - .fontWeight(.semibold) - .fontDesign(.rounded) - .lineLimit(1) - .redacted(reason: isRedacted ? .placeholder : []) + HStack { + Text(txDetails.txid.description) + .truncationMode(.middle) + .lineLimit(1) + .fontDesign(.monospaced) + .font(.callout) + .foregroundStyle(.primary) + } + .padding(.trailing, 100.0) + .redacted(reason: isRedacted ? .placeholder : []) } - .padding(.vertical, 15.0) - .padding(.vertical, 5.0) + .padding(.vertical) .minimumScaleFactor(0.5) } From 5c48b52f860d18b40bd706dc360c9b3bbad4f8f2 Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 16 Nov 2025 18:40:21 -0600 Subject: [PATCH 2/3] refactor redacted on timestamp --- BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift index 76161487..c6253a8b 100644 --- a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift +++ b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift @@ -83,6 +83,7 @@ struct TransactionItemView: View { ) ) .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) + .redacted(reason: isRedacted ? .placeholder : []) case .unconfirmed(let timestamp): if let timestamp { Text( @@ -92,14 +93,15 @@ struct TransactionItemView: View { ) ) .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) + .redacted(reason: isRedacted ? .placeholder : []) } else { Text("Pending") .lineLimit(dynamicTypeSize.isAccessibilitySize ? 2 : 1) + .redacted(reason: isRedacted ? .placeholder : []) } } } - .redacted(reason: isRedacted ? .placeholder : []) .foregroundStyle(.secondary) .font(.callout) From a19b41ea055f143a12ab114ad12f25893ce9cc2f Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 16 Nov 2025 18:43:04 -0600 Subject: [PATCH 3/3] spacer min length --- BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift index c6253a8b..b843fa93 100644 --- a/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift +++ b/BDKSwiftExampleWallet/View/Activity/TransactionItemView.swift @@ -112,8 +112,8 @@ struct TransactionItemView: View { .fontDesign(.monospaced) .font(.callout) .foregroundStyle(.primary) + Spacer(minLength: 80) } - .padding(.trailing, 100.0) .redacted(reason: isRedacted ? .placeholder : []) }