UNPKG

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