import React, { Component } from 'react'; import { TouchableOpacity, ScrollView, SafeAreaView } from 'react-native'; import { TextButton } from './Modal'; import ProductList from '../components/ProductsList'; import ProductRecord from '../records/ProductRecord'; import { StrongText } from '../components/ItemTile'; import { Toolbar } from 'react-native-material-ui'; import FilterRecord from '../records/FilterRecord'; import { compose, pure } from 'recompose'; import { withUniqueProducts } from '../enhancers/productsEnhancers'; import { Set } from 'immutable'; type Props = { onClose: () => void, onUpdate: (name: string) => void, productsSeq: ?Set, }; class NameModal extends Component { static displayName = 'NameModal'; props: Props; state: { filter: FilterRecord, }; state = { filter: new FilterRecord(), }; save = () => { this.props.onUpdate(this.state.filter.search); this.props.onClose(); }; setText = (text: string) => { this.setState(({ filter }) => ({ filter: filter.set('search', text) })); }; updateAndClose = (text: string) => { this.props.onUpdate(text); this.props.onClose(); }; render() { const { onClose, productsSeq } = this.props; const { filter } = this.state; return ( {!!filter.search && ( )} {(product: ProductRecord) => ( this.updateAndClose(product.name)}> {product.name} )} ); } } export default compose( pure, withUniqueProducts )(NameModal);