From d93b3e865b83112774119249fe71f0bb45b6e30f Mon Sep 17 00:00:00 2001 From: codytseng Date: Thu, 23 Oct 2025 22:17:20 +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/Profile/ProfileFeed.tsx | 17 ----------------- src/services/client.service.ts | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/Profile/ProfileFeed.tsx b/src/components/Profile/ProfileFeed.tsx index d2a85a8..74fbab3 100644 --- a/src/components/Profile/ProfileFeed.tsx +++ b/src/components/Profile/ProfileFeed.tsx @@ -136,23 +136,6 @@ export default function ProfileFeed({ init() }, [pubkey, listMode, search]) - useEffect(() => { - if (pubkey !== myPubkey) return - - const handleNewEvent = (data: Event) => { - const customEvent = data as CustomEvent - const evt = customEvent.detail - if (evt.pubkey !== pubkey) return - - noteListRef.current?.refresh() - } - - client.addEventListener('newEvent', handleNewEvent) - return () => { - client.removeEventListener('newEvent', handleNewEvent) - } - }, [pubkey, myPubkey]) - const handleListModeChange = (mode: TNoteListMode) => { setListMode(mode) noteListRef.current?.scrollToTop('smooth') diff --git a/src/services/client.service.ts b/src/services/client.service.ts index 1ff525f..687212b 100644 --- a/src/services/client.service.ts +++ b/src/services/client.service.ts @@ -20,6 +20,7 @@ import { EventTemplate, Filter, kinds, + matchFilters, Event as NEvent, nip19, Relay, @@ -470,8 +471,24 @@ class ClientService extends EventTarget { } }) + const handleNewEventFromInternal = (data: Event) => { + const customEvent = data as CustomEvent + const evt = customEvent.detail + if (!matchFilters(filters, evt)) return + + const id = evt.id + const have = _knownIds.has(id) + if (have) return + + _knownIds.add(id) + onevent?.(evt) + } + + this.addEventListener('newEvent', handleNewEventFromInternal) + return { close: () => { + this.removeEventListener('newEvent', handleNewEventFromInternal) subPromises.forEach((subPromise) => { subPromise .then((sub) => {