From 6df352a2ab08df5ff432b06817e6ff0f96fe9d74 Mon Sep 17 00:00:00 2001 From: codytseng Date: Sat, 16 Aug 2025 16:36:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=92=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/NoteStats/Likes.tsx | 3 +++ src/components/NoteStats/RepostButton.tsx | 6 +++--- src/services/note-stats.service.ts | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/NoteStats/Likes.tsx b/src/components/NoteStats/Likes.tsx index 4b62875..2fdd7db 100644 --- a/src/components/NoteStats/Likes.tsx +++ b/src/components/NoteStats/Likes.tsx @@ -65,6 +65,9 @@ export default function Likes({ event }: { event: Event }) { )} onClick={(e) => { e.stopPropagation() + if (pubkey && pubkeys.has(pubkey)) { + return + } like(key, emoji) }} > diff --git a/src/components/NoteStats/RepostButton.tsx b/src/components/NoteStats/RepostButton.tsx index 82555ec..7ba7dc7 100644 --- a/src/components/NoteStats/RepostButton.tsx +++ b/src/components/NoteStats/RepostButton.tsx @@ -15,7 +15,7 @@ import { useScreenSize } from '@/providers/ScreenSizeProvider' import { useUserTrust } from '@/providers/UserTrustProvider' import noteStatsService from '@/services/note-stats.service' import { Loader, PencilLine, Repeat } from 'lucide-react' -import { Event, kinds } from 'nostr-tools' +import { Event } from 'nostr-tools' import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' import PostEditor from '../PostEditor' @@ -51,8 +51,8 @@ export default function RepostButton({ event }: { event: Event }) { const hasReposted = noteStats?.repostPubkeySet?.has(pubkey) if (hasReposted) return if (!noteStats?.updatedAt) { - const events = await noteStatsService.fetchNoteStats(event, pubkey) - if (events.some((e) => e.kind === kinds.Repost && e.pubkey === pubkey)) { + const noteStats = await noteStatsService.fetchNoteStats(event, pubkey) + if (noteStats.repostPubkeySet?.has(pubkey)) { return } } diff --git a/src/services/note-stats.service.ts b/src/services/note-stats.service.ts index 27da4e4..acd7e02 100644 --- a/src/services/note-stats.service.ts +++ b/src/services/note-stats.service.ts @@ -136,7 +136,7 @@ class NoteStatsService { ...(this.noteStatsMap.get(event.id) ?? {}), updatedAt: dayjs().unix() }) - return events + return this.noteStatsMap.get(event.id) ?? {} } subscribeNoteStats(noteId: string, callback: () => void) {