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