Sha256: 7786f1e42bf238dfab90fe61f6ed3be792ff3ef7078b2494294a85cda8988868

Contents?: true

Size: 1.19 KB

Versions: 6

Compression:

Stored size: 1.19 KB

Contents

---
layout: compress
permalink: '/app.js'
---

const $notification = $('#notification');
const $btnRefresh = $('#notification .toast-body>button');

if ('serviceWorker' in navigator) {
  /* Registering Service Worker */
  navigator.serviceWorker.register('{{ "/sw.js" | relative_url }}')
    .then(registration => {

      /* in case the user ignores the notification */
      if (registration.waiting) {
        $notification.toast('show');
      }

      registration.addEventListener('updatefound', () => {
        registration.installing.addEventListener('statechange', () => {
          if (registration.waiting) {
            if (navigator.serviceWorker.controller) {
              $notification.toast('show');
            }
          }
        });
      });

      $btnRefresh.click(() => {
        if (registration.waiting) {
          registration.waiting.postMessage('SKIP_WAITING');
        }
        $notification.toast('hide');
      });
    }
  );

  let refreshing = false;

  /* Detect controller change and refresh all the opened tabs */
  navigator.serviceWorker.addEventListener('controllerchange', () => {
    if (!refreshing) {
      window.location.reload();
      refreshing = true;
    }
  });
}

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
jekyll-theme-chirpy-clarkezone-5.3.2 assets/js/pwa/app.js
jekyll-theme-chirpy-5.3.0 assets/js/pwa/app.js
jekyll-theme-abd3lraouf-5.2.9 assets/js/pwa/app.js
jekyll-theme-abd3lraouf-5.2.8 assets/js/pwa/app.js
jekyll-theme-abd3lraouf-5.2.7 assets/js/pwa/app.js
jekyll-theme-chirpy-5.2.1 assets/js/pwa/app.js