fix(governance): useWeb3ConnectStore instead of app state for eth connect d… (#3750)
This commit is contained in:
parent
c4cec47b0b
commit
1c626aeeb2
@ -1,23 +1,14 @@
|
|||||||
import { Button } from '@vegaprotocol/ui-toolkit';
|
import { Button } from '@vegaprotocol/ui-toolkit';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import { useWeb3ConnectStore } from '@vegaprotocol/web3';
|
||||||
import {
|
|
||||||
AppStateActionType,
|
|
||||||
useAppState,
|
|
||||||
} from '../../contexts/app-state/app-state-context';
|
|
||||||
|
|
||||||
export const EthConnectPrompt = () => {
|
export const EthConnectPrompt = () => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { appDispatch } = useAppState();
|
const { open } = useWeb3ConnectStore();
|
||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
variant="default"
|
variant="default"
|
||||||
onClick={() =>
|
onClick={open}
|
||||||
appDispatch({
|
|
||||||
type: AppStateActionType.SET_ETH_WALLET_OVERLAY,
|
|
||||||
isOpen: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
fill={true}
|
fill={true}
|
||||||
data-testid="connect-to-eth-btn"
|
data-testid="connect-to-eth-btn"
|
||||||
>
|
>
|
||||||
|
@ -2,10 +2,7 @@ import { Button } from '@vegaprotocol/ui-toolkit';
|
|||||||
import { useWeb3React } from '@web3-react/core';
|
import { useWeb3React } from '@web3-react/core';
|
||||||
import type { ReactElement } from 'react';
|
import type { ReactElement } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import {
|
import { useWeb3ConnectStore } from '@vegaprotocol/web3';
|
||||||
AppStateActionType,
|
|
||||||
useAppState,
|
|
||||||
} from '../../contexts/app-state/app-state-context';
|
|
||||||
|
|
||||||
export const EthWalletContainer = ({
|
export const EthWalletContainer = ({
|
||||||
children,
|
children,
|
||||||
@ -14,21 +11,12 @@ export const EthWalletContainer = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const { account } = useWeb3React();
|
const { account } = useWeb3React();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { appDispatch } = useAppState();
|
const { open } = useWeb3ConnectStore();
|
||||||
|
|
||||||
if (!account) {
|
if (!account) {
|
||||||
return (
|
return (
|
||||||
<div className="w-full text-center">
|
<div className="w-full text-center">
|
||||||
<Button
|
<Button onClick={open}>{t('connectEthWallet')}</Button>
|
||||||
onClick={() =>
|
|
||||||
appDispatch({
|
|
||||||
type: AppStateActionType.SET_ETH_WALLET_OVERLAY,
|
|
||||||
isOpen: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{t('connectEthWallet')}
|
|
||||||
</Button>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,11 @@ import {
|
|||||||
import { Loader } from '@vegaprotocol/ui-toolkit';
|
import { Loader } from '@vegaprotocol/ui-toolkit';
|
||||||
import colors from 'tailwindcss/colors';
|
import colors from 'tailwindcss/colors';
|
||||||
import { useBalances } from '../../lib/balances/balances-store';
|
import { useBalances } from '../../lib/balances/balances-store';
|
||||||
import { useEthereumConfig, useWeb3Disconnect } from '@vegaprotocol/web3';
|
import {
|
||||||
|
useEthereumConfig,
|
||||||
|
useWeb3ConnectStore,
|
||||||
|
useWeb3Disconnect,
|
||||||
|
} from '@vegaprotocol/web3';
|
||||||
import { getChainName } from '@vegaprotocol/web3';
|
import { getChainName } from '@vegaprotocol/web3';
|
||||||
|
|
||||||
const removeLeadingAddressSymbol = (key: string) => {
|
const removeLeadingAddressSymbol = (key: string) => {
|
||||||
@ -189,6 +193,7 @@ export const EthWallet = () => {
|
|||||||
const pendingTxs = usePendingTransactions();
|
const pendingTxs = usePendingTransactions();
|
||||||
const disconnect = useWeb3Disconnect(connector);
|
const disconnect = useWeb3Disconnect(connector);
|
||||||
const { config } = useEthereumConfig();
|
const { config } = useEthereumConfig();
|
||||||
|
const { open } = useWeb3ConnectStore();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<WalletCard>
|
<WalletCard>
|
||||||
@ -233,12 +238,7 @@ export const EthWallet = () => {
|
|||||||
) : (
|
) : (
|
||||||
<Button
|
<Button
|
||||||
fill={true}
|
fill={true}
|
||||||
onClick={() =>
|
onClick={open}
|
||||||
appDispatch({
|
|
||||||
type: AppStateActionType.SET_ETH_WALLET_OVERLAY,
|
|
||||||
isOpen: true,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
data-testid="connect-to-eth-wallet-button"
|
data-testid="connect-to-eth-wallet-button"
|
||||||
>
|
>
|
||||||
{t('connectEthWalletToAssociate')}
|
{t('connectEthWalletToAssociate')}
|
||||||
|
@ -25,20 +25,26 @@ export function Web3Connector({
|
|||||||
connectors,
|
connectors,
|
||||||
chainId,
|
chainId,
|
||||||
}: Web3ConnectorProps) {
|
}: Web3ConnectorProps) {
|
||||||
const { appState, appDispatch } = useAppState();
|
const { open, close, isOpen } = useWeb3ConnectStore();
|
||||||
|
|
||||||
const setDialogOpen = useCallback(
|
const setDialogOpen = useCallback(
|
||||||
(isOpen: boolean) => {
|
(isOpen: boolean) => {
|
||||||
appDispatch({ type: AppStateActionType.SET_ETH_WALLET_OVERLAY, isOpen });
|
if (isOpen) {
|
||||||
|
open();
|
||||||
|
} else {
|
||||||
|
close();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
[appDispatch]
|
[open, close]
|
||||||
);
|
);
|
||||||
|
|
||||||
const appChainId = Number(chainId);
|
const appChainId = Number(chainId);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Web3Content appChainId={appChainId}>{children}</Web3Content>
|
<Web3Content appChainId={appChainId}>{children}</Web3Content>
|
||||||
<Web3ConnectDialog
|
<Web3ConnectDialog
|
||||||
connectors={connectors}
|
connectors={connectors}
|
||||||
dialogOpen={appState.ethConnectOverlay}
|
dialogOpen={isOpen}
|
||||||
setDialogOpen={setDialogOpen}
|
setDialogOpen={setDialogOpen}
|
||||||
desiredChainId={appChainId}
|
desiredChainId={appChainId}
|
||||||
/>
|
/>
|
||||||
|
@ -34,9 +34,6 @@ export interface AppState {
|
|||||||
/** Whether or not the manage VEGA wallet overlay is open */
|
/** Whether or not the manage VEGA wallet overlay is open */
|
||||||
vegaWalletManageOverlay: boolean;
|
vegaWalletManageOverlay: boolean;
|
||||||
|
|
||||||
/** Whether or not the connect to Ethereum wallet overlay is open */
|
|
||||||
ethConnectOverlay: boolean;
|
|
||||||
|
|
||||||
/** Whether or not the transaction modal is open */
|
/** Whether or not the transaction modal is open */
|
||||||
transactionOverlay: boolean;
|
transactionOverlay: boolean;
|
||||||
/**
|
/**
|
||||||
@ -57,7 +54,6 @@ export enum AppStateActionType {
|
|||||||
REFRESH_BALANCES,
|
REFRESH_BALANCES,
|
||||||
SET_VEGA_WALLET_OVERLAY,
|
SET_VEGA_WALLET_OVERLAY,
|
||||||
SET_VEGA_WALLET_MANAGE_OVERLAY,
|
SET_VEGA_WALLET_MANAGE_OVERLAY,
|
||||||
SET_ETH_WALLET_OVERLAY,
|
|
||||||
SET_DRAWER,
|
SET_DRAWER,
|
||||||
REFRESH_ASSOCIATED_BALANCES,
|
REFRESH_ASSOCIATED_BALANCES,
|
||||||
SET_ASSOCIATION_BREAKDOWN,
|
SET_ASSOCIATION_BREAKDOWN,
|
||||||
@ -81,10 +77,6 @@ export type AppStateAction =
|
|||||||
type: AppStateActionType.SET_VEGA_WALLET_MANAGE_OVERLAY;
|
type: AppStateActionType.SET_VEGA_WALLET_MANAGE_OVERLAY;
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
}
|
}
|
||||||
| {
|
|
||||||
type: AppStateActionType.SET_ETH_WALLET_OVERLAY;
|
|
||||||
isOpen: boolean;
|
|
||||||
}
|
|
||||||
| {
|
| {
|
||||||
type: AppStateActionType.SET_DRAWER;
|
type: AppStateActionType.SET_DRAWER;
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
|
@ -16,7 +16,6 @@ const initialAppState: AppState = {
|
|||||||
totalSupply: new BigNumber(0),
|
totalSupply: new BigNumber(0),
|
||||||
vegaWalletOverlay: false,
|
vegaWalletOverlay: false,
|
||||||
vegaWalletManageOverlay: false,
|
vegaWalletManageOverlay: false,
|
||||||
ethConnectOverlay: false,
|
|
||||||
transactionOverlay: false,
|
transactionOverlay: false,
|
||||||
bannerMessage: '',
|
bannerMessage: '',
|
||||||
disconnectNotice: false,
|
disconnectNotice: false,
|
||||||
@ -45,12 +44,6 @@ function appStateReducer(state: AppState, action: AppStateAction): AppState {
|
|||||||
vegaWalletOverlay: action.isOpen ? false : state.vegaWalletOverlay,
|
vegaWalletOverlay: action.isOpen ? false : state.vegaWalletOverlay,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
case AppStateActionType.SET_ETH_WALLET_OVERLAY: {
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
ethConnectOverlay: action.isOpen,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
case AppStateActionType.SET_DRAWER: {
|
case AppStateActionType.SET_DRAWER: {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
@ -53,7 +53,6 @@ const mockAppState: AppState = {
|
|||||||
totalSupply: new BigNumber(65000000),
|
totalSupply: new BigNumber(65000000),
|
||||||
vegaWalletOverlay: false,
|
vegaWalletOverlay: false,
|
||||||
vegaWalletManageOverlay: false,
|
vegaWalletManageOverlay: false,
|
||||||
ethConnectOverlay: false,
|
|
||||||
transactionOverlay: false,
|
transactionOverlay: false,
|
||||||
bannerMessage: '',
|
bannerMessage: '',
|
||||||
disconnectNotice: false,
|
disconnectNotice: false,
|
||||||
|
@ -16,7 +16,6 @@ const mockAppState: AppState = {
|
|||||||
totalSupply: mockTotalSupply,
|
totalSupply: mockTotalSupply,
|
||||||
vegaWalletOverlay: false,
|
vegaWalletOverlay: false,
|
||||||
vegaWalletManageOverlay: false,
|
vegaWalletManageOverlay: false,
|
||||||
ethConnectOverlay: false,
|
|
||||||
transactionOverlay: false,
|
transactionOverlay: false,
|
||||||
bannerMessage: '',
|
bannerMessage: '',
|
||||||
disconnectNotice: false,
|
disconnectNotice: false,
|
||||||
|
Loading…
Reference in New Issue
Block a user