UNPKG

1.24 kBPlain TextView Raw
1/**
2@license
3Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
4This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7Code distributed by Google as part of the polymer project is also
8subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9*/
10
11/**
12 Utility method that calls a callback whenever the network connectivity of the app changes.
13 The callback should take a boolean parameter (with `true` meaning
14 the network is offline, and `false` meaning online)
15
16 Example:
17
18 import { installOfflineWatcher } from 'pwa-helpers/network.js';
19
20 installOfflineWatcher((offline) => {
21 console.log('You are ' + offline ? ' offline' : 'online');
22 });
23*/
24export const installOfflineWatcher = (offlineUpdatedCallback: (isOffline: boolean) => void) => {
25 window.addEventListener('online', () => offlineUpdatedCallback(false));
26 window.addEventListener('offline', () => offlineUpdatedCallback(true));
27
28 offlineUpdatedCallback(navigator.onLine === false);
29};