Commit 8fe00953 authored by tom goriunov's avatar tom goriunov Committed by GitHub

bugfix: web3modal opening delay (#1008)

fix web3modal opening delay
parent c01be7dc
...@@ -8,13 +8,16 @@ import AddressIcon from 'ui/shared/address/AddressIcon'; ...@@ -8,13 +8,16 @@ import AddressIcon from 'ui/shared/address/AddressIcon';
import AddressLink from 'ui/shared/address/AddressLink'; import AddressLink from 'ui/shared/address/AddressLink';
const ContractConnectWallet = () => { const ContractConnectWallet = () => {
const { open } = useWeb3Modal(); const { open, isOpen } = useWeb3Modal();
const { address, isDisconnected } = useAccount(); const { address, isDisconnected } = useAccount();
const { disconnect } = useDisconnect(); const { disconnect } = useDisconnect();
const isMobile = useIsMobile(); const isMobile = useIsMobile();
const [ isModalOpening, setIsModalOpening ] = React.useState(false);
const handleConnect = React.useCallback(() => { const handleConnect = React.useCallback(async() => {
open(); setIsModalOpening(true);
await open();
setIsModalOpening(false);
}, [ open ]); }, [ open ]);
const handleDisconnect = React.useCallback(() => { const handleDisconnect = React.useCallback(() => {
...@@ -26,7 +29,16 @@ const ContractConnectWallet = () => { ...@@ -26,7 +29,16 @@ const ContractConnectWallet = () => {
return ( return (
<> <>
<span>Disconnected</span> <span>Disconnected</span>
<Button ml={ 3 } onClick={ handleConnect } size="sm" variant="outline">Connect wallet</Button> <Button
ml={ 3 }
onClick={ handleConnect }
size="sm"
variant="outline"
isLoading={ isModalOpening || isOpen }
loadingText="Connect wallet"
>
Connect wallet
</Button>
</> </>
); );
} }
......
import { useColorModeValue, useToken } from '@chakra-ui/react'; import { useColorModeValue, useToken } from '@chakra-ui/react';
import { EthereumClient, w3mConnectors, w3mProvider } from '@web3modal/ethereum'; import { jsonRpcProvider } from '@wagmi/core/providers/jsonRpc';
import { EthereumClient, w3mConnectors } from '@web3modal/ethereum';
import { Web3Modal } from '@web3modal/react'; import { Web3Modal } from '@web3modal/react';
import React from 'react'; import React from 'react';
import type { Chain } from 'wagmi'; import type { Chain } from 'wagmi';
...@@ -41,7 +42,11 @@ const getConfig = () => { ...@@ -41,7 +42,11 @@ const getConfig = () => {
const chains = [ currentChain ]; const chains = [ currentChain ];
const { publicClient } = configureChains(chains, [ const { publicClient } = configureChains(chains, [
w3mProvider({ projectId: appConfig.walletConnect.projectId || '' }), jsonRpcProvider({
rpc: () => ({
http: appConfig.network.rpcUrl || '',
}),
}),
]); ]);
const wagmiConfig = createConfig({ const wagmiConfig = createConfig({
autoConnect: true, autoConnect: true,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment