diff --git a/src/components/WalletViewer.tsx b/src/components/WalletViewer.tsx
index 23e7e8e..acf0d0f 100644
--- a/src/components/WalletViewer.tsx
+++ b/src/components/WalletViewer.tsx
@@ -52,7 +52,7 @@ import {
} from "@/components/ui/tooltip";
import ConnectWalletDialog from "./ConnectWalletDialog";
import { RelayLink } from "@/components/nostr/RelayLink";
-import { parseZapRequest } from "@/lib/wallet-utils";
+import { parseZapRequest, getInvoiceDescription } from "@/lib/wallet-utils";
import { Zap } from "lucide-react";
import { useNostrEvent } from "@/hooks/useNostrEvent";
import { KindRenderer } from "./nostr/kinds";
@@ -312,14 +312,14 @@ function ZapTransactionDetail({ transaction }: { transaction: Transaction }) {
function TransactionLabel({ transaction }: { transaction: Transaction }) {
const zapInfo = parseZapRequest(transaction);
- // Not a zap - use original description or default label
+ // Not a zap - use original description, invoice description, or default label
if (!zapInfo) {
- return (
-
- {transaction.description ||
- (transaction.type === "incoming" ? "Received" : "Payment")}
-
- );
+ const description =
+ transaction.description ||
+ getInvoiceDescription(transaction) ||
+ (transaction.type === "incoming" ? "Received" : "Payment");
+
+ return {description};
}
// It's a zap! Show username + message on one line
@@ -1260,17 +1260,24 @@ export default function WalletViewer() {
- {selectedTransaction.description &&
- !parseZapRequest(selectedTransaction) && (
-
-
-
- {selectedTransaction.description}
-
-
- )}
+ {(() => {
+ const description =
+ selectedTransaction.description ||
+ getInvoiceDescription(selectedTransaction);
+ const isZap = parseZapRequest(selectedTransaction);
+
+ return (
+ description &&
+ !isZap && (
+
+
+
{description}
+
+ )
+ );
+ })()}