diff --git a/src/components/search/SearchView.tsx b/src/components/search/SearchView.tsx index a74e985..ed7e1a9 100644 --- a/src/components/search/SearchView.tsx +++ b/src/components/search/SearchView.tsx @@ -151,7 +151,7 @@ export function SearchView() { }, []); const { loggedIn, follows } = useUserStore(); - const { mutedPubkeys } = useMuteStore(); + const { mutedPubkeys, contentMatchesMutedKeyword } = useMuteStore(); const { dismissedPubkeys, dismiss } = useDismissedSuggestionsStore(); const visibleSuggestions = suggestions.filter( @@ -265,7 +265,15 @@ export function SearchView() { if (e.key === "Enter") handleSearch(); }; - const totalResults = noteResults.length + userResults.length + articleResults.length; + // Respect the mute list in search results (issue #7): hide notes/articles + // from muted pubkeys or matching a muted keyword, and people who are muted. + const isMutedEvent = (e: NDKEvent) => + mutedPubkeys.includes(e.pubkey) || contentMatchesMutedKeyword(e.content); + const filteredNoteResults = noteResults.filter((e) => !isMutedEvent(e)); + const filteredArticleResults = articleResults.filter((e) => !isMutedEvent(e)); + const filteredUserResults = userResults.filter((u) => !mutedPubkeys.includes(u.pubkey)); + + const totalResults = filteredNoteResults.length + filteredUserResults.length + filteredArticleResults.length; return (