UNPKG

redux-form-ant-design

Version:

redux-form-ant-design is a wrapper for redux form and ant design components.

93 lines (78 loc) 3.06 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _antd = require("antd"); var _getInputComponent = require("./getInputComponent"); var getErrors = function getErrors(props) { var errors = {}; if (props.showError) { errors.validateStatus = "error"; errors.help = props.error; errors.hasFeedback = props.hasFeedback; } return errors; }; var Field = function Field(_ref) { var label = _ref.label, children = _ref.children, _onBlur = _ref.onBlur, rest = (0, _objectWithoutProperties2["default"])(_ref, ["label", "children", "onBlur"]); return _react["default"].createElement(_antd.Form.Item, Object.assign({ label: label, onBlur: function onBlur(e) { return _onBlur(e.value); }, onFocus: function onFocus() {} }, getErrors(rest)), children); }; var getWrapperComponent = function getWrapperComponent(type) { if (type === "teal" || type === "radio") return (0, _getInputComponent.getInputComponent)("radiowrapper"); if (type === "dropdown") return (0, _getInputComponent.getInputComponent)("select"); return null; }; var ReduxFormField = function ReduxFormField(props) { var input = props.input, hasFeedback = props.hasFeedback, label = props.label, error = props.error, required = props.required, onBlur = props.onBlur, children = props.children, rest = (0, _objectWithoutProperties2["default"])(props, ["input", "hasFeedback", "label", "error", "required", "onBlur", "children"]); var showError = required && "error" in props && error && error !== "" && error !== null; if (props.fieldType === "plaintext") { return _react["default"].createElement(Field, { label: label, hasFeedback: hasFeedback, showError: showError }, _react["default"].createElement("span", null, props.value)); } var WrapperComponent = getWrapperComponent(props.fieldType); var Component = (0, _getInputComponent.getInputComponent)(props.fieldType); return _react["default"].createElement(Field, { error: error, label: label, onBlur: onBlur, hasFeedback: hasFeedback, showError: showError }, WrapperComponent ? _react["default"].createElement(WrapperComponent, { defaultValue: props.defaultValue, buttonStyle: props.buttonStyle, onChange: props.onChange, mode: props.mode }, props.options && props.options.map(function (item) { return _react["default"].createElement(Component, { key: item.value, value: item.value }, item.label); })) : _react["default"].createElement(Component, Object.assign({}, input, rest, { children: children, onBlur: function onBlur() {}, onFocus: function onFocus() {} }))); }; var _default = ReduxFormField; exports["default"] = _default;