@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 1.01 kB
JavaScript
;var e=require("react"),t=require("./frame-B2orQ_lK.js"),r=require("./internal-context-CeWKmK5u.js");require("ofetch");exports.useLoginToMiniApp=()=>{let{client:i,setAuthenticated:a,setUser:n}=r.usePrivyInternal();return{initLoginToMiniApp:e.useCallback((async()=>{let e=new t.FarcasterFramesFlow;if(!i)throw new r.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 r.PrivyClientError("Must initialize Privy client first.");if(!(i.authFlow instanceof t.FarcasterFramesFlow))throw new r.PrivyClientError("Must initialize Farcaster Mini App flow first.");let l=(e=>{let t=e.match(/farcaster:\/\/fid\/(\d+)/);return t&&t[1]?parseInt(t[1],10):null})(e);if(!l)throw new r.PrivyClientError("Invalid message format; could not parse Farcaster ID.");i.authFlow.setAuthData({message:e,signature:s,fid:l});let{user:o}=await i.authenticate();return o&&(n(o),a(!0)),o}),[i,n,a])}};