diff --git a/src/components/nostr/kinds/BaseEventRenderer.tsx b/src/components/nostr/kinds/BaseEventRenderer.tsx
index d9b59fc..a49a6b3 100644
--- a/src/components/nostr/kinds/BaseEventRenderer.tsx
+++ b/src/components/nostr/kinds/BaseEventRenderer.tsx
@@ -193,12 +193,11 @@ export function EventMenu({ event }: { event: NostrEvent }) {
};
const openChatWindow = () => {
- // Only kind 1 notes support NIP-10 thread chat
- if (event.kind === 1) {
- const seenRelaysSet = getSeenRelays(event);
- const relays = seenRelaysSet ? Array.from(seenRelaysSet) : [];
+ const seenRelaysSet = getSeenRelays(event);
+ const relays = seenRelaysSet ? Array.from(seenRelaysSet) : [];
- // Open chat with NIP-10 thread protocol
+ // Kind 1 notes use NIP-10 thread protocol
+ if (event.kind === 1) {
addWindow("chat", {
protocol: "nip-10",
identifier: {
@@ -212,6 +211,40 @@ export function EventMenu({ event }: { event: NostrEvent }) {
relays,
},
});
+ return;
+ }
+
+ // All other events use NIP-22 comment protocol
+ if (isAddressableKind(event.kind)) {
+ // Addressable events use address pointer
+ const dTag = getTagValue(event, "d") || "";
+ addWindow("chat", {
+ protocol: "nip-22",
+ identifier: {
+ type: "comment",
+ value: {
+ kind: event.kind,
+ pubkey: event.pubkey,
+ identifier: dTag,
+ },
+ relays,
+ },
+ });
+ } else {
+ // Regular events use event pointer
+ addWindow("chat", {
+ protocol: "nip-22",
+ identifier: {
+ type: "comment",
+ value: {
+ id: event.id,
+ relays,
+ author: event.pubkey,
+ kind: event.kind,
+ },
+ relays,
+ },
+ });
}
};
@@ -243,12 +276,10 @@ export function EventMenu({ event }: { event: NostrEvent }) {
Zap
- {event.kind === 1 && (
-
-
- Chat
-
- )}
+
+
+ {event.kind === 1 ? "Chat" : "Comments"}
+
{copied ? (