mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at switch-session-failure 50 lines 1.1 kB view raw
1import {AppBskyActorDefs} from '@atproto/api' 2import {QueryClient, useQuery} from '@tanstack/react-query' 3 4import {STALE} from '#/state/queries' 5import {useAgent} from '#/state/session' 6 7const RQKEY_ROOT = 'actor-search' 8export const RQKEY = (query: string) => [RQKEY_ROOT, query] 9 10export function useActorSearch({ 11 query, 12 enabled, 13}: { 14 query: string 15 enabled?: boolean 16}) { 17 const {getAgent} = useAgent() 18 return useQuery<AppBskyActorDefs.ProfileView[]>({ 19 staleTime: STALE.MINUTES.ONE, 20 queryKey: RQKEY(query || ''), 21 async queryFn() { 22 const res = await getAgent().searchActors({ 23 q: query, 24 }) 25 return res.data.actors 26 }, 27 enabled: enabled && !!query, 28 }) 29} 30 31export function* findAllProfilesInQueryData( 32 queryClient: QueryClient, 33 did: string, 34) { 35 const queryDatas = queryClient.getQueriesData<AppBskyActorDefs.ProfileView[]>( 36 { 37 queryKey: [RQKEY_ROOT], 38 }, 39 ) 40 for (const [_queryKey, queryData] of queryDatas) { 41 if (!queryData) { 42 continue 43 } 44 for (const actor of queryData) { 45 if (actor.did === did) { 46 yield actor 47 } 48 } 49 } 50}