UNPKG

react-ions

Version:

An open source set of React components that implement Ambassador's Design and UX patterns.

32 lines (27 loc) 852 B
import React from 'react' import { string } from 'prop-types' import optclass from '../internal/OptClass' import style from './style.scss' const ValidatedField = WrappedComponent => { return class extends React.Component { static propTypes = { error: string } render = () => { const { className, ...fieldProps } = this.props const wrapperErrorClass = fieldProps.error ? 'has-error' : '' const validatedFieldClass = optclass(style, ['validated-field', wrapperErrorClass, className]) return ( <div className={validatedFieldClass}> <WrappedComponent {...fieldProps} /> {fieldProps.error && <span className={style['has-error__message']}> {fieldProps.error} </span> } </div> ) } } } export default ValidatedField