@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 926 B
JavaScript
import{useCallback as t}from"react";import{F as i}from"./frame-CwE9r3cT.mjs";import{u as e,a as r}from"./internal-context-e-Eni5bG.mjs";import"./paths-3HW55qZg.mjs";import"ofetch";const a=()=>{let{client:a,setAuthenticated:n,setUser:s}=e();return{initLoginToMiniApp:t((async()=>{let t=new i;if(!a)throw new r("Must initialize Privy client first.");return a.startAuthFlow(t),await t.init()}),[a]),loginToMiniApp:t((async({message:t,signature:e})=>{if(!a)throw new r("Must initialize Privy client first.");if(!(a.authFlow instanceof i))throw new r("Must initialize Farcaster Mini App flow first.");let o=(t=>{let i=t.match(/farcaster:\/\/fid\/(\d+)/);return i&&i[1]?parseInt(i[1],10):null})(t);if(!o)throw new r("Invalid message format; could not parse Farcaster ID.");a.authFlow.setAuthData({message:t,signature:e,fid:o});let{user:l}=await a.authenticate();return l&&(s(l),n(!0)),l}),[a,s,n])}};export{a as useLoginToMiniApp};