2017-12-15 21:39:18 +00:00
|
|
|
import Mixin from '@ember/object/mixin';
|
|
|
|
import { run } from '@ember/runloop';
|
2018-03-08 19:15:43 +00:00
|
|
|
import { assert } from '@ember/debug';
|
2019-10-15 18:32:58 +00:00
|
|
|
import { on } from '@ember/object/evented';
|
2017-09-27 00:18:22 +00:00
|
|
|
|
2020-06-09 21:03:28 +00:00
|
|
|
// eslint-disable-next-line ember/no-new-mixins
|
2017-12-15 21:39:18 +00:00
|
|
|
export default Mixin.create({
|
2018-03-08 19:15:43 +00:00
|
|
|
windowResizeHandler() {
|
|
|
|
assert('windowResizeHandler needs to be overridden in the Component', false);
|
|
|
|
},
|
|
|
|
|
2019-10-15 18:32:58 +00:00
|
|
|
setupWindowResize: on('didInsertElement', function() {
|
2020-06-09 21:03:28 +00:00
|
|
|
run.scheduleOnce('afterRender', this, this.addResizeListener);
|
2019-10-15 18:32:58 +00:00
|
|
|
}),
|
2017-09-27 00:18:22 +00:00
|
|
|
|
2020-06-09 21:03:28 +00:00
|
|
|
addResizeListener() {
|
|
|
|
this.set('_windowResizeHandler', this.windowResizeHandler.bind(this));
|
|
|
|
window.addEventListener('resize', this._windowResizeHandler);
|
|
|
|
},
|
|
|
|
|
2019-10-15 18:32:58 +00:00
|
|
|
removeWindowResize: on('willDestroyElement', function() {
|
2020-05-26 21:35:57 +00:00
|
|
|
window.removeEventListener('resize', this._windowResizeHandler);
|
2019-10-15 18:32:58 +00:00
|
|
|
}),
|
2017-09-27 00:18:22 +00:00
|
|
|
});
|