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  });