Tengo un componente de reacción que hace esto una vez que está montado:
const internetConnectivity = navigator.onLine; Así es como lo probé: monto el componente mientras tengo wi-fi, luego vuelvo, apago mi wi-fi y vuelvo a montar el componente. La funcionalidad funciona bien en Chrome y Firefox porque internetConnectivity es true cuando el wi-fi está encendido y false cuando está apagado.
Desafortunadamente, en Edge y Opera internetConnectivity es true incluso después de haber apagado el wi-fi. Verifiqué que navigaor.onLine es compatible con los 4 navegadores, por lo que hay algo más.