@coreui/react
Version:
UI Components Library for React.js
27 lines (23 loc) • 1.45 kB
JavaScript
var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js');
var React = require('react');
var PropTypes = require('prop-types');
var index = require('../../_virtual/index.js');
var CTabsContext = require('./CTabsContext.js');
var CTab = React.forwardRef(function (_a, ref) {
var children = _a.children, className = _a.className, itemKey = _a.itemKey, rest = tslib_es6.__rest(_a, ["children", "className", "itemKey"]);
var _b = React.useContext(CTabsContext.CTabsContext), _activeItemKey = _b._activeItemKey, setActiveItemKey = _b.setActiveItemKey, id = _b.id;
var isActive = function () { return itemKey === _activeItemKey; };
return (React.createElement("button", tslib_es6.__assign({ className: index.default('nav-link', {
active: isActive(),
}, className), id: "".concat(id).concat(itemKey, "-tab"), onClick: function () { return setActiveItemKey(itemKey); }, onFocus: function () { return setActiveItemKey(itemKey); }, role: "tab", tabIndex: isActive() ? 0 : -1, type: "button", "aria-controls": "".concat(id).concat(itemKey, "-tab-pane"), "aria-selected": isActive(), ref: ref }, rest), children));
});
CTab.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
disabled: PropTypes.bool,
itemKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
};
CTab.displayName = 'CTab';
exports.CTab = CTab;
//# sourceMappingURL=CTab.js.map
;