import * as React from 'react' import * as cx from 'classnames' import { Row } from './row' import { Column } from './column' import { List, ListItem } from './list' import { Spinner } from './spinner' import { TextInput } from './text-input' import { BaseFormField } from './base-form-field' import { TextSearchProps, TextSearchComponentProps, AbstractFormField } from '../interfaces' import { shortID } from '../utils' const styles = require('../../src/styles/components/forms.scss') export class TextSearch extends React.Component { public render(): JSX.Element { const { field, placeholder } = this.props return ( {this.renderSpinner()} {this.renderSearchResults()} ) } private renderSpinner(): JSX.Element { return } private renderSearchResults(): JSX.Element | null { if (!this.props.dropdownOpen) return null return ( {this.props.searchResults.map(o => {o.suggestion} , )} ) } private mkHandleSetSelected = (o: any) => () => { this.props.setSelected(o) } private handleInputFocus = () => this.props.setFocus(true) private handleInputBlur = () => this.props.setFocus(false) private handleInputChange = (e: React.SyntheticEvent) => { this.props.setSearch(e.currentTarget.value) } private classNames(field: AbstractFormField) { return cx( this.props.className, styles.inputContainer, { [styles.focus]: this.props.isFocused, [styles.success]: field.valid, [styles.error]: field.errors.length > 0 || (field.dirty && !field.valid), }, ) } }