UNPKG

react-bootstrap-v5

Version:

Bootstrap 4 components built with React

92 lines (74 loc) 3.72 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _classnames = _interopRequireDefault(require("classnames")); var _react = _interopRequireWildcard(require("react")); var _Feedback = _interopRequireDefault(require("./Feedback")); var _FormFileButton = _interopRequireDefault(require("./FormFileButton")); var _FormFileInput = _interopRequireDefault(require("./FormFileInput")); var _FormFileLabel = _interopRequireDefault(require("./FormFileLabel")); var _FormFileText = _interopRequireDefault(require("./FormFileText")); var _FormContext = _interopRequireDefault(require("./FormContext")); var _ThemeProvider = require("./ThemeProvider"); var FormFile = _react.default.forwardRef(function (_ref, ref) { var id = _ref.id, bsPrefix = _ref.bsPrefix, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, _ref$isValid = _ref.isValid, isValid = _ref$isValid === void 0 ? false : _ref$isValid, _ref$isInvalid = _ref.isInvalid, isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid, _ref$feedbackTooltip = _ref.feedbackTooltip, feedbackTooltip = _ref$feedbackTooltip === void 0 ? false : _ref$feedbackTooltip, feedback = _ref.feedback, button = _ref.button, className = _ref.className, style = _ref.style, label = _ref.label, size = _ref.size, children = _ref.children, _ref$as = _ref.as, Component = _ref$as === void 0 ? 'div' : _ref$as, _ref$inputAs = _ref.inputAs, inputAs = _ref$inputAs === void 0 ? 'input' : _ref$inputAs, props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["id", "bsPrefix", "disabled", "isValid", "isInvalid", "feedbackTooltip", "feedback", "button", "className", "style", "label", "size", "children", "as", "inputAs"]); bsPrefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'form-file'); var _useContext = (0, _react.useContext)(_FormContext.default), controlId = _useContext.controlId; var innerFormContext = (0, _react.useMemo)(function () { return { controlId: id || controlId }; }, [controlId, id]); return /*#__PURE__*/_react.default.createElement(_FormContext.default.Provider, { value: innerFormContext }, /*#__PURE__*/_react.default.createElement(Component, { style: style, className: (0, _classnames.default)(className, bsPrefix, size && bsPrefix + "-" + size) }, children || /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FormFileInput.default, (0, _extends2.default)({}, props, { ref: ref, isValid: isValid, isInvalid: isInvalid, disabled: disabled, as: inputAs })), /*#__PURE__*/_react.default.createElement(_FormFileLabel.default, { label: label, button: button }), (isValid || isInvalid) && /*#__PURE__*/_react.default.createElement(_Feedback.default, { type: isValid ? 'valid' : 'invalid', tooltip: feedbackTooltip }, feedback)))); }); FormFile.displayName = 'FormFile'; FormFile.Button = _FormFileButton.default; FormFile.Input = _FormFileInput.default; FormFile.Label = _FormFileLabel.default; FormFile.Text = _FormFileText.default; var _default = FormFile; exports.default = _default; module.exports = exports["default"];