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