@frak-labs/react-sdk
Version:
React SDK of the Frak wallet, low level library to interact directly with the frak ecosystem.
1 lines • 4.92 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@frak-labs/core-sdk/actions"),t=require("@frak-labs/frame-connector"),n=require("@tanstack/react-query"),r=require("react"),i=require("@frak-labs/core-sdk");const a=(0,r.createContext)(void 0);function o(e){let{children:t,config:n}=e;return(0,r.createElement)(a.Provider,{value:{...n,walletUrl:n.walletUrl??`https://wallet.frak.id`,domain:n.domain??(typeof window<`u`?window?.location?.host:void 0)??`not-found`}},t)}const s=(0,r.createContext)(void 0);function c({style:e,children:t}){let a=p(),[o,c]=(0,r.useState)(null),{data:l}=(0,n.useQuery)({queryKey:[`frak`,`listener-url`,a.walletUrl],queryFn:async()=>{let e=await(0,i.getClientIdAsync)().catch(()=>void 0);return(0,i.buildListenerUrl)({walletUrl:a.walletUrl,clientId:e,preload:a.preload??[`sharing`]})},staleTime:1/0}),{data:u}=(0,n.useQuery)({queryKey:[`frak`,`iframe-client`,l],queryFn:()=>(0,i.createIFrameFrakClient)({iframe:o,config:a}),enabled:!!o,staleTime:1/0,meta:{storable:!1}});return(0,r.createElement)(r.Fragment,null,l?(0,r.createElement)(`iframe`,{...i.baseIframeProps,src:l,style:e??i.baseIframeProps.style,ref:c}):null,(0,r.createElement)(s.Provider,{value:u},t))}function l(){return(0,r.useContext)(s)}function u({options:i}={}){let a=l(),{data:o,error:s,status:c}=(0,n.useQuery)({queryKey:[`frak-sdk`,`auto-referral-interaction`],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return await(0,e.referralInteraction)(a,{options:i})??null},enabled:!!a,staleTime:1/0});return(0,r.useMemo)(()=>c===`pending`?`processing`:c===`error`?s:o||`idle`,[o,c,s])}function d({mutations:r}={}){let i=l();return(0,n.useMutation)({...r,mutationKey:[`frak-sdk`,`display-modal`],mutationFn:async({placement:n,...r})=>{if(!i)throw new t.ClientNotFound;return(0,e.displayModal)(i,r,n)}})}function f({mutations:r}={}){let i=l();return(0,n.useMutation)({...r,mutationKey:[`frak-sdk`,`display-sharing-page`],mutationFn:async({placement:n,...r})=>{if(!i)throw new t.ClientNotFound;return(0,e.displaySharingPage)(i,r,n)}})}function p(){let e=(0,r.useContext)(a);if(!e)throw new t.FrakRpcError(t.RpcErrorCodes.configError,`Frak config not found`);return e}function m({query:r,cacheTime:i}={}){let a=l();return(0,n.useQuery)({...r,queryKey:[`frak-sdk`,`get-merchant-information`],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return(0,e.getMerchantInformation)(a,{cacheTime:i})}})}function h({query:r,cacheTime:i}={}){let a=l();return(0,n.useQuery)({...r,queryKey:[`frak-sdk`,`get-merge-token`],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return(0,e.getMergeToken)(a,{cacheTime:i})}})}function g({query:r,cacheTime:i}={}){let a=l();return(0,n.useQuery)({...r,queryKey:[`frak-sdk`,`get-user-referral-status`],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return(0,e.getUserReferralStatus)(a,{cacheTime:i})}})}function _({mutations:r}={}){let i=l();return(0,n.useMutation)({...r,mutationKey:[`frak-sdk`,`open-sso`],mutationFn:async n=>{if(!i)throw new t.ClientNotFound;return(0,e.openSso)(i,n)}})}function v(r){let i=l();return(0,n.useQuery)({queryKey:[`frak-sdk`,`prepare-sso`,r],queryFn:async()=>{if(!i)throw new t.ClientNotFound;return(0,e.prepareSso)(i,r)}})}function y(r){let i=l();return(0,n.useQuery)({queryKey:[`frak-sdk`,`prepare-sso-url`,r],queryFn:async()=>{if(!i)throw new t.ClientNotFound;return(0,e.prepareSsoUrl)(i,r)},enabled:!!i})}function b({mutations:r}={}){let i=l();return(0,n.useMutation)({...r,mutationKey:[`frak-sdk`,`send-transaction`],mutationFn:async n=>{if(!i)throw new t.ClientNotFound;return(0,e.sendTransaction)(i,n)}})}function x(){let r=l();return(0,n.useQuery)({queryKey:[`frak-sdk`,`setup-referral`],queryFn:async()=>{if(!r)throw new t.ClientNotFound;return await(0,e.setupReferral)(r),null},enabled:!!r,staleTime:1/0})}function S({mutations:r}={}){let i=l();return(0,n.useMutation)({...r,mutationKey:[`frak-sdk`,`siwe-authenticate`,i?.config.domain??`no-domain`],mutationFn:async n=>{if(!i)throw new t.ClientNotFound;return(0,e.siweAuthenticate)(i,n)}})}function C(){let i=(0,n.useQueryClient)(),a=l(),o=(0,r.useCallback)(e=>{i.setQueryData([`frak-sdk`,`wallet-status-listener`],e)},[i]);return(0,n.useQuery)({gcTime:0,staleTime:0,queryKey:[`frak-sdk`,`wallet-status-listener`],queryFn:async()=>{if(!a)throw new t.ClientNotFound;return(0,e.watchWalletStatus)(a,o)},enabled:!!a})}exports.FrakConfigContext=a,exports.FrakConfigProvider=o,exports.FrakIFrameClientContext=s,exports.FrakIFrameClientProvider=c,exports.useDisplayModal=d,exports.useDisplaySharingPage=f,exports.useFrakClient=l,exports.useFrakConfig=p,exports.useGetMerchantInformation=m,exports.useGetMergeToken=h,exports.useGetUserReferralStatus=g,exports.useOpenSso=_,exports.usePrepareSso=v,exports.usePrepareSsoUrl=y,exports.useReferralInteraction=u,exports.useSendTransactionAction=b,exports.useSetupReferral=x,exports.useSiweAuthenticate=S,exports.useWalletStatus=C;