Fix mute words in trending (#7293)

This commit is contained in:
Eric Bailey
2024-12-27 16:19:02 -06:00
committed by GitHub
parent d27ed32188
commit 8b7a331815
@@ -9,6 +9,11 @@ import {useAgent} from '#/state/session'
export type TrendingTopic = AppBskyUnspeccedDefs.TrendingTopic export type TrendingTopic = AppBskyUnspeccedDefs.TrendingTopic
type Response = {
topics: TrendingTopic[]
suggested: TrendingTopic[]
}
export const DEFAULT_LIMIT = 14 export const DEFAULT_LIMIT = 14
export const trendingTopicsQueryKey = ['trending-topics'] export const trendingTopicsQueryKey = ['trending-topics']
@@ -20,7 +25,7 @@ export function useTrendingTopics() {
return preferences?.moderationPrefs?.mutedWords || [] return preferences?.moderationPrefs?.mutedWords || []
}, [preferences?.moderationPrefs]) }, [preferences?.moderationPrefs])
return useQuery({ return useQuery<Response>({
refetchOnWindowFocus: true, refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.THREE, staleTime: STALE.MINUTES.THREE,
queryKey: trendingTopicsQueryKey, queryKey: trendingTopicsQueryKey,
@@ -28,16 +33,21 @@ export function useTrendingTopics() {
const {data} = await agent.api.app.bsky.unspecced.getTrendingTopics({ const {data} = await agent.api.app.bsky.unspecced.getTrendingTopics({
limit: DEFAULT_LIMIT, limit: DEFAULT_LIMIT,
}) })
const {topics, suggested} = data
return { return {
topics: topics.filter(t => { topics: data.topics ?? [],
suggested: data.suggested ?? [],
}
},
select: React.useCallback(
(data: Response) => {
return {
topics: data.topics.filter(t => {
return !hasMutedWord({ return !hasMutedWord({
mutedWords, mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description, text: t.topic + ' ' + t.displayName + ' ' + t.description,
}) })
}), }),
suggested: suggested.filter(t => { suggested: data.suggested.filter(t => {
return !hasMutedWord({ return !hasMutedWord({
mutedWords, mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description, text: t.topic + ' ' + t.displayName + ' ' + t.description,
@@ -45,5 +55,7 @@ export function useTrendingTopics() {
}), }),
} }
}, },
[mutedWords],
),
}) })
} }