UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 2.23 kB
"use strict";var e=require("react"),t=require("./events-context-7-Gs8c_9.js"),n=require("./EmbeddedWalletConnectingScreen-JRafXI8d.js"),l=require("styled-components"),r=require("./internal-context-CeWKmK5u.js");const s=/*#__PURE__*/l.styled.div.withConfig({displayName:"Column",componentId:"sc-cfc52180-0"})(["display:flex;flex-direction:column;"]);exports.Column=s,exports.useActiveWallet=()=>{let l=t.useAppConfig(),{wallets:s}=n.useWallets(),{connectors:o}=r.usePrivyInternal(),i=e.useMemo((()=>o.filter(n.isSolanaWalletConnector).flatMap((e=>e.wallets))),[o]),u=n.useActiveWalletStore((e=>e.wallet));e.useEffect((()=>{if(!l.id)return;let e=n.p.get(n.toActiveWalletKey(l.id));n.useActiveWalletStore.setState({wallet:e})}),[l.id]);let a=e.useMemo((()=>{if(!u)return;let[,e]=u.split(":");return s.find((t=>t.address===e))||i.find((t=>t.address===e))}),[u,s,i]),c=e.useMemo((()=>a?"ethereum"===a.type?a.chainId:"solana":void 0),[a]);return{connect:async e=>{e?.reset&&(n.p.del(n.toActiveWalletKey(l.id)),n.useActiveWalletStore.setState({wallet:void 0}));let{wallet:t}=await n.open();if(!t)return{};let[,r]=t.split(":"),o=s.find((e=>e.address===r));if(o)return{wallet:o,network:o.chainId};let u=i.find((e=>e.address===r));return u?{wallet:u,network:"solana"}:{}},setActiveWallet:e.useCallback((e=>{n.setActiveWallet({address:e.address,client:e.walletClientType,appId:l.id})}),[l.id]),wallet:a,network:c}},exports.useConnectWallet=function(l){let{connectWallet:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("connectWallet",l),{connectWallet:r}},exports.useElementHeight=t=>{let[n,l]=e.useState("auto");return e.useEffect((()=>{let e=new ResizeObserver((e=>{l(e[0]?.contentRect.height??"auto")}));return t.current&&e.observe(t.current),()=>{t.current&&e.unobserve(t.current)}}),[t.current]),n},exports.useFundWallet=e=>{t.usePrivyEventSubscription("fundWallet",e);let{fundWallet:n}=r.usePrivyInternal();return{fundWallet:({address:e,options:t})=>n(e,t)}},exports.useLogin=function(l){let{login:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("login",l),{login:r}},exports.useLogout=function(l){let{logout:r}=e.useContext(n.PrivyContext);return t.usePrivyEventSubscription("logout",l),{logout:r}};