tdesign-react
Version:
TDesign Component for React
95 lines (91 loc) • 4.4 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { _ as _defineProperty } from '../_chunks/dep-cb0a3966.js';
import { _ as _slicedToArray } from '../_chunks/dep-48805ab8.js';
import React from 'react';
import classNames from 'classnames';
import { CloseIcon } from 'tdesign-icons-react';
import useRipple from '../hooks/useRipple.js';
import useDomRefCallback from '../hooks/useDomRefCallback.js';
import noop from '../_util/noop.js';
import { useTabClass } from './useTabClass.js';
import useGlobalIcon from '../hooks/useGlobalIcon.js';
import '../_chunks/dep-eca3a3de.js';
import '../_chunks/dep-026a4c6b.js';
import '../_chunks/dep-c48e2ca1.js';
import '../hooks/useConfig.js';
import '../config-provider/ConfigContext.js';
import 'lodash-es';
import '../_chunks/dep-f97636ce.js';
import '../_chunks/dep-9dbbf468.js';
import 'dayjs';
import '../hooks/useAnimation.js';
import '../_chunks/dep-3a09424a.js';
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var TabNavItem = function TabNavItem(props) {
var label = props.label,
removable = props.removable,
isActive = props.isActive,
_props$onClick = props.onClick,
onClick = _props$onClick === void 0 ? noop : _props$onClick,
theme = props.theme,
placement = props.placement,
_props$onRemove = props.onRemove,
onRemove = _props$onRemove === void 0 ? noop : _props$onRemove,
value = props.value,
_props$size = props.size,
size = _props$size === void 0 ? "medium" : _props$size,
_props$disabled = props.disabled,
disabled = _props$disabled === void 0 ? false : _props$disabled,
index = props.index,
_props$onTabRemove = props.onTabRemove,
onTabRemove = _props$onTabRemove === void 0 ? noop : _props$onTabRemove,
innerRef = props.innerRef,
dragProps = props.dragProps;
var _useGlobalIcon = useGlobalIcon({
CloseIcon: CloseIcon
}),
CloseIcon$1 = _useGlobalIcon.CloseIcon;
var isCard = theme === "card";
var _useTabClass = useTabClass(),
tdTabsClassGenerator = _useTabClass.tdTabsClassGenerator,
tdClassGenerator = _useTabClass.tdClassGenerator,
tdSizeClassGenerator = _useTabClass.tdSizeClassGenerator;
var _useDomRefCallback = useDomRefCallback(),
_useDomRefCallback2 = _slicedToArray(_useDomRefCallback, 2),
navItemDom = _useDomRefCallback2[0],
setRefCurrent = _useDomRefCallback2[1];
useRipple(navItemDom);
return /* @__PURE__ */React.createElement("div", _objectSpread(_objectSpread({}, dragProps), {}, {
ref: innerRef,
onClick: disabled ? noop : onClick,
className: classNames(tdTabsClassGenerator("nav-item"), isCard ? tdTabsClassGenerator("nav--card") : "", tdSizeClassGenerator(size), isActive ? tdClassGenerator("is-active") : "", tdClassGenerator("is-".concat(placement)), disabled ? tdClassGenerator("is-disabled") : "", props.className)
}), isCard ? /* @__PURE__ */React.createElement("span", {
className: classNames(tdTabsClassGenerator("nav-item-text-wrapper"))
}, label) : /* @__PURE__ */React.createElement("div", {
ref: setRefCurrent,
className: classNames(tdTabsClassGenerator("nav-item-wrapper"))
}, /* @__PURE__ */React.createElement("span", {
className: classNames(tdTabsClassGenerator("nav-item-text-wrapper"))
}, label)), removable && !disabled ? /* @__PURE__ */React.createElement("span", {
className: classNames("remove-btn"),
onClick: function onClick(e) {
e.stopPropagation();
onRemove({
value: value,
e: e
});
onTabRemove({
value: value,
e: e,
index: index
});
}
}, /* @__PURE__ */React.createElement(CloseIcon$1, null)) : null);
};
export { TabNavItem as default };
//# sourceMappingURL=TabNavItem.js.map