github.com/hernad/nomad@v1.6.112/ui/app/mixins/window-resizable.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import Mixin from '@ember/object/mixin';
     7  import { scheduleOnce } from '@ember/runloop';
     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    windowResizeHandler() {
    14      assert(
    15        'windowResizeHandler needs to be overridden in the Component',
    16        false
    17      );
    18    },
    19  
    20    setupWindowResize: on('didInsertElement', function () {
    21      scheduleOnce('afterRender', this, this.addResizeListener);
    22    }),
    23  
    24    addResizeListener() {
    25      this.set('_windowResizeHandler', this.windowResizeHandler.bind(this));
    26      window.addEventListener('resize', this._windowResizeHandler);
    27    },
    28  
    29    removeWindowResize: on('willDestroyElement', function () {
    30      window.removeEventListener('resize', this._windowResizeHandler);
    31    }),
    32  });