diff --git a/src/components/Note/UnknownNote.tsx b/src/components/Note/UnknownNote.tsx
new file mode 100644
index 0000000..0ad9926
--- /dev/null
+++ b/src/components/Note/UnknownNote.tsx
@@ -0,0 +1,34 @@
+import { Button } from '@/components/ui/button'
+import { getSharableEventId } from '@/lib/event'
+import { cn } from '@/lib/utils'
+import { Check, Copy } from 'lucide-react'
+import { Event } from 'nostr-tools'
+import { useState } from 'react'
+import { useTranslation } from 'react-i18next'
+
+export function UnknownNote({ event, className }: { event: Event; className?: string }) {
+ const { t } = useTranslation()
+ const [isCopied, setIsCopied] = useState(false)
+
+ return (
+
+
{t('Cannot handle event of kind k', { k: event.kind })}
+
+
+ )
+}
diff --git a/src/components/Note/index.tsx b/src/components/Note/index.tsx
index 89766fa..d124984 100644
--- a/src/components/Note/index.tsx
+++ b/src/components/Note/index.tsx
@@ -3,7 +3,8 @@ import {
extractImageInfosFromEventTags,
getParentEventId,
getUsingClient,
- isPictureEvent
+ isPictureEvent,
+ isSupportedKind
} from '@/lib/event'
import { toNote } from '@/lib/link'
import { Event, kinds } from 'nostr-tools'
@@ -16,6 +17,7 @@ import ParentNotePreview from '../ParentNotePreview'
import UserAvatar from '../UserAvatar'
import Username from '../Username'
import Highlight from './Highlight'
+import { UnknownNote } from './UnknownNote'
export default function Note({
event,
@@ -30,10 +32,7 @@ export default function Note({
}) {
const { push } = useSecondaryPage()
const parentEventId = useMemo(
- () =>
- !hideParentNotePreview && event.kind === kinds.ShortTextNote
- ? getParentEventId(event)
- : undefined,
+ () => (hideParentNotePreview ? undefined : getParentEventId(event)),
[event, hideParentNotePreview]
)
const imageInfos = useMemo(
@@ -79,8 +78,10 @@ export default function Note({
)}
{event.kind === kinds.Highlights ? (
- ) : (
+ ) : isSupportedKind(event.kind) ? (
+ ) : (
+
)}
{imageInfos.length > 0 && }
diff --git a/src/components/NoteCard/UnknownNoteCard.tsx b/src/components/NoteCard/UnknownNoteCard.tsx
index ae86a65..106e973 100644
--- a/src/components/NoteCard/UnknownNoteCard.tsx
+++ b/src/components/NoteCard/UnknownNoteCard.tsx
@@ -1,12 +1,8 @@
-import { Button } from '@/components/ui/button'
import { Separator } from '@/components/ui/separator'
-import { getSharableEventId } from '@/lib/event'
import { cn } from '@/lib/utils'
-import { Check, Copy } from 'lucide-react'
import { Event } from 'nostr-tools'
-import { useState } from 'react'
-import { useTranslation } from 'react-i18next'
import { FormattedTimestamp } from '../FormattedTimestamp'
+import { UnknownNote } from '../Note/UnknownNote'
import UserAvatar from '../UserAvatar'
import Username from '../Username'
import RepostDescription from './RepostDescription'
@@ -22,9 +18,6 @@ export default function UnknownNoteCard({
embedded?: boolean
reposter?: string
}) {
- const { t } = useTranslation()
- const [isCopied, setIsCopied] = useState(false)
-
return (
@@ -44,20 +37,7 @@ export default function UnknownNoteCard({
-
-
{t('Cannot handle event of kind k', { k: event.kind })}
-
-
+
{!embedded && }
diff --git a/src/components/NoteList/index.tsx b/src/components/NoteList/index.tsx
index f49ddf1..e139e54 100644
--- a/src/components/NoteList/index.tsx
+++ b/src/components/NoteList/index.tsx
@@ -110,7 +110,7 @@ export default function NoteList({
subRequests.push({
urls: myRelayList.write.concat(BIG_RELAY_URLS).slice(0, 5),
filter: {
- kinds: [kinds.ShortTextNote, kinds.Repost, kinds.Highlights],
+ kinds: [kinds.ShortTextNote, kinds.Repost, kinds.Highlights, ExtendedKind.COMMENT],
authors: [pubkey],
'#p': [author],
limit: LIMIT
@@ -119,7 +119,7 @@ export default function NoteList({
subRequests.push({
urls: targetRelayList.write.concat(BIG_RELAY_URLS).slice(0, 5),
filter: {
- kinds: [kinds.ShortTextNote, kinds.Repost, kinds.Highlights],
+ kinds: [kinds.ShortTextNote, kinds.Repost, kinds.Highlights, ExtendedKind.COMMENT],
authors: [author],
'#p': [pubkey],
limit: LIMIT
@@ -135,7 +135,7 @@ export default function NoteList({
kinds:
filterType === 'pictures'
? [ExtendedKind.PICTURE]
- : [kinds.ShortTextNote, kinds.Repost, kinds.Highlights],
+ : [kinds.ShortTextNote, kinds.Repost, kinds.Highlights, ExtendedKind.COMMENT],
limit: areAlgoRelays ? ALGO_LIMIT : LIMIT
}
if (relayUrls.length === 0 && (_filter.authors?.length || author)) {
diff --git a/src/lib/event.ts b/src/lib/event.ts
index 9e8580e..89f703b 100644
--- a/src/lib/event.ts
+++ b/src/lib/event.ts
@@ -61,7 +61,12 @@ export function isProtectedEvent(event: Event) {
}
export function isSupportedKind(kind: number) {
- return [kinds.ShortTextNote, kinds.Highlights, ExtendedKind.PICTURE].includes(kind)
+ return [
+ kinds.ShortTextNote,
+ kinds.Highlights,
+ ExtendedKind.PICTURE,
+ ExtendedKind.COMMENT
+ ].includes(kind)
}
export function getParentEventTag(event?: Event) {