import React from 'react'; import Formsy from 'formsy-react'; class MyInput extends React.Component { // setValue() will set the value of the component, which in // turn will validate it and the rest of the form changeValue = (event) => { this.props.setValue(event.currentTarget[this.props.type === 'checkbox' ? 'checked' : 'value']); } render() { // Set a specific className based on the validation // state of this component. showRequired() is true // when the value is empty and the required prop is // passed to the input. showError() is true when the // value typed is invalid const className = 'form-group' + (this.props.className || ' ') + (this.props.showRequired() ? 'required' : this.props.showError() ? 'error' : ''); // An error message is returned ONLY if the component is invalid // or the server has returned an error message const errorMessage = this.props.getErrorMessage(); return (
{errorMessage}
); } } export default Formsy.Wrapper(MyInput);