github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/mixins/window-resizable.js (about)

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