github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/app/mixins/with-route-visibility-detection.js (about) 1 import Ember from 'ember'; 2 import Mixin from '@ember/object/mixin'; 3 import { assert } from '@ember/debug'; 4 import { on } from '@ember/object/evented'; 5 6 // eslint-disable-next-line ember/no-new-mixins 7 export default Mixin.create({ 8 visibilityHandler() { 9 assert('visibilityHandler needs to be overridden in the Route', false); 10 }, 11 12 setupDocumentVisibility: on('activate', function() { 13 if (!Ember.testing) { 14 this.set('_visibilityHandler', this.visibilityHandler.bind(this)); 15 document.addEventListener('visibilitychange', this._visibilityHandler); 16 } 17 }), 18 19 removeDocumentVisibility: on('deactivate', function() { 20 if (!Ember.testing) { 21 document.removeEventListener('visibilitychange', this._visibilityHandler); 22 } 23 }), 24 });