All files / addon/components bootstrap-debounce-input.js

0% Statements 0/4
0% Branches 0/2
0% Functions 0/2
0% Lines 0/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                                                                 
import Component from '@ember/component';
import layout from '../templates/components/bootstrap-debounce-input';
import { task, timeout } from 'ember-concurrency';
import { INPUT_CLASS_NAME } from './bootstrap-input';
 
export default Component.extend({
  layout: layout,
  tagName: '',
 
  classNames: [INPUT_CLASS_NAME],
 
  /* Public Attrs */
  value: undefined,
  debounce: 800,
 
  /* Public Actions */
  onChange: undefined,
 
  _value: undefined,
 
  didReceiveAttrs() {
    this.set('_value', this.get('value'));
  },
 
  valueChanged: task(function * () {
    yield timeout(this.get('debounce')); // wait for a monent before changing
 
    if (this.get('onChange')) {
      this.get('onChange')(this.get('_value'));
    }
  }).restartable(),
});