UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 1.97 kB
import{useContext as e,useEffect as t,useMemo as l,useCallback as a}from"react";import{u as s,ak as n,e as r,k as i,M as o}from"./privy-provider-B2wDQG1e.mjs";import{P as d}from"./use-sign-with-user-signer-CEyk1z8w.mjs";import{u as c}from"./internal-context-Bxhby7Hv.mjs";import{create as u}from"zustand";function w(t){let{login:l}=e(d);return s("login",t),{login:l}}function p(t){let{connectWallet:l}=e(d);return s("connectWallet",t),{connectWallet:l}}const f=e=>{s("fundWallet",e);let{fundWallet:t}=c();return{fundWallet:t}},m=u((()=>({isModalOpen:!1,resolvers:null})));let v=u((()=>({})));const S=(e,t)=>v((l=>l[e]?.[t])),g=(e,t,l)=>{v.setState((a=>({[e]:{...a[e],[t]:l}})))},W=async()=>{let e,t,l=new Promise(((l,a)=>{e=l,t=a}));return v.setState({}),m.setState({isModalOpen:!0,resolvers:{resolve:e,reject:t}}),await l},y=()=>{let e=m.getState().resolvers;e||console.warn("useActiveWalletStore: Called close while modal was not open"),m.setState({isModalOpen:!1}),e?.resolve({wallet:m.getState().wallet})},h=({address:e,client:t,appId:l})=>{let a=`${t}:${e}`;l&&n.put(M(l),a),m.setState({wallet:a})},k=()=>m((e=>e.isModalOpen)),M=e=>`privy:${e}:active-wallet-connection`,j=()=>{let e=r(),{wallets:s}=i(),{wallets:d}=o(),c=m((e=>e.wallet));t((()=>{if(!e.id)return;let t=n.get(M(e.id));m.setState({wallet:t})}),[e.id]);let u=l((()=>{if(!c)return;let[,e]=c.split(":");return s.find((t=>t.address===e))||d.find((t=>t.address===e))}),[c,s,d]),w=l((()=>u?"ethereum"===u.type?u.chainId:"solana":void 0),[u]);return{connect:async t=>{t?.reset&&(n.del(M(e.id)),m.setState({wallet:void 0}));let{wallet:l}=await W();if(!l)return{};let[,a]=l.split(":"),r=s.find((e=>e.address===a));if(r)return{wallet:r,network:r.chainId};let i=d.find((e=>e.address===a));return i?{wallet:i,network:"solana"}:{}},setActiveWallet:a((t=>{h({address:t.address,client:t.walletClientType,appId:e.id})}),[e.id]),wallet:u,network:w}};export{p as a,f as b,j as c,S as d,g as e,k as f,y as g,h as s,w as u};