UNPKG

use-bluesky

Version:

React hooks to interact with the Bluesky API

41 lines (36 loc) 1.14 kB
import { useInfiniteQuery } from '@tanstack/react-query' import { ACTOR_STARTER_PACKS_ROUTE, BLUESKY_API_URL } from '../constants' type UseStarterPacksOptions = { actor?: string cursor?: string enabled?: boolean initialData?: any limit?: number refetchOnMount?: boolean } export const useActorStarterPacks = (options: UseStarterPacksOptions) => { const { actor, cursor, enabled = true, initialData, limit, refetchOnMount = false, } = options return useInfiniteQuery({ enabled: !!actor && enabled, queryKey: ['starter-packs', actor, limit, cursor], queryFn: ({ pageParam = '' }) => fetch( `${BLUESKY_API_URL}${ACTOR_STARTER_PACKS_ROUTE}?actor=${encodeURIComponent( actor ?? '', )}${limit ? `&limit=${limit}` : ''}${pageParam ? `&cursor=${pageParam}` : ''}`, ).then((res) => res.json()), getNextPageParam: (lastPage, pages) => lastPage.cursor, initialData: initialData ? { pageParams: [cursor ?? ''], pages: [initialData] } : undefined, initialPageParam: cursor, refetchOnMount: refetchOnMount || !initialData, }) }