@gravity-ui/uikit
Version:
Gravity UI base styling and components
44 lines (43 loc) • 2.38 kB
JavaScript
'use client';
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Tab = exports.TabInner = void 0;
const tslib_1 = require("tslib");
const jsx_runtime_1 = require("react/jsx-runtime");
const React = tslib_1.__importStar(require("react"));
const Menu_1 = require("../lab/Menu/index.js");
const useDefaultProps_1 = require("../theme/useDefaultProps.js");
const getLinkRelWithFallback_1 = require("../utils/getLinkRelWithFallback.js");
const TabContent_1 = require("./TabContent.js");
const useTab_1 = require("./hooks/useTab.js");
const utils_1 = require("./utils.js");
require("./Tab.css");
exports.TabInner = React.forwardRef(function TabInner(rawProps, ref) {
const props = (0, useDefaultProps_1.useDefaultProps)('Tab', rawProps);
const tabProps = (0, useTab_1.useTab)(props);
const content = ((0, jsx_runtime_1.jsx)(TabContent_1.TabContent, { icon: props.icon, value: props.value, counter: props.counter, label: props.label, children: props.children }));
if ((0, utils_1.isTabComponentProps)(props)) {
if (props.isMenuItem) {
const MenuItemComponent = Menu_1.MenuItem;
return ((0, jsx_runtime_1.jsx)(MenuItemComponent, { ...tabProps, ref: ref, component: props.component, children: content }));
}
return React.createElement(props.component, { ...tabProps, ref }, content);
}
if ((0, utils_1.isTabLinkProps)(props)) {
const rel = (0, getLinkRelWithFallback_1.getLinkRelWithFallback)(props);
if (props.isMenuItem) {
return ((0, jsx_runtime_1.jsx)(Menu_1.MenuItem, { ...tabProps, ref: ref, href: props.href, rel: rel, children: content }));
}
return ((0, jsx_runtime_1.jsx)("a", { ...tabProps, ref: ref, href: props.href, rel: rel, children: content }));
}
if (props.isMenuItem) {
return ((0, jsx_runtime_1.jsx)(Menu_1.MenuItem, { ...tabProps, ref: ref, type: props.type || 'button', disabled: props.disabled, children: content }));
}
return ((0, jsx_runtime_1.jsx)("button", { ...tabProps, ref: ref, type: props.type || 'button', children: content }));
});
exports.TabInner.displayName = 'TabInner';
exports.Tab = React.forwardRef(function Tab(rawProps, ref) {
return (0, jsx_runtime_1.jsx)(exports.TabInner, { ref: ref, ...rawProps });
});
exports.Tab.displayName = 'Tab';
//# sourceMappingURL=Tab.js.map