diff --git a/packages/ethers/src/client.ts b/packages/ethers/src/client.ts index c5b35597ef..5b228cbc4a 100644 --- a/packages/ethers/src/client.ts +++ b/packages/ethers/src/client.ts @@ -315,7 +315,6 @@ export class Web3Modal extends Web3ModalScaffold { if (ethersConfig.email) { this.syncEmailConnector(w3mOptions.projectId) - this.listenEmailConnector() } if (ethersConfig.injected) { @@ -589,6 +588,7 @@ export class Web3Modal extends Web3ModalScaffold { if (this.emailProvider) { const { address, chainId } = await this.emailProvider.connect() if (address && chainId) { + super.setLoading(false) EthersStoreUtil.setChainId(chainId) EthersStoreUtil.setProviderType(ConstantsUtil.EMAIL_CONNECTOR_ID as 'w3mEmail') EthersStoreUtil.setProvider(this.emailProvider as unknown as CombinedProvider) @@ -752,6 +752,9 @@ export class Web3Modal extends Web3ModalScaffold { this.emailProvider.onRpcResponse(() => { super.close() }) + this.emailProvider.onIsConnected(() => { + super.setLoading(false) + }) } } @@ -1017,27 +1020,22 @@ export class Web3Modal extends Web3ModalScaffold { private async syncEmailConnector(projectId: string) { if (typeof window !== 'undefined') { this.emailProvider = new W3mFrameProvider(projectId) + + this.addConnector({ + id: ConstantsUtil.EMAIL_CONNECTOR_ID, + type: 'EMAIL', + name: 'Email', + provider: this.emailProvider + }) + super.setLoading(true) + const isLoginEmailUsed = this.emailProvider.getLoginEmailUsed() + super.setLoading(isLoginEmailUsed) const isConnected = await this.emailProvider.isConnected() if (isConnected) { this.setEmailProvider() } } - - this.addConnector({ - id: ConstantsUtil.EMAIL_CONNECTOR_ID, - type: 'EMAIL', - name: 'Email', - provider: this.emailProvider - }) - } - - private listenEmailConnector() { - if (this.emailProvider) { - this.emailProvider.onIsConnected(() => { - super.setLoading(false) - }) - } } private eip6963EventHandler(event: CustomEventInit) {