/** * * InputAddon */ import React from 'react'; import PropTypes from 'prop-types'; import { isEmpty, isFunction, upperFirst } from 'lodash'; import { FormattedMessage } from 'react-intl'; import cn from 'classnames'; import styles from './styles.scss'; class InputAddon extends React.Component { state = { isFocused: false }; handleBlur = (e) => { this.setState({ isFocused: !this.state.isFocused }); if (isFunction(this.props.onBlur)) { this.props.onBlur(e); } } handleFocus = (e) => { this.setState({ isFocused: !this.state.isFocused }); this.props.onFocus(e); } render() { const { addon, autoFocus, className, deactivateErrorHighlight, disabled, error, name, onChange, placeholder, style, tabIndex, value, } = this.props; return (
{(message) => ( {message} )} {(message) => ( )}
); } } InputAddon.defaultProps = { addon: 'app.utils.placeholder.defaultMessage', // Prevent error from FormattedMessage autoFocus: false, className: '', deactivateErrorHighlight: false, disabled: false, error: false, onBlur: () => {}, onFocus: () => {}, placeholder: 'app.utils.placeholder.defaultMessage', style: {}, tabIndex: '0', }; InputAddon.propTypes = { addon: PropTypes.string, autoFocus: PropTypes.bool, className: PropTypes.string, deactivateErrorHighlight: PropTypes.bool, disabled: PropTypes.bool, error: PropTypes.bool, onBlur: PropTypes.oneOfType([ PropTypes.func, PropTypes.bool, ]), onChange: PropTypes.func.isRequired, onFocus: PropTypes.func, name: PropTypes.string.isRequired, placeholder: PropTypes.string, style: PropTypes.object, tabIndex: PropTypes.string, value: PropTypes.string.isRequired, }; export default InputAddon;