self.addEventListener("install", event => {
  self.skipWaiting();
  event.waitUntil(
    caches.open("dht-cache-v1").then(cache => {
      return cache.addAll([
        "/",
        "/index.html",
        "/manifest.json"
      ]);
    })
  );
});

self.addEventListener("fetch", event => {
  event.respondWith(
    caches.match(event.request).then(response => {
      return response || fetch(event.request);
    })
  );
});

/* PUSH NOTIFICATIONS */
self.addEventListener("push", event => {
  const data = event.data ? event.data.json() : {};

  self.registration.showNotification(
    data.title || "Digital Horizon Treasures",
    {
      body: data.body || "We’re live on TikTok now!",
      icon: "/icons/icon-192.png",
      badge: "/icons/icon-192.png",
      data: {
        url: data.url || "/"
      }
    }
  );
});

self.addEventListener("notificationclick", event => {
  event.notification.close();
  event.waitUntil(
    clients.openWindow(event.notification.data.url)
  );
});
self.addEventListener("activate", event => {
  event.waitUntil(
    caches.keys().then(keys =>
      Promise.all(
        keys.filter(key => key !== "dht-cache-v1")
            .map(key => caches.delete(key))
      )
    )
  );
});

