UNPKG

@web3-onboard/react

Version:

A collection of React hooks for integrating Web3-Onboard in to React and Next.js projects. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported w

34 lines (33 loc) 1.24 kB
import { useCallback, useState } from 'react'; import { useWeb3Onboard } from '../context.js'; import { useAppState } from './useAppState.js'; export const useConnectWallet = () => { const web3Onboard = useWeb3Onboard(); const { connectWallet, disconnectWallet } = web3Onboard; const wallets = useAppState('wallets'); const wallet = wallets[0] || null; const [connecting, setConnecting] = useState(false); const connect = useCallback(async (options) => { setConnecting(true); const walletState = await connectWallet(options); setConnecting(false); return walletState; }, []); const disconnect = useCallback(async ({ label }) => { setConnecting(true); const walletState = await disconnectWallet({ label }); setConnecting(false); return walletState; }, []); const updateBalances = web3Onboard.state.actions.updateBalances; const setWalletModules = web3Onboard.state.actions.setWalletModules; const setPrimaryWallet = web3Onboard.state.actions.setPrimaryWallet; return [ { wallet, connecting }, connect, disconnect, updateBalances, setWalletModules, setPrimaryWallet ]; };