UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 2.22 kB
"use strict";var e=require("react"),t=require("./SignRequestScreen-CN1o6lNS.js"),n=require("./privy-context-C4y2c3Ko.js"),l=require("styled-components"),r=require("./internal-context-DNWjSiYq.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 n=t.useAppConfig(),{wallets:l}=t.useWallets(),{connectors:s}=r.usePrivyInternal(),i=e.useMemo((()=>s.filter(t.isSolanaWalletConnector).flatMap((e=>e.wallets))),[s]),o=t.useActiveWalletStore((e=>e.wallet));e.useEffect((()=>{if(!n.id)return;let e=t.s.get(t.toActiveWalletKey(n.id));t.useActiveWalletStore.setState({wallet:e})}),[n.id]);let u=e.useMemo((()=>{if(!o)return;let[,e]=o.split(":");return l.find((t=>t.address===e))||i.find((t=>t.address===e))}),[o,l,i]),a=e.useMemo((()=>u?"ethereum"===u.type?u.chainId:"solana":void 0),[u]);return{connect:async e=>{e?.reset&&(t.s.del(t.toActiveWalletKey(n.id)),t.useActiveWalletStore.setState({wallet:void 0}));let{wallet:r}=await t.open();if(!r)return{};let[,s]=r.split(":"),o=l.find((e=>e.address===s));if(o)return{wallet:o,network:o.chainId};let u=i.find((e=>e.address===s));return u?{wallet:u,network:"solana"}:{}},setActiveWallet:e.useCallback((e=>{t.setActiveWallet({address:e.address,client:e.walletClientType,appId:n.id})}),[n.id]),wallet:u,network:a}},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}};