@coreui/react
Version:
UI Components Library for React.js
31 lines (28 loc) • 1.41 kB
JavaScript
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