UNPKG

3.29 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7exports.__esModule = true;
8exports.default = void 0;
9
10var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
12var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
14var _classnames = _interopRequireDefault(require("classnames"));
15
16var _react = _interopRequireWildcard(require("react"));
17
18var _ThemeProvider = require("./ThemeProvider");
19
20var _FormContext = _interopRequireDefault(require("./FormContext"));
21
22var _Feedback = _interopRequireDefault(require("./Feedback"));
23
24var _FormCheckInput = _interopRequireDefault(require("./FormCheckInput"));
25
26var _FormCheckLabel = _interopRequireDefault(require("./FormCheckLabel"));
27
28var defaultProps = {
29 type: 'checkbox',
30 inline: false,
31 disabled: false,
32 isValid: false,
33 isInvalid: false,
34 title: ''
35};
36
37var FormCheck = _react.default.forwardRef(function (_ref, ref) {
38 var id = _ref.id,
39 bsPrefix = _ref.bsPrefix,
40 inline = _ref.inline,
41 disabled = _ref.disabled,
42 isValid = _ref.isValid,
43 isInvalid = _ref.isInvalid,
44 feedback = _ref.feedback,
45 className = _ref.className,
46 style = _ref.style,
47 title = _ref.title,
48 type = _ref.type,
49 label = _ref.label,
50 children = _ref.children,
51 custom = _ref.custom,
52 props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["id", "bsPrefix", "inline", "disabled", "isValid", "isInvalid", "feedback", "className", "style", "title", "type", "label", "children", "custom"]);
53 bsPrefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'form-check');
54
55 var _useContext = (0, _react.useContext)(_FormContext.default),
56 controlId = _useContext.controlId;
57
58 var innerFormContext = (0, _react.useMemo)(function () {
59 return {
60 controlId: id || controlId,
61 custom: custom
62 };
63 }, [controlId, custom, id]);
64 var hasLabel = label != null && label !== false && !children;
65
66 var input = _react.default.createElement(_FormCheckInput.default, (0, _extends2.default)({}, props, {
67 type: type,
68 ref: ref,
69 isValid: isValid,
70 isInvalid: isInvalid,
71 isStatic: !hasLabel,
72 disabled: disabled
73 }));
74
75 return _react.default.createElement(_FormContext.default.Provider, {
76 value: innerFormContext
77 }, _react.default.createElement("div", {
78 style: style,
79 className: (0, _classnames.default)(className, !custom && bsPrefix, custom && "custom-control custom-" + type, inline && (custom ? 'custom-control' : bsPrefix) + "-inline")
80 }, children || _react.default.createElement(_react.default.Fragment, null, input, hasLabel && _react.default.createElement(_FormCheckLabel.default, {
81 title: title
82 }, label), (isValid || isInvalid) && _react.default.createElement(_Feedback.default, {
83 type: isValid ? 'valid' : 'invalid'
84 }, feedback))));
85});
86
87FormCheck.displayName = 'FormCheck';
88FormCheck.defaultProps = defaultProps;
89FormCheck.Input = _FormCheckInput.default;
90FormCheck.Label = _FormCheckLabel.default;
91var _default = FormCheck;
92exports.default = _default;
93module.exports = exports["default"];
\No newline at end of file