@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 1.04 kB
JavaScript
;var e=require("react"),r=require("./frame-B38H7ILa.js"),t=require("./paths-CdRs2pll.js"),i=require("./internal-context-CrTqNb_c.js");require("ofetch");exports.useLoginToFrame=()=>{let{client:a,setAuthenticated:s,setUser:n}=i.usePrivyInternal();return{initLoginToFrame:e.useCallback((async()=>{let e=new r.FarcasterFramesFlow;if(!a)throw new t.PrivyClientError("Must initialize Privy client first.");return a.startAuthFlow(e),await e.init()}),[a]),loginToFrame:e.useCallback((async({message:e,signature:i})=>{if(!a)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(a.authFlow instanceof r.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster frame flow first.");let l=(e=>{let r=e.match(/farcaster:\/\/fid\/(\d+)/);return r&&r[1]?parseInt(r[1],10):null})(e);if(!l)throw new t.PrivyClientError("Invalid message format; could not parse Farcaster ID.");a.authFlow.setAuthData({message:e,signature:i,fid:l});let{user:u}=await a.authenticate();return u&&(n(u),s(!0)),u}),[a,n,s])}};