feat: filter out reviews about localhost relays
This commit is contained in:
@@ -46,7 +46,8 @@ const NoteList = forwardRef(
|
||||
hideUntrustedNotes = false,
|
||||
areAlgoRelays = false,
|
||||
showRelayCloseReason = false,
|
||||
pinnedEventIds = []
|
||||
pinnedEventIds = [],
|
||||
filterFn
|
||||
}: {
|
||||
subRequests: TFeedSubRequest[]
|
||||
showKinds: number[]
|
||||
@@ -56,6 +57,7 @@ const NoteList = forwardRef(
|
||||
areAlgoRelays?: boolean
|
||||
showRelayCloseReason?: boolean
|
||||
pinnedEventIds?: string[]
|
||||
filterFn?: (event: Event) => boolean
|
||||
},
|
||||
ref
|
||||
) => {
|
||||
@@ -102,10 +104,13 @@ const NoteList = forwardRef(
|
||||
) {
|
||||
return true
|
||||
}
|
||||
if (filterFn && !filterFn(evt)) {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
},
|
||||
[hideReplies, hideUntrustedNotes, mutePubkeySet, pinnedEventIds, isEventDeleted]
|
||||
[hideReplies, hideUntrustedNotes, mutePubkeySet, pinnedEventIds, isEventDeleted, filterFn]
|
||||
)
|
||||
|
||||
const filteredEvents = useMemo(() => {
|
||||
|
||||
@@ -5,9 +5,11 @@ import Tabs from '@/components/Tabs'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import { BIG_RELAY_URLS, ExtendedKind } from '@/constants'
|
||||
import PrimaryPageLayout from '@/layouts/PrimaryPageLayout'
|
||||
import { getReplaceableEventIdentifier } from '@/lib/event'
|
||||
import { useUserTrust } from '@/providers/UserTrustProvider'
|
||||
import { Compass, Plus } from 'lucide-react'
|
||||
import { forwardRef, useState } from 'react'
|
||||
import { NostrEvent } from 'nostr-tools'
|
||||
import { forwardRef, useCallback, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
|
||||
type TExploreTabs = 'following' | 'explore' | 'reviews'
|
||||
@@ -16,6 +18,34 @@ const ExplorePage = forwardRef((_, ref) => {
|
||||
const { hideUntrustedNotes } = useUserTrust()
|
||||
const [tab, setTab] = useState<TExploreTabs>('explore')
|
||||
|
||||
const relayReviewFilterFn = useCallback((evt: NostrEvent) => {
|
||||
const d = getReplaceableEventIdentifier(evt)
|
||||
if (!d) return false
|
||||
|
||||
try {
|
||||
const url = new URL(d)
|
||||
return url.hostname !== 'localhost'
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}, [])
|
||||
|
||||
const content = useMemo(() => {
|
||||
return tab === 'explore' ? (
|
||||
<Explore />
|
||||
) : tab === 'reviews' ? (
|
||||
<NoteList
|
||||
showKinds={[ExtendedKind.RELAY_REVIEW]}
|
||||
subRequests={[{ urls: BIG_RELAY_URLS, filter: {} }]}
|
||||
filterMutedNotes
|
||||
hideUntrustedNotes={hideUntrustedNotes}
|
||||
filterFn={relayReviewFilterFn}
|
||||
/>
|
||||
) : (
|
||||
<FollowingFavoriteRelayList />
|
||||
)
|
||||
}, [tab, relayReviewFilterFn, hideUntrustedNotes])
|
||||
|
||||
return (
|
||||
<PrimaryPageLayout
|
||||
ref={ref}
|
||||
@@ -32,18 +62,7 @@ const ExplorePage = forwardRef((_, ref) => {
|
||||
]}
|
||||
onTabChange={(tab) => setTab(tab as TExploreTabs)}
|
||||
/>
|
||||
{tab === 'explore' ? (
|
||||
<Explore />
|
||||
) : tab === 'reviews' ? (
|
||||
<NoteList
|
||||
showKinds={[ExtendedKind.RELAY_REVIEW]}
|
||||
subRequests={[{ urls: BIG_RELAY_URLS, filter: {} }]}
|
||||
filterMutedNotes
|
||||
hideUntrustedNotes={hideUntrustedNotes}
|
||||
/>
|
||||
) : (
|
||||
<FollowingFavoriteRelayList />
|
||||
)}
|
||||
{content}
|
||||
</PrimaryPageLayout>
|
||||
)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user