UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

77 lines (76 loc) • 2.28 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useExpandIcon; var _react = _interopRequireDefault(require("react")); var _util = require("@rc-component/util"); var _clsx = require("clsx"); const InternalExpandIcon = props => { const { prefixCls, type, expanded, expandable, onClick, locale } = props; const iconPrefix = `${prefixCls}-row-expand-icon`; if (type === 'all' && !expandable) { return /*#__PURE__*/_react.default.createElement("span", { className: (0, _clsx.clsx)(iconPrefix, `${iconPrefix}-spaced`) }); } const ariaLabel = type === 'all' ? expanded ? locale.collapseAll : locale.expandAll : expanded ? locale.collapse : locale.expand; return /*#__PURE__*/_react.default.createElement("button", { type: "button", onClick: onClick, className: (0, _clsx.clsx)(iconPrefix, { [`${iconPrefix}-spaced`]: !expandable, [`${iconPrefix}-expanded`]: expandable && expanded, [`${iconPrefix}-collapsed`]: expandable && !expanded }), "aria-label": ariaLabel, "aria-expanded": expanded }); }; function useExpandIcon(locale, ExpandIcon, ...legacyRenderExpandIcon) { const MergedExpandIcon = (0, _util.useEvent)(props => { if (ExpandIcon) { return /*#__PURE__*/_react.default.createElement(ExpandIcon, { ...props }); } for (const renderExpandIcon of legacyRenderExpandIcon) { if (renderExpandIcon) { if (props.type === 'row') { const { prefixCls, record, expanded, expandable, onClick } = props; return renderExpandIcon({ prefixCls, record, expanded, expandable, onExpand: (_record, event) => onClick(event) }); } return /*#__PURE__*/_react.default.createElement(InternalExpandIcon, { ...props, locale: locale }); } } return /*#__PURE__*/_react.default.createElement(InternalExpandIcon, { ...props, locale: locale }); }); return MergedExpandIcon; }