@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-B14fp9oC.js"),t=require("./internal-context-NWsAL807.js");require("./paths-DizMb-lU.js"),require("ofetch");exports.useLoginToMiniApp=()=>{let{client:i,setAuthenticated:a,setUser:n}=t.usePrivyInternal();return{initLoginToMiniApp:e.useCallback((async()=>{let e=new r.FarcasterFramesFlow;if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");return i.startAuthFlow(e),await e.init()}),[i]),loginToMiniApp:e.useCallback((async({message:e,signature:s})=>{if(!i)throw new t.PrivyClientError("Must initialize Privy client first.");if(!(i.authFlow instanceof r.FarcasterFramesFlow))throw new t.PrivyClientError("Must initialize Farcaster Mini App 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.");i.authFlow.setAuthData({message:e,signature:s,fid:l});let{user:u}=await i.authenticate();return u&&(n(u),a(!0)),u}),[i,n,a])}};