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