diff --git a/src/components/EmbeddedNaddr.tsx b/src/components/EmbeddedNaddr.tsx
index 7948c2ca..5630b873 100644
--- a/src/components/EmbeddedNaddr.tsx
+++ b/src/components/EmbeddedNaddr.tsx
@@ -12,6 +12,7 @@ import { useAuthor } from '@/hooks/useAuthor';
import { genUserName } from '@/lib/genUserName';
import { timeAgo } from '@/lib/timeAgo';
import { cn } from '@/lib/utils';
+import { EXTRA_KINDS, getKindIcon } from '@/lib/extraKinds';
import type { NostrEvent } from '@nostrify/nostrify';
interface EmbeddedNaddrProps {
@@ -190,6 +191,16 @@ function EmbeddedNaddrCard({ event, className }: { event: NostrEvent; className?
return description.slice(0, MAX_CONTENT_LENGTH).trimEnd() + '…';
}, [description]);
+ // Kind label for context (e.g. "development" with icon)
+ const kindMeta = useMemo(() => {
+ const kindDef = EXTRA_KINDS.find((def) =>
+ def.subKinds?.some((sub) => sub.kind === event.kind) || def.kind === event.kind
+ || def.extraFeedKinds?.includes(event.kind),
+ );
+ if (!kindDef) return undefined;
+ return { label: kindDef.label.toLowerCase(), Icon: getKindIcon(event.kind) };
+ }, [event.kind]);
+
return (
)}
+ {/* Kind label for context */}
+ {kindMeta && (
+
+ {kindMeta.Icon && }
+ {kindMeta.label}
+
+ )}
);
diff --git a/src/components/EmbeddedNote.tsx b/src/components/EmbeddedNote.tsx
index d46e6add..c14381cf 100644
--- a/src/components/EmbeddedNote.tsx
+++ b/src/components/EmbeddedNote.tsx
@@ -16,6 +16,7 @@ import { timeAgo } from '@/lib/timeAgo';
import { cn } from '@/lib/utils';
import { useAppContext } from '@/hooks/useAppContext';
import { IMAGE_URL_REGEX, IMETA_MEDIA_URL_REGEX, extractVideoUrls, extractAudioUrls } from '@/lib/mediaUrls';
+import { EXTRA_KINDS, getKindIcon } from '@/lib/extraKinds';
/** NIP-62 Request to Vanish. */
const VANISH_KIND = 62;
@@ -105,7 +106,7 @@ function EmbeddedNoteCard({
className,
disableHoverCards,
}: {
- event: { id: string; pubkey: string; content: string; created_at: number; tags: string[][] };
+ event: { id: string; kind: number; pubkey: string; content: string; created_at: number; tags: string[][] };
className?: string;
disableHoverCards?: boolean;
}) {
@@ -142,9 +143,18 @@ function EmbeddedNoteCard({
const getTag = (name: string) => event.tags.find(([n]) => n === name)?.[1];
const title = getTag('title') || getTag('name') || getTag('d');
const description = getTag('summary') || getTag('description');
- if (!title && !description) return undefined;
- return { title, description };
- }, [truncatedContent, event.tags]);
+
+ // Build a kind label line for context (e.g. "nsite · 31 files")
+ const kindDef = EXTRA_KINDS.find((def) =>
+ def.subKinds?.some((sub) => sub.kind === event.kind) || def.kind === event.kind
+ || def.extraFeedKinds?.includes(event.kind),
+ );
+ const kindLabel = kindDef?.label.toLowerCase();
+ const KindIcon = getKindIcon(event.kind);
+
+ if (!title && !description && !kindLabel) return undefined;
+ return { title, description, kindLabel, KindIcon };
+ }, [truncatedContent, event.tags, event.kind]);
// Extract first image for a small thumbnail
const firstImage = useMemo(() => {
@@ -267,6 +277,12 @@ function EmbeddedNoteCard({
{tagMeta.description && (
{tagMeta.description}
)}
+ {tagMeta.kindLabel && (
+
+ {tagMeta.KindIcon && }
+ {tagMeta.kindLabel}
+
+ )}
>
) : null}