UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

25 lines (22 loc) 1.42 kB
import { __rest, __assign } from '../../node_modules/tslib/tslib.es6.js'; import React, { forwardRef, useContext } from 'react'; import PropTypes from 'prop-types'; import classNames from '../../node_modules/classnames/index.js'; import { TabsContext } from './CTabs.js'; var CTab = forwardRef(function (_a, ref) { var children = _a.children, className = _a.className, itemKey = _a.itemKey, rest = __rest(_a, ["children", "className", "itemKey"]); var _b = useContext(TabsContext), _activeItemKey = _b._activeItemKey, setActiveItemKey = _b.setActiveItemKey, id = _b.id; var isActive = function () { return itemKey === _activeItemKey; }; return (React.createElement("button", __assign({ className: classNames('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'; export { CTab }; //# sourceMappingURL=CTab.js.map