From e6016242ef24fcd136e9a5e88194f76d72b95794 Mon Sep 17 00:00:00 2001 From: codytseng Date: Mon, 23 Jun 2025 10:29:57 +0800 Subject: [PATCH] feat: highlight reactions notifications --- src/components/ContentPreview/index.tsx | 12 +++++++++++- .../NotificationItem/ReactionNotification.tsx | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/ContentPreview/index.tsx b/src/components/ContentPreview/index.tsx index 00d92eb..0059271 100644 --- a/src/components/ContentPreview/index.tsx +++ b/src/components/ContentPreview/index.tsx @@ -8,7 +8,7 @@ import { } from '@/lib/content-parser' import { extractEmojiInfosFromTags } from '@/lib/event' import { cn } from '@/lib/utils' -import { Event } from 'nostr-tools' +import { Event, kinds } from 'nostr-tools' import { useMemo } from 'react' import { useTranslation } from 'react-i18next' import { EmbeddedMentionText } from '../Embedded' @@ -27,6 +27,8 @@ export default function ContentPreview({ const nodes = useMemo(() => { if (!event) return [{ type: 'text', data: `[${t('Not found the note')}]` }] + if (event.kind === kinds.Highlights) return [] + return parseContent(event.content, [ EmbeddedImageParser, EmbeddedVideoParser, @@ -36,6 +38,14 @@ export default function ContentPreview({ ]) }, [event]) + if (event?.kind === kinds.Highlights) { + return ( +
+ {event.content} +
+ ) + } + const emojiInfos = extractEmojiInfosFromTags(event?.tags) return ( diff --git a/src/components/NotificationList/NotificationItem/ReactionNotification.tsx b/src/components/NotificationList/NotificationItem/ReactionNotification.tsx index fc94260..84bb857 100644 --- a/src/components/NotificationList/NotificationItem/ReactionNotification.tsx +++ b/src/components/NotificationList/NotificationItem/ReactionNotification.tsx @@ -1,13 +1,13 @@ import Image from '@/components/Image' -import { ExtendedKind } from '@/constants' import { useFetchEvent } from '@/hooks' +import { isSupportedKind } from '@/lib/event' import { toNote } from '@/lib/link' import { tagNameEquals } from '@/lib/tag' import { cn } from '@/lib/utils' import { useSecondaryPage } from '@/PageManager' import { useNostr } from '@/providers/NostrProvider' import { Heart } from 'lucide-react' -import { Event, kinds } from 'nostr-tools' +import { Event } from 'nostr-tools' import { useMemo } from 'react' import ContentPreview from '../../ContentPreview' import { FormattedTimestamp } from '../../FormattedTimestamp' @@ -54,7 +54,7 @@ export function ReactionNotification({ return notification.content }, [notification]) - if (!event || !eventId || ![kinds.ShortTextNote, ExtendedKind.PICTURE].includes(event.kind)) { + if (!event || !eventId || !isSupportedKind(event.kind)) { return null }