import {AppBskyGraphGetList} from '@atproto/api' import {useInfiniteQuery, InfiniteData, QueryKey} from '@tanstack/react-query' import {useSession} from '../session' const PAGE_SIZE = 30 type RQPageParam = string | undefined export const RQKEY = (uri: string) => ['list-members', uri] export function useListMembersQuery(uri: string) { const {agent} = useSession() return useInfiniteQuery< AppBskyGraphGetList.OutputSchema, Error, InfiniteData, QueryKey, RQPageParam >({ queryKey: RQKEY(uri), async queryFn({pageParam}: {pageParam: RQPageParam}) { const res = await agent.app.bsky.graph.getList({ list: uri, limit: PAGE_SIZE, cursor: pageParam, }) return res.data }, initialPageParam: undefined, getNextPageParam: lastPage => lastPage.cursor, }) }