Estoy usando window.confirm() en useEffect de mi aplicación React de la siguiente manera:
useEffect(() => { const connectorId = window.localStorage.getItem("connectorId"); if (isAuthenticated && !isWeb3Enabled && !isWeb3EnableLoading){ enableWeb3({ provider: connectorId });} if (chainId != '0xa86a') { if (window.confirm(`You're on the wrong network! Click OK to switch to Avalanche C-chain!`)) { switchNetwork("0xa86a") } else { alert("You're on the wrong network & will result in loss of funds due to failed transaction! Switch to Avalance C-chain manually in your Metamask Wallet!"); } } }, [isAuthenticated, isWeb3Enabled, chain]); Todo funciona bien si el usuario está en la misma pestaña cuando se activa window.confirm . Sin embargo, si el usuario está en una pestaña diferente cuando se activa window.confirm, al volver a la pestaña de la aplicación, encuentro que el primer mensaje nunca aparece. Procede directamente a Cancelar y se ejecuta la else statement . ¿Cómo evito que esto suceda?
(Nota: para aquellos que no conocen web3, el efecto de uso se desencadena por un cambio en la extensión del navegador Metamask. Por lo tanto, es posible que el usuario no esté necesariamente en la pestaña de la aplicación de reacción cuando se activa).