open-nomad/ui/app/mixins/window-resizable.js

22 lines
713 B
JavaScript
Raw Normal View History

import Mixin from '@ember/object/mixin';
import { run } from '@ember/runloop';
2018-03-08 19:15:43 +00:00
import { assert } from '@ember/debug';
import { on } from '@ember/object/evented';
export default Mixin.create({
2018-03-08 19:15:43 +00:00
windowResizeHandler() {
assert('windowResizeHandler needs to be overridden in the Component', false);
},
setupWindowResize: on('didInsertElement', function() {
run.scheduleOnce('afterRender', this, () => {
2019-03-26 07:46:44 +00:00
this.set('_windowResizeHandler', this.windowResizeHandler.bind(this));
window.addEventListener('resize', this._windowResizeHandler);
});
}),
removeWindowResize: on('willDestroyElement', function() {
window.removeEventListener('resize', this._windowResizeHandler);
}),
});