From c014db5d324254ac106e8d11fd5fb9eade342c3f Mon Sep 17 00:00:00 2001 From: Alf Eaton <eaton.alf@gmail.com> Date: Wed, 6 Sep 2017 14:44:01 +0100 Subject: [PATCH] Refactor ValidatedField --- package.json | 1 + src/atoms/ValidatedField.js | 36 +++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index ce70ed9d4..78a923798 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "react-router": "^3.0.5", "react-tag-autocomplete": "^5.4.1", "redux": "^3.6.0", + "redux-form": "^7.0.4", "xpub-fonts": "^0.0.2" }, "devDependencies": { diff --git a/src/atoms/ValidatedField.js b/src/atoms/ValidatedField.js index 5bbec1e0f..f0186d98a 100644 --- a/src/atoms/ValidatedField.js +++ b/src/atoms/ValidatedField.js @@ -1,27 +1,33 @@ import React from 'react' import classnames from 'classnames' import classes from './ValidatedField.local.scss' +import { Field } from 'redux-form' // TODO: pass ...props.input to children automatically? -const ValidatedField = ({ form, children, error, warning }) => ( - <div> - {children} +const ValidatedField = ({ component, ...rest }) => ( + <Field + {...rest} + component={({ meta, input }) => ( + <div> + {component(input)} - <div className={classes.messages}> - {error && ( - <div className={classnames(classes.message, classes.error)}> - {error} - </div> - )} + <div className={classes.messages}> + {meta.error && ( + <div className={classnames(classes.message, classes.error)}> + {meta.error} + </div> + )} - {warning && ( - <div className={classnames(classes.message, classes.warning)}> - {warning} + {meta.warning && ( + <div className={classnames(classes.message, classes.warning)}> + {meta.warning} + </div> + )} </div> - )} - </div> - </div> + </div> + )} + /> ) export default ValidatedField -- GitLab