diff --git a/src/components/nostr/kinds/ApplicationHandlerDetailRenderer.tsx b/src/components/nostr/kinds/ApplicationHandlerDetailRenderer.tsx index 65009a7..86db8c9 100644 --- a/src/components/nostr/kinds/ApplicationHandlerDetailRenderer.tsx +++ b/src/components/nostr/kinds/ApplicationHandlerDetailRenderer.tsx @@ -196,7 +196,7 @@ export function ApplicationHandlerDetailRenderer({ {contentJson && Object.keys(contentJson).length > 0 && (

Metadata

- +
)} diff --git a/src/lib/nip89-helpers.test.ts b/src/lib/nip89-helpers.test.ts index 02b87d9..9fe6138 100644 --- a/src/lib/nip89-helpers.test.ts +++ b/src/lib/nip89-helpers.test.ts @@ -91,6 +91,23 @@ describe("Kind 31990 (Application Handler) Helpers", () => { expect(getAppDescription(event)).toBe("A great app"); }); + it("should extract about field as fallback", () => { + const event = createHandlerEvent({ + content: JSON.stringify({ about: "An awesome app" }), + }); + expect(getAppDescription(event)).toBe("An awesome app"); + }); + + it("should prefer description over about", () => { + const event = createHandlerEvent({ + content: JSON.stringify({ + description: "Description text", + about: "About text", + }), + }); + expect(getAppDescription(event)).toBe("Description text"); + }); + it("should return undefined if no content", () => { const event = createHandlerEvent({ content: "" }); expect(getAppDescription(event)).toBeUndefined(); diff --git a/src/lib/nip89-helpers.ts b/src/lib/nip89-helpers.ts index eefdb5d..8062979 100644 --- a/src/lib/nip89-helpers.ts +++ b/src/lib/nip89-helpers.ts @@ -47,14 +47,19 @@ export function getAppName(event: NostrEvent): string { /** * Extract app description from kind 31990 event content JSON + * Checks both 'description' and 'about' fields */ export function getAppDescription(event: NostrEvent): string | undefined { if (event.kind !== 31990 || !event.content) return undefined; try { const metadata = JSON.parse(event.content); - if (metadata && typeof metadata === "object" && metadata.description && typeof metadata.description === "string") { - return metadata.description; + if (metadata && typeof metadata === "object") { + // Check description first, then about (common in kind 0 profile format) + const desc = metadata.description || metadata.about; + if (desc && typeof desc === "string") { + return desc; + } } } catch { // Invalid JSON