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
+27 -15
View File
@@ -9,6 +9,11 @@ import {useAgent} from '#/state/session'
export type TrendingTopic = AppBskyUnspeccedDefs.TrendingTopic
type Response = {
topics: TrendingTopic[]
suggested: TrendingTopic[]
}
export const DEFAULT_LIMIT = 14
export const trendingTopicsQueryKey = ['trending-topics']
@@ -20,7 +25,7 @@ export function useTrendingTopics() {
return preferences?.moderationPrefs?.mutedWords || []
}, [preferences?.moderationPrefs])
return useQuery({
return useQuery<Response>({
refetchOnWindowFocus: true,
staleTime: STALE.MINUTES.THREE,
queryKey: trendingTopicsQueryKey,
@@ -28,22 +33,29 @@ export function useTrendingTopics() {
const {data} = await agent.api.app.bsky.unspecced.getTrendingTopics({
limit: DEFAULT_LIMIT,
})
const {topics, suggested} = data
return {
topics: topics.filter(t => {
return !hasMutedWord({
mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description,
})
}),
suggested: suggested.filter(t => {
return !hasMutedWord({
mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description,
})
}),
topics: data.topics ?? [],
suggested: data.suggested ?? [],
}
},
select: React.useCallback(
(data: Response) => {
return {
topics: data.topics.filter(t => {
return !hasMutedWord({
mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description,
})
}),
suggested: data.suggested.filter(t => {
return !hasMutedWord({
mutedWords,
text: t.topic + ' ' + t.displayName + ' ' + t.description,
})
}),
}
},
[mutedWords],
),
})
}