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