react-bootstrap
Version:
Bootstrap 4 components built with React
96 lines (75 loc) • 2.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireDefault(require("react"));
var _uncontrollable = require("uncontrollable");
var _TabContext = _interopRequireDefault(require("./TabContext"));
var _SelectableContext = _interopRequireDefault(require("./SelectableContext"));
var TabContainer =
/*#__PURE__*/
function (_React$Component) {
(0, _inheritsLoose2.default)(TabContainer, _React$Component);
function TabContainer(props) {
var _this;
_this = _React$Component.call(this, props) || this;
_this.getControlledId = function (key) {
return _this.getKey(key, 'tabpane');
};
_this.getControllerId = function (key) {
return _this.getKey(key, 'tab');
};
_this.state = {
tabContext: {
onSelect: _this.props.onSelect,
activeKey: _this.props.activeKey,
transition: _this.props.transition,
mountOnEnter: _this.props.mountOnEnter,
unmountOnExit: _this.props.unmountOnExit,
getControlledId: _this.getControlledId,
getControllerId: _this.getControllerId
}
};
return _this;
}
TabContainer.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
var activeKey = _ref.activeKey,
mountOnEnter = _ref.mountOnEnter,
unmountOnExit = _ref.unmountOnExit,
transition = _ref.transition;
return {
tabContext: (0, _extends2.default)({}, prevState.tabContext, {
activeKey: activeKey,
mountOnEnter: mountOnEnter,
unmountOnExit: unmountOnExit,
transition: transition
})
};
};
var _proto = TabContainer.prototype;
_proto.getKey = function getKey(key, type) {
var _this$props = this.props,
generateChildId = _this$props.generateChildId,
id = _this$props.id;
if (generateChildId) return generateChildId(key, type);
return id ? id + "-" + type + "-" + key : null;
};
_proto.render = function render() {
var _this$props2 = this.props,
children = _this$props2.children,
onSelect = _this$props2.onSelect;
return _react.default.createElement(_TabContext.default.Provider, {
value: this.state.tabContext
}, _react.default.createElement(_SelectableContext.default.Provider, {
value: onSelect
}, children));
};
return TabContainer;
}(_react.default.Component);
var _default = (0, _uncontrollable.uncontrollable)(TabContainer, {
activeKey: 'onSelect'
});
exports.default = _default;
module.exports = exports["default"];