UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 1 kB
"use strict";var e=require("react"),r=require("./frame-BE5iw8D5.js"),t=require("./internal-context-GxD_jR-e.js");require("ofetch");exports.useLoginToFrame=()=>{let{client:i,setAuthenticated:a,setUser:n}=t.usePrivyInternal();return{initLoginToFrame: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]),loginToFrame: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 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.");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])}};