github.com/ferranbt/nomad@v0.9.3-0.20190607002617-85c449b7667c/ui/app/mixins/with-component-visibility-detection.js (about) 1 import Ember from 'ember'; 2 import Mixin from '@ember/object/mixin'; 3 import { assert } from '@ember/debug'; 4 5 export default Mixin.create({ 6 visibilityHandler() { 7 assert('visibilityHandler needs to be overridden in the Component', false); 8 }, 9 10 setupDocumentVisibility: function() { 11 if (!Ember.testing) { 12 this.set('_visibilityHandler', this.visibilityHandler.bind(this)); 13 document.addEventListener('visibilitychange', this._visibilityHandler); 14 } 15 }.on('init'), 16 17 removeDocumentVisibility: function() { 18 if (!Ember.testing) { 19 document.removeEventListener('visibilitychange', this._visibilityHandler); 20 } 21 }.on('willDestroy'), 22 });