12345678910111213141516171819202122232425262728293031 |
- 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" });
- }
- },
- });
|