src/example/todo/components/add-input/index.js
/**
* @flow
*/
import template from './add-input.partial.hbs';
/**
* Add Input Component Type
* @type {AddInputComponent}
*/
export type AddInputComponent = {
getValue: Function;
focusClear: Function
};
/**
* AddInput Component Factory that creates DOM element and binds handlers
* @param {Function} addHandler handler when 'add' button is pressed
* @return {AddInputComponent} Add input component
*/
function addInputComponentFactory(addHandler: Function): AddInputComponent {
const temp = document.createElement('div');
temp.innerHTML = template();
const input = (temp.querySelector('.add-input'): any);
input.onkeypress = (event) => {
if (event.keyCode === 13) {
addHandler();
}
};
(temp.querySelector('.add-button'): any).onclick = addHandler;
const ret: any = temp.firstChild;
ret.getValue = () => {
return input.value;
};
ret.focusClear = () => {
input.value = '';
input.focus();
};
return ret;
};
export default addInputComponentFactory;