UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

67 lines (55 loc) 2.38 kB
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } import * as React from 'react'; import classNames from 'classnames'; import LoadingOutlined from '@ant-design/icons/LoadingOutlined'; import FileOutlined from '@ant-design/icons/FileOutlined'; import MinusSquareOutlined from '@ant-design/icons/MinusSquareOutlined'; import PlusSquareOutlined from '@ant-design/icons/PlusSquareOutlined'; import CaretDownFilled from '@ant-design/icons/CaretDownFilled'; import { isValidElement, cloneElement } from '../../_util/reactNode'; export default function renderSwitcherIcon(prefixCls, switcherIcon, showLine, _ref) { var isLeaf = _ref.isLeaf, expanded = _ref.expanded, loading = _ref.loading; if (loading) { return /*#__PURE__*/React.createElement(LoadingOutlined, { className: "".concat(prefixCls, "-switcher-loading-icon") }); } var showLeafIcon; if (showLine && _typeof(showLine) === 'object') { showLeafIcon = showLine.showLeafIcon; } if (isLeaf) { if (showLine) { if (_typeof(showLine) === 'object' && !showLeafIcon) { return /*#__PURE__*/React.createElement("span", { className: "".concat(prefixCls, "-switcher-leaf-line") }); } return /*#__PURE__*/React.createElement(FileOutlined, { className: "".concat(prefixCls, "-switcher-line-icon") }); } return null; } var switcherCls = "".concat(prefixCls, "-switcher-icon"); if (isValidElement(switcherIcon)) { return cloneElement(switcherIcon, { className: classNames(switcherIcon.props.className || '', switcherCls) }); } if (switcherIcon) { return switcherIcon; } if (showLine) { return expanded ? /*#__PURE__*/React.createElement(MinusSquareOutlined, { className: "".concat(prefixCls, "-switcher-line-icon") }) : /*#__PURE__*/React.createElement(PlusSquareOutlined, { className: "".concat(prefixCls, "-switcher-line-icon") }); } return /*#__PURE__*/React.createElement(CaretDownFilled, { className: switcherCls }); }