UNPKG

@coreui/react

Version:

UI Components Library for React.js

31 lines (28 loc) 1.41 kB
import React, { forwardRef, useId, useState } from 'react'; import PropTypes from 'prop-types'; import classNames from '../../_virtual/index.js'; import { CTabsContext } from './CTabsContext.js'; const CTabs = forwardRef(({ children, activeItemKey, className, defaultActiveItemKey, onChange }, ref) => { const id = useId(); const isControlled = activeItemKey !== undefined; const [internalActiveItemKey, setInternalActiveItemKey] = useState(() => (isControlled ? undefined : defaultActiveItemKey)); const currentActiveItemKey = isControlled ? activeItemKey : internalActiveItemKey; const setActiveItemKey = (value) => { if (!isControlled) { setInternalActiveItemKey(value); } onChange === null || onChange === void 0 ? void 0 : onChange(value); }; return (React.createElement(CTabsContext.Provider, { value: { _activeItemKey: currentActiveItemKey, setActiveItemKey, id } }, React.createElement("div", { className: classNames('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'; export { CTabs }; //# sourceMappingURL=CTabs.js.map