@ant-design/x
Version:
Craft AI-driven interfaces effortlessly
100 lines (96 loc) • 3.61 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _pickAttrs = _interopRequireDefault(require("@rc-component/util/lib/pickAttrs"));
var _clsx = require("clsx");
var _react = _interopRequireDefault(require("react"));
var _useProxyImperativeHandle = _interopRequireDefault(require("../_util/hooks/use-proxy-imperative-handle"));
var _xProvider = require("../x-provider");
var _Status = _interopRequireWildcard(require("./Status"));
var _style = _interopRequireDefault(require("./style"));
var VARIANT = /*#__PURE__*/function (VARIANT) {
VARIANT["SOLID"] = "solid";
VARIANT["OUTLINED"] = "outlined";
VARIANT["TEXT"] = "text";
return VARIANT;
}(VARIANT || {});
const Item = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
// ============================ Info ============================
const {
key,
blink,
variant = 'solid',
prefixCls: customizePrefixCls,
rootClassName,
className,
classNames,
style,
styles,
title,
icon,
status,
onClick,
description,
disabled,
...restProps
} = props;
const domProps = (0, _pickAttrs.default)(restProps, {
attr: true,
aria: true,
data: true
});
const id = _react.default.useId();
// ============================= Refs =============================
const itemRef = _react.default.useRef(null);
(0, _useProxyImperativeHandle.default)(ref, () => {
return {
nativeElement: itemRef.current
};
});
// ============================ Prefix ============================
const {
getPrefixCls,
direction
} = (0, _xProvider.useXProviderContext)();
const prefixCls = getPrefixCls('thought-chain', customizePrefixCls);
const [hashId, cssVarCls] = (0, _style.default)(prefixCls);
const itemCls = `${prefixCls}-item`;
// ============================ Render ============================
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
ref: itemRef,
key: key || id,
onClick: disabled ? undefined : onClick,
style: style,
className: (0, _clsx.clsx)(prefixCls, hashId, className, cssVarCls, rootClassName, classNames?.root, itemCls, {
[`${itemCls}-${variant}`]: variant,
[`${itemCls}-click`]: !disabled && onClick,
[`${itemCls}-error`]: status === _Status.THOUGHT_CHAIN_ITEM_STATUS.ERROR,
[`${itemCls}-rtl`]: direction === 'rtl',
[`${itemCls}-disabled`]: disabled
})
}, domProps), (status || icon) && /*#__PURE__*/_react.default.createElement(_Status.default, {
style: styles?.icon,
className: classNames?.icon,
prefixCls: prefixCls,
icon: icon,
status: status
}), /*#__PURE__*/_react.default.createElement("div", {
className: (0, _clsx.clsx)(`${itemCls}-content`, {
[`${prefixCls}-motion-blink`]: blink
})
}, title && /*#__PURE__*/_react.default.createElement("div", {
style: styles?.title,
className: (0, _clsx.clsx)(`${itemCls}-title`, classNames?.title, {
[`${itemCls}-title-with-description`]: description
})
}, title), description && /*#__PURE__*/_react.default.createElement("div", {
style: styles?.description,
className: (0, _clsx.clsx)(`${itemCls}-description`, classNames?.description)
}, description)));
});
var _default = exports.default = Item;