github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/app/mixins/window-resizable.js (about)

     1  import Mixin from '@ember/object/mixin';
     2  import { run } from '@ember/runloop';
     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    windowResizeHandler() {
     9      assert('windowResizeHandler needs to be overridden in the Component', false);
    10    },
    11  
    12    setupWindowResize: on('didInsertElement', function() {
    13      run.scheduleOnce('afterRender', this, this.addResizeListener);
    14    }),
    15  
    16    addResizeListener() {
    17      this.set('_windowResizeHandler', this.windowResizeHandler.bind(this));
    18      window.addEventListener('resize', this._windowResizeHandler);
    19    },
    20  
    21    removeWindowResize: on('willDestroyElement', function() {
    22      window.removeEventListener('resize', this._windowResizeHandler);
    23    }),
    24  });