import * as React from 'react' import * as cx from 'classnames' import { StylableComponent } from '../theme' import { Row } from '../flex' import { Column } from '../flex' import { List, ListItem } from '../list' import { Spinner } from '../spinner' import { TextInput } from '../text-input' import { WebFormField } from '../form-field' import { TextSearchProps, TextSearchComponentProps } from './interfaces' import { AbstractFormField } from '../form-field' import { shortID } from '../utils' const styles = require('../../../src/components/form-field/styles.scss') export class TextSearch extends StylableComponent { public render(): JSX.Element { const { name, placeholder } = this.props return ( {this.renderInput()} {this.renderSpinner()} {this.renderSearchResults()} ) } private renderInput(): any { // todo return null } 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 setSelected = (o: any) => () => { this.props.setSelected(o) } 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), }, ) } }