From a6835b835b2b0fbbee84178bbc10af3c6e7dc6e4 Mon Sep 17 00:00:00 2001 From: Terry Yiu Date: Sat, 31 May 2025 14:46:18 -0400 Subject: [PATCH] Fix wallet transactions to always show profile display name unless there is no pubkey Changelog-Fixed: Fixed wallet transactions to always show profile display name unless there is no pubkey Signed-off-by: Terry Yiu --- damus/Views/Wallet/TransactionsView.swift | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/damus/Views/Wallet/TransactionsView.swift b/damus/Views/Wallet/TransactionsView.swift index d42441b0..39d8db32 100644 --- a/damus/Views/Wallet/TransactionsView.swift +++ b/damus/Views/Wallet/TransactionsView.swift @@ -21,14 +21,16 @@ struct TransactionView: View { let formatter = RelativeDateTimeFormatter() let relativeDate = formatter.localizedString(for: created_at, relativeTo: Date.now) let event = decode_nostr_event_json(transaction.description ?? "") ?? transaction.metadata?.nostr - let pubkey = self.pubkeyToDisplay(for: event, isIncomingTransaction: isIncomingTransaction) ?? ANON_PUBKEY + let pubkey = self.pubkeyToDisplay(for: event, isIncomingTransaction: isIncomingTransaction) VStack(alignment: .leading) { HStack(alignment: .center) { ZStack { - ProfilePicView(pubkey: pubkey, size: 45, highlight: .custom(.damusAdaptableBlack, 0.1), profiles: damus_state.profiles, disable_animation: damus_state.settings.disable_animation) + ProfilePicView(pubkey: pubkey ?? ANON_PUBKEY, size: 45, highlight: .custom(.damusAdaptableBlack, 0.1), profiles: damus_state.profiles, disable_animation: damus_state.settings.disable_animation) .onTapGesture { - damus_state.nav.push(route: Route.ProfileByKey(pubkey: pubkey)) + if let pubkey { + damus_state.nav.push(route: Route.ProfileByKey(pubkey: pubkey)) + } } Image(txType) @@ -84,17 +86,15 @@ struct TransactionView: View { } } - func userDisplayName(pubkey: Pubkey) -> String { - let profile_txn = damus_state.profiles.lookup(id: pubkey, txn_name: "txview-profile") - let profile = profile_txn?.unsafeUnownedValue - - if let display_name = profile?.display_name { - return display_name - } else if let name = profile?.name { - return "@" + name - } else { + func userDisplayName(pubkey: Pubkey?) -> String { + guard let pubkey else { return NSLocalizedString("Unknown", comment: "A name label for an unknown user") } + + let profile_txn = damus_state.profiles.lookup(id: pubkey, txn_name: "txview-profile") + let profile = profile_txn?.unsafeUnownedValue + + return Profile.displayName(profile: profile, pubkey: pubkey).displayName } }