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