@rxflow/base
Version:
BaseFlow - 核心 Flow 组件库
58 lines (56 loc) • 2.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CollapseButton = CollapseButton;
var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/lib/icons/LoadingOutlined"));
var _MinusOutlined = _interopRequireDefault(require("@ant-design/icons/MinusOutlined"));
var _PlusOutlined = _interopRequireDefault(require("@ant-design/icons/PlusOutlined"));
var _ahooks = require("ahooks");
var _classcat = _interopRequireDefault(require("classcat"));
var _hooks = require("../../hooks");
require("./index.less");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @author: yanxianliang
* @date: 2025-06-21 13:53
* @desc: 折叠按钮
*
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
*/
const stopClickEvent = event => event.stopPropagation();
function CollapseButton(props) {
const {
collapsed = true,
position = 'right',
count,
onCollapse,
loading,
direction = 'horizontal',
autoHideCountWhenExpanded: _autoHideCountWhenExpanded = false
} = props;
const theme = (0, _hooks.useTheme)();
const {
collapseButtonShape = 'rect',
autoHideCountWhenExpanded = false,
showCount = true
} = theme;
const onClick = (0, _ahooks.useMemoizedFn)(() => {
onCollapse?.(!collapsed);
});
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: (0, _classcat.default)(['rxflow-collapse', `rxflow-collapse-${position}`]),
onClick: stopClickEvent,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: (0, _classcat.default)([`rxflow-collapse-icon`, `rxflow-collapse-shape-${collapseButtonShape}`, {
['rxflow-collapse-loading']: loading
}]),
onClick: loading ? undefined : onClick,
children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingOutlined.default, {}) : collapsed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_PlusOutlined.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_MinusOutlined.default, {})
}), (autoHideCountWhenExpanded || _autoHideCountWhenExpanded) && !collapsed || !showCount ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: (0, _classcat.default)([`rxflow-collapse-count`, direction === 'vertical' ? 'rxflow-collapse-vertical' : null]),
children: count
})]
});
}