use-bluesky
Version:
React hooks to interact with the Bluesky API
4 lines (3 loc) • 5.73 kB
JavaScript
/*! use-bluesky v0.0.4 !*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react/jsx-runtime"),require("@tanstack/react-query"),require("axios")):"function"==typeof define&&define.amd?define(["exports","react","react/jsx-runtime","@tanstack/react-query","axios"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["use-bluesky"]={},e.React,e["react/jsx-runtime"],e.tanstack,e.axios)}(this,(function(e,t,n,r,a){"use strict";var o=t.createContext(void 0),c="https://public.api.bsky.app",i="/xrpc/app.bsky.graph.getActorStarterPacks",u="/xrpc/app.bsky.actor.getProfile",s="/xrpc/app.bsky.graph.getFollowers",l="/xrpc/app.bsky.graph.getFollows",f="/xrpc/app.bsky.graph.getList",d="/xrpc/app.bsky.graph.getStarterPack",p="/xrpc/app.bsky.actor.searchActors",h="/follow",y="/unfollow",v=new r.QueryClient,m=function(){var e;return null!==(e=t.useContext(o))&&void 0!==e?e:{baseUrl:c}};e.ACTOR_STARTER_PACKS_ROUTE=i,e.BLUESKY_API_URL=c,e.BlueskyContext=o,e.BlueskyProvider=function(e){var a=e.children,i=e.baseUrl,u=void 0===i?c:i,s=e.queryClient,l=e.session,f=e.token,d=t.useMemo((function(){return null!=s?s:v}),[s]);return n.jsx(o.Provider,{value:{baseUrl:u,session:l,token:f},children:n.jsx(r.QueryClientProvider,{client:d,children:a})})},e.FOLLOWERS_ROUTE=s,e.FOLLOWS_ROUTE=l,e.FOLLOW_ROUTE=h,e.LIST_ROUTE=f,e.PROFILE_ROUTE=u,e.RESOLVE_HANDLE_ROUTE="/xrpc/com.atproto.identity.resolveHandle",e.SEARCH_ACTORS_ROUTE=p,e.STARTER_PACK_ROUTE=d,e.UNFOLLOW_ROUTE=y,e.useActorStarterPacks=function(e){var t=e.actor,n=e.cursor,a=e.enabled,o=void 0===a||a,u=e.initialData,s=e.limit,l=e.refetchOnMount,f=void 0!==l&&l;return r.useInfiniteQuery({enabled:!!t&&o,queryKey:["starter-packs",t,s,n],queryFn:function(e){var n=e.pageParam,r=void 0===n?"":n;return fetch("".concat(c).concat(i,"?actor=").concat(encodeURIComponent(null!=t?t:"")).concat(s?"&limit=".concat(s):"").concat(r?"&cursor=".concat(r):"")).then((function(e){return e.json()}))},getNextPageParam:function(e,t){return e.cursor},initialData:u?{pageParams:[null!=n?n:""],pages:[u]}:void 0,initialPageParam:n,refetchOnMount:f||!u})},e.useBluesky=m,e.useFollow=function(e){var n=e.did,o=e.onSuccess,c=e.followUri,i=m(),u=i.baseUrl,s=i.token,l=t.useMemo((function(){return s?{Authorization:"Bearer ".concat(s)}:void 0}),[s]),f=r.useMutation({mutationFn:function(e){return a.post("".concat(u).concat(h),{actors:[e]},{headers:l})},onSuccess:o}),d=f.mutate,p=f.isPending,v=r.useMutation({mutationFn:function(e){return a.post("".concat(u).concat(y),{uris:[e]},{headers:l})},onSuccess:o}),P=v.mutate,g=v.isPending;return{follow:t.useCallback((function(){return d(n)}),[n,d]),isPending:!!(null!=p?p:g),unfollow:t.useCallback((function(){return P(c)}),[c,P])}},e.useFollowers=function(e){var t=m(),n=t.baseUrl,a=t.token,o=e.actor,c=e.cursor,i=void 0===c?"":c,u=e.initialData,l=e.limit,f=void 0===l?100:l,d=e.refetchOnMount;return r.useInfiniteQuery({enabled:!!o,initialData:u,queryKey:["followers",n,o,f,a],queryFn:function(e){var t=e.pageParam,r=void 0===t?"":t,c=a?{Authorization:"Bearer ".concat(a)}:void 0;return fetch("".concat(n).concat(s,"?actor=").concat(o,"&limit=").concat(f).concat(r?"&cursor=".concat(r):""),{headers:c}).then((function(e){return e.json()}))},getNextPageParam:function(e,t){return e.cursor},initialPageParam:i,refetchOnMount:d})},e.useFollows=function(e){var t=m(),n=t.baseUrl,a=t.token,o=e.actor,c=e.cursor,i=void 0===c?"":c,u=e.initialData,s=e.limit,f=void 0===s?100:s,d=e.refetchOnMount;return r.useInfiniteQuery({enabled:!!o,initialData:u,queryKey:["follows",n,o,f,a],queryFn:function(e){var t=e.pageParam,r=void 0===t?"":t,c=a?{Authorization:"Bearer ".concat(a)}:void 0;return fetch("".concat(n).concat(l,"?actor=").concat(o,"&limit=").concat(f).concat(r?"&cursor=".concat(r):""),{headers:c}).then((function(e){return e.json()}))},getNextPageParam:function(e,t){return e.cursor},initialPageParam:i,refetchOnMount:d})},e.useList=function(e){var t=m(),n=t.baseUrl,a=t.token,o=e.initialData,c=e.initialPageParam,i=void 0===c?"":c,u=e.list,s=e.limit,l=void 0===s?100:s,d=e.refetchOnMount;return r.useInfiniteQuery({enabled:!!u,initialData:o,initialPageParam:i,queryKey:["list",n,u,l],queryFn:function(e){var t=e.pageParam,r=void 0===t?"":t,o=a?{Authorization:"Bearer ".concat(a)}:void 0;return fetch("".concat(n).concat(f,"?list=").concat(encodeURIComponent(null!=u?u:""),"&limit=").concat(l).concat(r?"&cursor=".concat(r):""),{headers:o}).then((function(e){return e.json()}))},getNextPageParam:function(e,t){return e.cursor},refetchOnMount:d})},e.useProfile=function(e){var t=e.actor,n=e.enabled,a=void 0===n||n,o=m(),c=o.baseUrl,i=o.token;return r.useQuery({enabled:a&&!!t,queryKey:["profile",c,t],queryFn:function(){var e=i?{Authorization:"Bearer ".concat(i)}:void 0;return fetch("".concat(c).concat(u,"?actor=").concat(encodeURIComponent(null!=t?t:"")),{headers:e}).then((function(e){return e.json()}))}})},e.useSearchActors=function(e){var t=e.cursor,n=e.limit,a=e.search,o=m(),c=o.baseUrl,i=o.token;return r.useQuery({queryKey:["search","actor",c,t,n,a],queryFn:function(){var e=i?{Authorization:"Bearer ".concat(i)}:void 0;return fetch("".concat(c).concat(p,"?q=","".concat(a,"*"),"&limit=").concat(n).concat(t?"&cursor=".concat(t):""),{headers:e}).then((function(e){return e.json()}))}})},e.useStarterPack=function(e){var t=e.enabled,n=void 0===t||t,a=e.uri,o=m(),c=o.baseUrl,i=o.token;return r.useQuery({enabled:n&&!!a,queryKey:["starter-pack",c,a],queryFn:function(){return fetch("".concat(c).concat(d,"?starterPack=").concat(encodeURIComponent(a)),{headers:i?{Authorization:"Bearer ".concat(i)}:void 0}).then((function(e){return e.json()}))}})}}));
//# sourceMappingURL=use-bluesky.min.js.map