An ATproto social media client -- with an independent Appview.
at main 38 lines 1.1 kB view raw
1import {useQuery} from '@tanstack/react-query' 2 3import { 4 aggregateUserInterests, 5 createBskyTopicsHeader, 6} from '#/lib/api/feed/utils' 7import {getContentLanguages} from '#/state/preferences/languages' 8import {STALE} from '#/state/queries' 9import {usePreferencesQuery} from '#/state/queries/preferences' 10import {useAgent} from '#/state/session' 11 12export const createSuggestedStarterPacksQueryKey = () => [ 13 'suggested-starter-packs', 14] 15 16export function useSuggestedStarterPacksQuery({enabled}: {enabled?: boolean}) { 17 const agent = useAgent() 18 const {data: preferences} = usePreferencesQuery() 19 const contentLangs = getContentLanguages().join(',') 20 21 return useQuery({ 22 enabled: !!preferences && enabled !== false, 23 staleTime: STALE.MINUTES.THREE, 24 queryKey: createSuggestedStarterPacksQueryKey(), 25 async queryFn() { 26 const {data} = await agent.app.bsky.unspecced.getSuggestedStarterPacks( 27 undefined, 28 { 29 headers: { 30 ...createBskyTopicsHeader(aggregateUserInterests(preferences)), 31 'Accept-Language': contentLangs, 32 }, 33 }, 34 ) 35 return data 36 }, 37 }) 38}