From 760f4bcccb8c2641418c1eb9b3d371e0c7852219 Mon Sep 17 00:00:00 2001 From: codytseng Date: Thu, 6 Feb 2025 10:04:43 +0800 Subject: [PATCH] fix: muted --- src/components/NoteCard/RepostNoteCard.tsx | 15 +++++++++++- src/components/NoteCard/index.tsx | 22 +++++++++++++++--- src/components/NoteList/index.tsx | 27 +++++++++++++--------- src/services/client.service.ts | 12 +++++----- 4 files changed, 55 insertions(+), 21 deletions(-) diff --git a/src/components/NoteCard/RepostNoteCard.tsx b/src/components/NoteCard/RepostNoteCard.tsx index d98072ac..68666c94 100644 --- a/src/components/NoteCard/RepostNoteCard.tsx +++ b/src/components/NoteCard/RepostNoteCard.tsx @@ -1,9 +1,19 @@ +import { useMuteList } from '@/providers/MuteListProvider' import client from '@/services/client.service' import { Event, kinds, verifyEvent } from 'nostr-tools' import { useMemo } from 'react' import NormalNoteCard from './NormalNoteCard' -export default function RepostNoteCard({ event, className }: { event: Event; className?: string }) { +export default function RepostNoteCard({ + event, + className, + filterMutedNotes = true +}: { + event: Event + className?: string + filterMutedNotes?: boolean +}) { + const { mutePubkeys } = useMuteList() const targetEvent = useMemo(() => { const targetEvent = event.content ? (JSON.parse(event.content) as Event) : null try { @@ -18,6 +28,9 @@ export default function RepostNoteCard({ event, className }: { event: Event; cla return targetEvent }, [event]) if (!targetEvent) return null + if (filterMutedNotes && mutePubkeys.includes(targetEvent.pubkey)) { + return null + } return } diff --git a/src/components/NoteCard/index.tsx b/src/components/NoteCard/index.tsx index 25fed9d2..b6a8cafd 100644 --- a/src/components/NoteCard/index.tsx +++ b/src/components/NoteCard/index.tsx @@ -1,10 +1,26 @@ +import { useMuteList } from '@/providers/MuteListProvider' import { Event, kinds } from 'nostr-tools' -import RepostNoteCard from './RepostNoteCard' import NormalNoteCard from './NormalNoteCard' +import RepostNoteCard from './RepostNoteCard' + +export default function NoteCard({ + event, + className, + filterMutedNotes = true +}: { + event: Event + className?: string + filterMutedNotes?: boolean +}) { + const { mutePubkeys } = useMuteList() + if (filterMutedNotes && mutePubkeys.includes(event.pubkey)) { + return null + } -export default function NoteCard({ event, className }: { event: Event; className?: string }) { if (event.kind === kinds.Repost) { - return + return ( + + ) } return } diff --git a/src/components/NoteList/index.tsx b/src/components/NoteList/index.tsx index a14d309d..c452e069 100644 --- a/src/components/NoteList/index.tsx +++ b/src/components/NoteList/index.tsx @@ -167,13 +167,6 @@ export default function NoteList({ setNewEvents([]) } - const eventFilter = (event: Event) => { - return ( - (!filterMutedNotes || !mutePubkeys.includes(event.pubkey)) && - (listMode !== 'posts' || !isReplyNoteEvent(event)) - ) - } - return (
- {newEvents.filter(eventFilter).length > 0 && ( + {newEvents.filter((event: Event) => { + return ( + (!filterMutedNotes || !mutePubkeys.includes(event.pubkey)) && + (listMode !== 'posts' || !isReplyNoteEvent(event)) + ) + }).length > 0 && (