import {AppBskyGraphGetFollowers} from '@atproto/api' import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {getAgent} from '#/state/session' import {STALE} from '#/state/queries' const PAGE_SIZE = 30 type RQPageParam = string | undefined export const RQKEY = (did: string) => ['profile-followers', did] export function useProfileFollowersQuery(did: string | undefined) { return useInfiniteQuery< AppBskyGraphGetFollowers.OutputSchema, Error, InfiniteData, QueryKey, RQPageParam >({ staleTime: STALE.MINUTES.FIVE, queryKey: RQKEY(did || ''), async queryFn({pageParam}: {pageParam: RQPageParam}) { const res = await getAgent().app.bsky.graph.getFollowers({ actor: did || '', limit: PAGE_SIZE, cursor: pageParam, }) return res.data }, initialPageParam: undefined, getNextPageParam: lastPage => lastPage.cursor, enabled: !!did, }) }