From 7552499a76486735cac8627164ccb39b23191461 Mon Sep 17 00:00:00 2001 From: codytseng Date: Sat, 24 May 2025 16:53:14 +0800 Subject: [PATCH] feat: add kind:1111 events to feed --- src/components/Note/UnknownNote.tsx | 34 +++++++++++++++++++++ src/components/Note/index.tsx | 13 ++++---- src/components/NoteCard/UnknownNoteCard.tsx | 24 ++------------- src/components/NoteList/index.tsx | 6 ++-- src/lib/event.ts | 7 ++++- 5 files changed, 52 insertions(+), 32 deletions(-) create mode 100644 src/components/Note/UnknownNote.tsx 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) {