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 58 lines 1.5 kB view raw
1import {AppBskyActorDefs, AppBskyGraphGetBlocks} from '@atproto/api' 2import { 3 InfiniteData, 4 QueryClient, 5 QueryKey, 6 useInfiniteQuery, 7} from '@tanstack/react-query' 8 9import {useAgent} from '#/state/session' 10 11const RQKEY_ROOT = 'my-blocked-accounts' 12export const RQKEY = () => [RQKEY_ROOT] 13type RQPageParam = string | undefined 14 15export function useMyBlockedAccountsQuery() { 16 const {getAgent} = useAgent() 17 return useInfiniteQuery< 18 AppBskyGraphGetBlocks.OutputSchema, 19 Error, 20 InfiniteData<AppBskyGraphGetBlocks.OutputSchema>, 21 QueryKey, 22 RQPageParam 23 >({ 24 queryKey: RQKEY(), 25 async queryFn({pageParam}: {pageParam: RQPageParam}) { 26 const res = await getAgent().app.bsky.graph.getBlocks({ 27 limit: 30, 28 cursor: pageParam, 29 }) 30 return res.data 31 }, 32 initialPageParam: undefined, 33 getNextPageParam: lastPage => lastPage.cursor, 34 }) 35} 36 37export function* findAllProfilesInQueryData( 38 queryClient: QueryClient, 39 did: string, 40): Generator<AppBskyActorDefs.ProfileView, void> { 41 const queryDatas = queryClient.getQueriesData< 42 InfiniteData<AppBskyGraphGetBlocks.OutputSchema> 43 >({ 44 queryKey: [RQKEY_ROOT], 45 }) 46 for (const [_queryKey, queryData] of queryDatas) { 47 if (!queryData?.pages) { 48 continue 49 } 50 for (const page of queryData?.pages) { 51 for (const block of page.blocks) { 52 if (block.did === did) { 53 yield block 54 } 55 } 56 } 57 } 58}