8e9c2e4080
* 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
33 lines
953 B
TypeScript
33 lines
953 B
TypeScript
import { useVegaWallet, WALLET_CONFIG } from '@vegaprotocol/wallet';
|
|
import { useEffect } from 'react';
|
|
import { LocalStorage } from '@vegaprotocol/react-helpers';
|
|
import { Connectors } from '../lib/vega-connectors';
|
|
|
|
export function useEagerConnect() {
|
|
const { connect } = useVegaWallet();
|
|
|
|
useEffect(() => {
|
|
const cfg = LocalStorage.getItem(WALLET_CONFIG);
|
|
const cfgObj = JSON.parse(cfg);
|
|
|
|
// No stored config, user has never connected or manually cleared storage
|
|
if (!cfgObj || !cfgObj.connector) {
|
|
return;
|
|
}
|
|
|
|
// Use the connector string in local storage to find the right connector to auto
|
|
// connect to
|
|
const connector = Connectors[cfgObj.connector];
|
|
|
|
// Developer hasn't provided this connector
|
|
if (!connector) {
|
|
console.warn(
|
|
`Can't eager connect, connector: ${cfgObj.connector} not found`
|
|
);
|
|
return;
|
|
}
|
|
|
|
connect(Connectors[cfgObj.connector]);
|
|
}, [connect]);
|
|
}
|