hummingbird-me/kitsu-web

View on GitHub
app/components/search-input.js

Summary

Maintainability
A
0 mins
Test Coverage
F
40%
import Component from '@ember/component';
import { get, set } from '@ember/object';
import { invokeAction } from 'ember-invoke-action';
import { task, timeout } from 'ember-concurrency';

export default Component.extend({
  delay: 250,
  dirtyText: undefined,
  showIcon: true,

  didReceiveAttrs() {
    this._super(...arguments);
    set(this, 'dirtyText', get(this, 'text'));
  },

  updateTask: task(function* (value) {
    set(this, 'dirtyText', value);
    yield timeout(get(this, 'delay'));
    invokeAction(this, 'update', value);
  }).restartable()
});