/**
*
* 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;