UNPKG

@coreui/react

Version:

UI Components Library for React.js

34 lines (30 loc) 1.59 kB
'use strict'; 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