import './search-form.scss'; import { h, Component } from 'preact'; import AddButton from '../ui/add-button'; import DeleteButton from '../ui/delete-button'; class SearchForm extends Component { render() { let value = this.props.value; if (!value) { value = { default: '', engines: []}; } if (!value.engines) { value.engines = []; } return
Name
URL
Default
{ value.engines.map((engine, index) => { return
; }) }
; } bindValue(e) { if (!this.props.onChange) { return; } let value = this.props.value; let name = e.target.name; let index = e.target.getAttribute('data-index'); let next = Object.assign({}, { default: value.default, engines: value.engines ? value.engines.slice() : [], }); if (name === 'name') { next.engines[index][0] = e.target.value; next.default = this.props.value.engines[index][0]; } else if (name === 'url') { next.engines[index][1] = e.target.value; } else if (name === 'default') { next.default = this.props.value.engines[index][0]; } else if (name === 'add') { next.engines.push(['', '']); } else if (name === 'delete') { next.engines.splice(index, 1); } this.props.onChange(next); } } export default SearchForm;