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í
useEffectzař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
Offlinenapište funkcihandleOffline, která bude reagovat na událost odpojení od internetu. Nastavte v ní stavisOnlinenafalse. - Při mountu komponenty zapojte tuto funkci jako posluchač události
offlinena 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
onlinea 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.