import React, { PropTypes } from 'react'; import radium from 'radium'; import componentStyles from './styles'; import InputField from '../InputField'; class InputFieldWithIcon extends InputField { static propTypes = { autofocus: PropTypes.bool, defaultValue: PropTypes.string, error: PropTypes.string, iconName: PropTypes.string, name: PropTypes.string, onChange: PropTypes.func, placeholder: PropTypes.string, style: PropTypes.object, // eslint-disable-line react/forbid-prop-types type: PropTypes.string, }; renderHeading = () => { const { error, placeholder } = this.props; const { value } = this.state; const { errorStyles, placeholderStyles } = componentStyles; if (error) { return
{error}
; } return
{placeholder}
; } render () { const { error, iconName, name, placeholder, style, type } = this.props; const { containerStyles, iconStyles, iconErrorStyles, inputErrorStyles, inputStyles } = componentStyles; const { value } = this.state; const { onInputChange } = this; return (
{this.renderHeading()} { this.input = r; }} style={[inputStyles(value, type), inputErrorStyles(error), style]} type={type} value={value} /> {iconName && }
); } } export default radium(InputFieldWithIcon);