UNPKG

use-bluesky

Version:

React hooks to interact with the Bluesky API

1 lines 23.9 kB
{"version":3,"file":"index.cjs","sources":["../../src/context/BlueskyContext.ts","../../src/constants.ts","../../src/context/BlueskyProvider.tsx","../../src/hooks/useActorStarterPacks.ts","../../src/hooks/useBluesky.ts","../../src/hooks/useFollow.ts","../../src/hooks/useFollowers.ts","../../src/hooks/useFollows.ts","../../src/hooks/useList.ts","../../src/hooks/useProfile.ts","../../src/hooks/useSearchActors.ts","../../src/hooks/useStarterPack.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport { type Agent } from '@atproto/api'\nimport { NodeOAuthClient } from '@atproto/oauth-client-node'\n\nexport type BlueskyContextValue = {\n agent?: Agent\n client?: NodeOAuthClient\n baseUrl: string\n session?: any\n token?: string\n}\n\nexport const BlueskyContext = createContext<BlueskyContextValue | undefined>(\n undefined,\n)\n","// Bluesky API URL\nexport const BLUESKY_API_URL = 'https://public.api.bsky.app'\n\n// Routes\nexport const ACTOR_STARTER_PACKS_ROUTE =\n '/xrpc/app.bsky.graph.getActorStarterPacks'\nexport const PROFILE_ROUTE = '/xrpc/app.bsky.actor.getProfile'\nexport const FOLLOWERS_ROUTE = '/xrpc/app.bsky.graph.getFollowers'\nexport const FOLLOWS_ROUTE = '/xrpc/app.bsky.graph.getFollows'\nexport const LIST_ROUTE = '/xrpc/app.bsky.graph.getList'\nexport const RESOLVE_HANDLE_ROUTE = '/xrpc/com.atproto.identity.resolveHandle'\nexport const STARTER_PACK_ROUTE = '/xrpc/app.bsky.graph.getStarterPack'\nexport const SEARCH_ACTORS_ROUTE = '/xrpc/app.bsky.actor.searchActors'\n\n// Mutation Routes\nexport const FOLLOW_ROUTE = '/follow'\nexport const UNFOLLOW_ROUTE = '/unfollow'\n","import { PropsWithChildren, useMemo } from 'react'\n\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query'\n\nimport { BLUESKY_API_URL } from '../constants'\nimport { BlueskyContext } from './BlueskyContext'\n\ntype BlueskyProviderProps = PropsWithChildren & {\n baseUrl?: string\n queryClient?: QueryClient\n session?: any\n token?: string\n}\n\nconst queryClient = new QueryClient()\n\nexport const BlueskyProvider = ({\n children,\n baseUrl = BLUESKY_API_URL,\n queryClient: queryClientProp,\n session,\n token,\n}: BlueskyProviderProps) => {\n const localQueryClient = useMemo(\n () => queryClientProp ?? queryClient,\n [queryClientProp],\n )\n\n return (\n <BlueskyContext.Provider\n value={{\n baseUrl,\n session,\n token,\n }}\n >\n <QueryClientProvider client={localQueryClient}>\n {children}\n </QueryClientProvider>\n </BlueskyContext.Provider>\n )\n}\n","import { useInfiniteQuery } from '@tanstack/react-query'\n\nimport { ACTOR_STARTER_PACKS_ROUTE, BLUESKY_API_URL } from '../constants'\n\ntype UseStarterPacksOptions = {\n actor?: string\n cursor?: string\n enabled?: boolean\n initialData?: any\n limit?: number\n refetchOnMount?: boolean\n}\n\nexport const useActorStarterPacks = (options: UseStarterPacksOptions) => {\n const {\n actor,\n cursor,\n enabled = true,\n initialData,\n limit,\n refetchOnMount = false,\n } = options\n\n return useInfiniteQuery({\n enabled: !!actor && enabled,\n queryKey: ['starter-packs', actor, limit, cursor],\n queryFn: ({ pageParam = '' }) =>\n fetch(\n `${BLUESKY_API_URL}${ACTOR_STARTER_PACKS_ROUTE}?actor=${encodeURIComponent(\n actor ?? '',\n )}${limit ? `&limit=${limit}` : ''}${pageParam ? `&cursor=${pageParam}` : ''}`,\n ).then((res) => res.json()),\n getNextPageParam: (lastPage, pages) => lastPage.cursor,\n initialData: initialData\n ? { pageParams: [cursor ?? ''], pages: [initialData] }\n : undefined,\n initialPageParam: cursor,\n refetchOnMount: refetchOnMount || !initialData,\n })\n}\n","import { useContext } from 'react'\n\nimport { BlueskyContext } from '../context'\nimport { BLUESKY_API_URL } from '../constants'\n\nexport const useBluesky = () => {\n const context = useContext(BlueskyContext) ?? { baseUrl: BLUESKY_API_URL }\n\n return context\n}\n","import { useCallback, useMemo } from 'react'\nimport { useMutation } from '@tanstack/react-query'\nimport axios from 'axios'\nimport { FOLLOW_ROUTE, UNFOLLOW_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseFollowProps = {\n did: string\n onSuccess: () => void\n followUri: string\n}\n\nexport const useFollow = ({ did, onSuccess, followUri }: UseFollowProps) => {\n const { baseUrl, token } = useBluesky()\n\n const headers = useMemo(\n () => (token ? { Authorization: `Bearer ${token}` } : undefined),\n [token],\n )\n\n const { mutate: followMutation, isPending: isFollowing } = useMutation({\n mutationFn: (did: string) => {\n return axios.post(\n `${baseUrl}${FOLLOW_ROUTE}`,\n { actors: [did] },\n {\n headers,\n },\n )\n },\n onSuccess,\n })\n\n const { mutate: unfollowMutation, isPending: isUnfollowing } = useMutation({\n mutationFn: (followUri: string) => {\n return axios.post(\n `${baseUrl}${UNFOLLOW_ROUTE}`,\n { uris: [followUri] },\n {\n headers,\n },\n )\n },\n onSuccess,\n })\n\n const follow = useCallback(() => {\n return followMutation(did)\n }, [did, followMutation])\n\n const unfollow = useCallback(() => {\n return unfollowMutation(followUri)\n }, [followUri, unfollowMutation])\n\n return { follow, isPending: !!(isFollowing ?? isUnfollowing), unfollow }\n}\n","import { useInfiniteQuery } from '@tanstack/react-query'\nimport { FOLLOWERS_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseFollowersProps = {\n actor?: string\n cursor?: string\n initialData?: any\n limit?: number\n refetchOnMount?: boolean\n}\n\nexport const useFollowers = (options: UseFollowersProps) => {\n const { baseUrl, token } = useBluesky()\n\n const {\n actor,\n cursor = '',\n initialData,\n limit = 100,\n refetchOnMount,\n } = options\n\n return useInfiniteQuery({\n enabled: !!actor,\n initialData,\n queryKey: ['followers', baseUrl, actor, limit, token],\n queryFn: ({ pageParam = '' }) => {\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined\n\n return fetch(\n `${baseUrl}${FOLLOWERS_ROUTE}?actor=${actor}&limit=${limit}${\n pageParam ? `&cursor=${pageParam}` : ''\n }`,\n { headers },\n ).then((res) => res.json())\n },\n getNextPageParam: (lastPage, pages) => lastPage.cursor,\n initialPageParam: cursor,\n refetchOnMount,\n })\n}\n","import { useInfiniteQuery } from '@tanstack/react-query'\n\nimport { FOLLOWS_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseFollowsProps = {\n actor?: string\n cursor?: string\n initialData?: any\n limit?: number\n refetchOnMount?: boolean\n}\n\nexport const useFollows = (options: UseFollowsProps) => {\n const { baseUrl, token } = useBluesky()\n\n const {\n actor,\n cursor = '',\n initialData,\n limit = 100,\n refetchOnMount,\n } = options\n\n return useInfiniteQuery({\n enabled: !!actor,\n initialData,\n queryKey: ['follows', baseUrl, actor, limit, token],\n queryFn: ({ pageParam = '' }) => {\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined\n\n return fetch(\n `${baseUrl}${FOLLOWS_ROUTE}?actor=${actor}&limit=${limit}${\n pageParam ? `&cursor=${pageParam}` : ''\n }`,\n { headers },\n ).then((res) => res.json())\n },\n getNextPageParam: (lastPage, pages) => lastPage.cursor,\n initialPageParam: cursor,\n refetchOnMount,\n })\n}\n","import { useInfiniteQuery } from '@tanstack/react-query'\n\nimport { LIST_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseListOptions = {\n initialData?: any\n initialPageParam?: string\n list?: string\n limit?: number\n refetchOnMount?: boolean\n}\n\nexport const useList = (options: UseListOptions) => {\n const { baseUrl, token } = useBluesky()\n\n const {\n initialData,\n initialPageParam = '',\n list,\n limit = 100,\n refetchOnMount,\n } = options\n\n return useInfiniteQuery({\n enabled: !!list,\n initialData,\n initialPageParam,\n queryKey: ['list', baseUrl, list, limit],\n queryFn: ({ pageParam = '' }) => {\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined\n\n return fetch(\n `${baseUrl}${LIST_ROUTE}?list=${encodeURIComponent(\n list ?? '',\n )}&limit=${limit}${pageParam ? `&cursor=${pageParam}` : ''}`,\n { headers },\n ).then((res) => res.json())\n },\n getNextPageParam: (lastPage, pages) => lastPage.cursor,\n refetchOnMount,\n })\n}\n","import { useQuery } from '@tanstack/react-query'\n\nimport { PROFILE_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseProfileProps = {\n actor?: string\n enabled?: boolean\n}\n\nexport const useProfile = ({ actor, enabled = true }: UseProfileProps) => {\n const { baseUrl, token } = useBluesky()\n\n return useQuery({\n enabled: enabled && !!actor,\n queryKey: ['profile', baseUrl, actor],\n queryFn: () => {\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined\n\n return fetch(\n `${baseUrl}${PROFILE_ROUTE}?actor=${encodeURIComponent(actor ?? '')}`,\n {\n headers,\n },\n ).then((res) => res.json())\n },\n })\n}\n","import { useQuery } from '@tanstack/react-query'\n\nimport { SEARCH_ACTORS_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\ntype UseSearchActorProps = {\n cursor?: string\n limit: number\n search: string\n}\n\nexport const useSearchActors = ({\n cursor,\n limit,\n search,\n}: UseSearchActorProps) => {\n const { baseUrl, token } = useBluesky()\n\n return useQuery({\n queryKey: ['search', 'actor', baseUrl, cursor, limit, search],\n queryFn: () => {\n const headers = token ? { Authorization: `Bearer ${token}` } : undefined\n\n return fetch(\n `${baseUrl}${SEARCH_ACTORS_ROUTE}?q=${`${search}*`}&limit=${limit}${cursor ? `&cursor=${cursor}` : ''}`,\n { headers },\n ).then((res) => res.json())\n },\n })\n}\n","import { useQuery } from '@tanstack/react-query'\n\nimport { STARTER_PACK_ROUTE } from '../constants'\nimport { useBluesky } from './useBluesky'\n\nexport const useStarterPack = ({\n enabled = true,\n uri,\n}: {\n enabled?: boolean\n uri: string\n}) => {\n const { baseUrl, token } = useBluesky()\n\n return useQuery({\n enabled: enabled && !!uri,\n queryKey: ['starter-pack', baseUrl, uri],\n queryFn: () =>\n fetch(\n `${baseUrl}${STARTER_PACK_ROUTE}?starterPack=${encodeURIComponent(uri)}`,\n { headers: token ? { Authorization: `Bearer ${token}` } : undefined },\n ).then((res) => res.json()),\n })\n}\n"],"names":["BlueskyContext","createContext","undefined","BLUESKY_API_URL","ACTOR_STARTER_PACKS_ROUTE","PROFILE_ROUTE","FOLLOWERS_ROUTE","FOLLOWS_ROUTE","LIST_ROUTE","RESOLVE_HANDLE_ROUTE","STARTER_PACK_ROUTE","SEARCH_ACTORS_ROUTE","FOLLOW_ROUTE","UNFOLLOW_ROUTE","queryClient","QueryClient","BlueskyProvider","_ref","children","_ref$baseUrl","baseUrl","queryClientProp","session","token","localQueryClient","useMemo","_jsx","Provider","value","QueryClientProvider","client","useActorStarterPacks","options","actor","cursor","_options$enabled","enabled","initialData","limit","_options$refetchOnMou","refetchOnMount","useInfiniteQuery","queryKey","queryFn","_ref$pageParam","pageParam","fetch","concat","encodeURIComponent","then","res","json","getNextPageParam","lastPage","pages","pageParams","initialPageParam","useBluesky","_useContext","context","useContext","useFollow","did","onSuccess","followUri","_useBluesky","headers","Authorization","_useMutation","useMutation","mutationFn","axios","post","actors","followMutation","mutate","isFollowing","isPending","_useMutation2","uris","unfollowMutation","isUnfollowing","follow","useCallback","unfollow","useFollowers","_options$cursor","_options$limit","useFollows","useList","_options$initialPageP","list","useProfile","_ref$enabled","useQuery","useSearchActors","search","useStarterPack","uri"],"mappings":"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"}