Home Reference Source

src/components/widgets/Form/Field.jsx

import React from 'react';
import PropTypes from 'prop-types';
import { pure } from 'recompose';
import StandardField from '../../widgets/Form/fields/StandardField/StandardField';

/**
 * Поле формы {@link Form}
 * @reactProps {node} component - компонент, который оборачивает поле. Дефолт: {@link StandardField}
 * @reactProps {node} control - контрол, который передастся в компонент (остальные пропсы тоже передаются в компонент)
 * @example
 * <Field component={CustomField} className="foo bar"/>
 */
class Field extends React.Component {
  render() {
    const { component, ...props } = this.props;
    return React.createElement(component, props);
  }
}

Field.defaultProps = {
  component: StandardField,
};

Field.propTypes = {
  component: PropTypes.node,
};

export default pure(Field);