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