import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { defineMessages, injectIntl } from 'react-intl'; import { fetchListSuggestions, clearListSuggestions, changeListSuggestions } from '../../../actions/lists'; import classNames from 'classnames'; const messages = defineMessages({ search: { id: 'lists.search', defaultMessage: 'Search among people you follow' }, }); const mapStateToProps = state => ({ value: state.getIn(['listEditor', 'suggestions', 'value']), }); const mapDispatchToProps = dispatch => ({ onSubmit: value => dispatch(fetchListSuggestions(value)), onClear: () => dispatch(clearListSuggestions()), onChange: value => dispatch(changeListSuggestions(value)), }); export default @connect(mapStateToProps, mapDispatchToProps) @injectIntl class Search extends React.PureComponent { static propTypes = { intl: PropTypes.object.isRequired, value: PropTypes.string.isRequired, onChange: PropTypes.func.isRequired, onSubmit: PropTypes.func.isRequired, onClear: PropTypes.func.isRequired, }; handleChange = e => { this.props.onChange(e.target.value); } handleKeyUp = e => { if (e.keyCode === 13) { this.props.onSubmit(this.props.value); } } handleClear = () => { this.props.onClear(); } render () { const { value, intl } = this.props; const hasValue = value.length > 0; return (
); } }