V některých webových aplikacích se nám může hodit komponenta informující uživatele, že došlo k výpadku internetového připojení a aplikace tedy nemusí fungovat správně. Zkusíme společně takovou komponentu vytvořit.
- Udělejte si fork repozitáře se zadáním. Spusťte aplikaci a prozkoumejte zdrojový kód.
- Prohlédněte si komponentu
Offline
, která zobrazuje informaci zda jsme připojeni k internetu. Zatím komponenta nefunguje a v podstatě nic užitečného nedělá. - Pomocí správného použití
useEffect
zařiďte, aby se při každém mountu této komponenty vypsalo do konzolemounted
. Zkuste přepínat mezi stránkami Domů a Test Připojení a sledujte, kdy se vypíše zpráva do konzole. - Zařiďte podobnou věc i pro unmount komponenty. Opět přepínejte mezi stránkami a sledujte, kdy se komponenta mountuje a kdy unmountuje.
- Uvnitř komponenty
Offline
napište funkcihandleOffline
, která bude reagovat na událost odpojení od internetu. Nastavte v ní stavisOnline
nafalse
. - Při mountu komponenty zapojte tuto funkci jako posluchač události
offline
na objektuwindow
:window.addEventListener('offline', handleOffline);
- Na stránce Test připojení otevřete Developer tools → Network a přejděte do offline módu. Komponenta by měla zobrazit patřičnou zprávu.
- Podobným postupem jako výše vytvořte posluchač události
online
a zařiďte, aby se stav komponenty správně aktualizoval, pokud v developer tools přejdeme opět do online módu. - Vyzkoušejte, že vaše řešení správně funguje.