UNPKG

@ant-design/x

Version:

Craft AI-driven interfaces effortlessly

100 lines (96 loc) 3.61 kB
"use strict"; 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;