vega-frontend-monorepo/apps/trading/components/vega-wallet-connect-button/index.tsx
Matthew Russell 8e9c2e4080
Feat/105 Web3 Setup (#119)
* add deposit page

* add web3 provider using web3-react package

* add env setup, add guard for incorrect chain id

* add lib for web3-provider

* make wallet and ethereum connect dialogs look more consistent

* add setup tests file for jest-dom

* remove chain id config and just use appChainId prop, add disconnect button to invalid chainId state

* remove .env file for now, will complete as own ticket

* switch handling of connect dialog state to the consuming app

* rename web3-provider package to just web3

* envs for each environment so we can specify chainId

* remove fallback to testnet for apollo client creation

* make web3container enforce connection before rendering childen

* move infura id to env var
2022-03-25 00:44:10 -07:00

30 lines
663 B
TypeScript

import { useVegaWallet } from '@vegaprotocol/wallet';
interface VegaWalletButtonProps {
setConnectDialog: (isOpen: boolean) => void;
}
export const VegaWalletButton = ({
setConnectDialog,
}: VegaWalletButtonProps) => {
const { disconnect, keypairs } = useVegaWallet();
const isConnected = keypairs !== null;
const handleClick = () => {
if (isConnected) {
disconnect();
} else {
setConnectDialog(true);
}
};
return (
<button
onClick={handleClick}
className="ml-auto inline-block text-ui sm:text-body-large"
>
{isConnected ? 'Disconnect Vega wallet' : 'Connect Vega wallet'}
</button>
);
};