Skip to content

Commit

Permalink
fix ethers loading state issue (#1696)
Browse files Browse the repository at this point in the history
  • Loading branch information
svenvoskamp authored Jan 3, 2024
1 parent 284ff45 commit 91c51e0
Showing 1 changed file with 14 additions and 16 deletions.
30 changes: 14 additions & 16 deletions packages/ethers/src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,6 @@ export class Web3Modal extends Web3ModalScaffold {

if (ethersConfig.email) {
this.syncEmailConnector(w3mOptions.projectId)
this.listenEmailConnector()
}

if (ethersConfig.injected) {
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -752,6 +752,9 @@ export class Web3Modal extends Web3ModalScaffold {
this.emailProvider.onRpcResponse(() => {
super.close()
})
this.emailProvider.onIsConnected(() => {
super.setLoading(false)
})
}
}

Expand Down Expand Up @@ -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<Wallet>) {
Expand Down

3 comments on commit 91c51e0

@vercel
Copy link

@vercel vercel bot commented on 91c51e0 Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vercel
Copy link

@vercel vercel bot commented on 91c51e0 Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vercel
Copy link

@vercel vercel bot commented on 91c51e0 Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.