UNPKG

3.07 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose"));
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends"));
11
12var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inheritsLoose"));
13
14var _classnames = _interopRequireDefault(require("classnames"));
15
16var _react = _interopRequireDefault(require("react"));
17
18var _propTypes = _interopRequireDefault(require("prop-types"));
19
20var _Glyphicon = _interopRequireDefault(require("./Glyphicon"));
21
22var _bootstrapUtils = require("./utils/bootstrapUtils");
23
24var defaultProps = {
25 bsRole: 'feedback'
26};
27var contextTypes = {
28 $bs_formGroup: _propTypes.default.object
29};
30
31var FormControlFeedback =
32/*#__PURE__*/
33function (_React$Component) {
34 (0, _inheritsLoose2.default)(FormControlFeedback, _React$Component);
35
36 function FormControlFeedback() {
37 return _React$Component.apply(this, arguments) || this;
38 }
39
40 var _proto = FormControlFeedback.prototype;
41
42 _proto.getGlyph = function getGlyph(validationState) {
43 switch (validationState) {
44 case 'success':
45 return 'ok';
46
47 case 'warning':
48 return 'warning-sign';
49
50 case 'error':
51 return 'remove';
52
53 default:
54 return null;
55 }
56 };
57
58 _proto.renderDefaultFeedback = function renderDefaultFeedback(formGroup, className, classes, elementProps) {
59 var glyph = this.getGlyph(formGroup && formGroup.validationState);
60
61 if (!glyph) {
62 return null;
63 }
64
65 return _react.default.createElement(_Glyphicon.default, (0, _extends2.default)({}, elementProps, {
66 glyph: glyph,
67 className: (0, _classnames.default)(className, classes)
68 }));
69 };
70
71 _proto.render = function render() {
72 var _this$props = this.props,
73 className = _this$props.className,
74 children = _this$props.children,
75 props = (0, _objectWithoutPropertiesLoose2.default)(_this$props, ["className", "children"]);
76
77 var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
78 bsProps = _splitBsProps[0],
79 elementProps = _splitBsProps[1];
80
81 var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
82
83 if (!children) {
84 return this.renderDefaultFeedback(this.context.$bs_formGroup, className, classes, elementProps);
85 }
86
87 var child = _react.default.Children.only(children);
88
89 return _react.default.cloneElement(child, (0, _extends2.default)({}, elementProps, {
90 className: (0, _classnames.default)(child.props.className, className, classes)
91 }));
92 };
93
94 return FormControlFeedback;
95}(_react.default.Component);
96
97FormControlFeedback.defaultProps = defaultProps;
98FormControlFeedback.contextTypes = contextTypes;
99
100var _default = (0, _bootstrapUtils.bsClass)('form-control-feedback', FormControlFeedback);
101
102exports.default = _default;
103module.exports = exports["default"];
\No newline at end of file