@coreui/react
Version:
UI Components Library for React.js
34 lines (30 loc) • 1.59 kB
JavaScript
var React = require('react');
var PropTypes = require('prop-types');
var index = require('../../_virtual/index.js');
var CTabsContext = require('./CTabsContext.js');
var CTabs = React.forwardRef(function (_a, ref) {
var children = _a.children, activeItemKey = _a.activeItemKey, className = _a.className, defaultActiveItemKey = _a.defaultActiveItemKey, onChange = _a.onChange;
var id = React.useId();
var isControlled = activeItemKey !== undefined;
var _b = React.useState(function () { return (isControlled ? undefined : defaultActiveItemKey); }), internalActiveItemKey = _b[0], setInternalActiveItemKey = _b[1];
var currentActiveItemKey = isControlled ? activeItemKey : internalActiveItemKey;
var setActiveItemKey = function (value) {
if (!isControlled) {
setInternalActiveItemKey(value);
}
onChange === null || onChange === void 0 ? void 0 : onChange(value);
};
return (React.createElement(CTabsContext.CTabsContext.Provider, { value: { _activeItemKey: currentActiveItemKey, setActiveItemKey: setActiveItemKey, id: id } },
React.createElement("div", { className: index.default('tabs', className), ref: ref }, children)));
});
CTabs.propTypes = {
activeItemKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
children: PropTypes.node,
className: PropTypes.string,
defaultActiveItemKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
onChange: PropTypes.func,
};
CTabs.displayName = 'CTabs';
exports.CTabs = CTabs;
//# sourceMappingURL=CTabs.js.map
;