import { register as registerServiceWorker } from "../serviceWorker"; import { EVENT } from "../constants"; // On Apple mobile devices add the proprietary app icon and splashscreen markup. // No one should have to do this manually, and eventually this annoyance will // go away once https://bugs.webkit.org/show_bug.cgi?id=183937 is fixed. if ( /\b(iPad|iPhone|iPod)\b/.test(navigator.userAgent) && !matchMedia("(display-mode: standalone)").matches ) { import(/* webpackChunkName: "pwacompat" */ "pwacompat"); } registerServiceWorker({ onUpdate: (registration) => { const waitingServiceWorker = registration.waiting; if (waitingServiceWorker) { waitingServiceWorker.addEventListener( EVENT.STATE_CHANGE, (event: Event) => { const target = event.target as ServiceWorker; const state = target.state as ServiceWorkerState; if (state === "activated") { window.location.reload(); } }, ); waitingServiceWorker.postMessage({ type: "SKIP_WAITING" }); } }, });