UNPKG

@ant-design/x

Version:

Craft AI-driven interfaces effortlessly

63 lines (62 loc) 2.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.GroupTitleContext = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _icons = require("@ant-design/icons"); var _motion = _interopRequireDefault(require("@rc-component/motion")); var _clsx = require("clsx"); var _react = _interopRequireDefault(require("react")); const GroupTitleContext = exports.GroupTitleContext = /*#__PURE__*/_react.default.createContext(null); const GroupTitle = ({ className, children }) => { const { prefixCls, groupInfo, enableCollapse, expandedKeys, onItemExpand, collapseMotion } = _react.default.useContext(GroupTitleContext) || {}; const { label, name, collapsible } = groupInfo || {}; const labelNode = typeof label === 'function' ? label(name, { groupInfo }) : label || name; const mergeCollapsible = collapsible && enableCollapse; const expandFun = () => { if (mergeCollapsible) { onItemExpand?.(groupInfo.name); } }; const groupOpen = mergeCollapsible && !!expandedKeys?.includes?.(name); return /*#__PURE__*/_react.default.createElement("li", { className: className }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.clsx)(`${prefixCls}-group-title`, { [`${prefixCls}-group-title-collapsible`]: mergeCollapsible }), onClick: expandFun }, labelNode && /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.clsx)(`${prefixCls}-group-label`) }, labelNode), mergeCollapsible && /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.clsx)(`${prefixCls}-group-collapse-trigger `, `${prefixCls}-group-collapse-trigger-${groupOpen ? 'open' : 'close'}`) }, /*#__PURE__*/_react.default.createElement(_icons.RightOutlined, null))), /*#__PURE__*/_react.default.createElement(_motion.default, (0, _extends2.default)({}, collapseMotion, { visible: mergeCollapsible ? groupOpen : true }), ({ className: motionClassName, style }, motionRef) => /*#__PURE__*/_react.default.createElement("div", { className: (0, _clsx.clsx)(motionClassName), ref: motionRef, style: style }, children))); }; var _default = exports.default = GroupTitle;