Skip to content

Commit

Permalink
Move to modify hook
Browse files Browse the repository at this point in the history
  • Loading branch information
evoactivity committed Oct 12, 2022
1 parent 5323f1e commit ad979a9
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions addon/modifiers/autoresize.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,22 @@ import Modifier from 'ember-modifier';
import { action } from '@ember/object';
import { scheduleOnce } from '@ember/runloop';
import { capitalize } from '@ember/string';
import { registerDestructor } from '@ember/destroyable';

function cleanup(instance) {
let { el, scheduleResize } = instance;

if (el && scheduleResize) {
el.removeEventListener('input', scheduleResize);
instance.el = null;
}
}

export default class AutoresizeModifier extends Modifier {
@action
resize() {
let { element } = this;
let dimension = this.args.named.mode ?? 'height';
let { el: element } = this;
let dimension = this.named.mode ?? 'height';
let previousWrap = element.style.whiteSpace;

if (dimension === 'width') {
Expand Down Expand Up @@ -42,21 +52,12 @@ export default class AutoresizeModifier extends Modifier {
scheduleOnce('afterRender', this, 'resize');
}

didInstall() {
// resize for initial value
this.scheduleResize();
modify(element, _, named) {
this.el = element;
this.named = named;

// resize on every input event
this.element.addEventListener('input', this.scheduleResize);
}

didUpdateArguments() {
// resize when arguments changes
this.el.addEventListener('input', this.scheduleResize);
this.scheduleResize();
}

willRemove() {
// clean up
this.element.removeEventListener('input', this.scheduleResize);
registerDestructor(this, cleanup)
}
}

0 comments on commit ad979a9

Please sign in to comment.