Skip to content

Instantly share code, notes, and snippets.

@zettacristiano
Forked from amcdnl/angular-offline.js
Created November 8, 2017 18:10
Show Gist options
  • Save zettacristiano/0c0531b0827c238734406c8751fdd73d to your computer and use it in GitHub Desktop.
Save zettacristiano/0c0531b0827c238734406c8751fdd73d to your computer and use it in GitHub Desktop.
// Usage:
// OfflineListener.init(true);
define(['angular', 'core'], function(angular){
// Some concepts from: https://github.com/HubSpot/offline
var module = angular.module('utils.offline', []);
module.service('OfflineListener', function ($rootScope, $window, $alert) {
var offlineAlert;
var hookup = function(){
$rootScope.$on('offline', function(){
// $alert is Angular-Strap component
offlineAlert = $alert({
title: 'Internet connection unstable',
type: 'danger',
dissmissable: false,
duration: false
});
}, true);
$rootScope.$on('online', function(){
if(!offlineAlert) return;
offlineAlert.hide();
offlineAlert = false;
$alert({
title: 'Internet connection re-established',
type: 'info',
dissmissable: true,
duration: 10
});
}, true);
};
var init = function(hookupAlert){
$window.addEventListener("offline", function () {
$rootScope.$emit('offline');
}, false);
$window.addEventListener("online", function () {
$rootScope.$emit('online');
});
if(hookupAlert){
hookup();
}
};
return {
init: init
};
});
return module;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment