mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Stop reloading dapps on network change allowing dapps to decide if it should refresh or not (#6330)
* feat: `inpageProvider.autoRefreshOnNetworkChange` to allow dapps to control if it refreshes or not * feat: check the `autoRefreshOnNetworkChange` before a refresh * fix linting error * fix: use `window.ethereum` now `web3.ethereum`
This commit is contained in:
parent
e1af6312ce
commit
2aaec1d9fb
@ -91,6 +91,10 @@ inpageProvider.enable = function ({ force } = {}) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// give the dapps control of a refresh they can toggle this off on the window.ethereum
|
||||||
|
// this will be default true so it does not break any old apps.
|
||||||
|
inpageProvider.autoRefreshOnNetworkChange = true
|
||||||
|
|
||||||
// add metamask-specific convenience methods
|
// add metamask-specific convenience methods
|
||||||
inpageProvider._metamask = new Proxy({
|
inpageProvider._metamask = new Proxy({
|
||||||
/**
|
/**
|
||||||
|
@ -20,6 +20,10 @@ function setupDappAutoReload (web3, observable) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
observable.subscribe(function (state) {
|
observable.subscribe(function (state) {
|
||||||
|
// if the auto refresh on network change is false do not
|
||||||
|
// do anything
|
||||||
|
if (!window.ethereum.autoRefreshOnNetworkChange) return
|
||||||
|
|
||||||
// if reload in progress, no need to check reload logic
|
// if reload in progress, no need to check reload logic
|
||||||
if (reloadInProgress) return
|
if (reloadInProgress) return
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user