UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

92 lines (91 loc) • 4.08 kB
"use strict"; "use client"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useIcons; var React = _interopRequireWildcard(require("react")); var _CheckOutlined = _interopRequireDefault(require("@ant-design/icons/CheckOutlined")); var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled")); var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined")); var _DownOutlined = _interopRequireDefault(require("@ant-design/icons/DownOutlined")); var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined")); var _SearchOutlined = _interopRequireDefault(require("@ant-design/icons/SearchOutlined")); var _util = require("@rc-component/util"); var _fallbackProp = _interopRequireDefault(require("../_util/fallbackProp")); var _is = require("../_util/is"); var _warning = require("../_util/warning"); function useIcons({ suffix, contextSuffix, clearIcon, contextClearIcon, menuItemSelectedIcon, contextMenuItemSelectedIcon, removeIcon, contextRemoveIcon, loading, loadingIcon, contextLoadingIcon, searchIcon, contextSearchIcon, multiple, hasFeedback, showSuffix, feedbackIcon, showArrow, componentName }) { if (process.env.NODE_ENV !== 'production') { const warning = (0, _warning.devUseWarning)(componentName); warning.deprecated(!clearIcon, 'clearIcon', 'allowClear={{ clearIcon: React.ReactNode }}'); } return React.useMemo(() => { // Clear Icon const mergedClearIcon = (0, _fallbackProp.default)(clearIcon, contextClearIcon, /*#__PURE__*/React.createElement(_CloseCircleFilled.default, null)); // Validation Feedback Icon const getSuffixNode = suffixNode => { if (!(0, _util.isReactRenderable)(suffixNode) && !hasFeedback && !showArrow) { return null; } return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffix !== false && suffixNode, hasFeedback && feedbackIcon); }; // Suffix let mergedSuffix = null; if (suffix !== undefined) { mergedSuffix = (0, _is.isFunction)(suffix) ? props => getSuffixNode(suffix(props)) : getSuffixNode(suffix); } else if (loading) { mergedSuffix = getSuffixNode((0, _fallbackProp.default)(loadingIcon, contextLoadingIcon, /*#__PURE__*/React.createElement(_LoadingOutlined.default, { spin: true, "aria-hidden": "true" }))); } else { mergedSuffix = props => { const { open, showSearch } = props; if (open && showSearch) { return getSuffixNode((0, _fallbackProp.default)(searchIcon, contextSearchIcon, /*#__PURE__*/React.createElement(_SearchOutlined.default, { "aria-hidden": "true" }))); } const fallbackSuffix = (0, _fallbackProp.default)(contextSuffix, /*#__PURE__*/React.createElement(_DownOutlined.default, { "aria-hidden": "true" })); return getSuffixNode((0, _is.isFunction)(fallbackSuffix) ? fallbackSuffix(props) : fallbackSuffix); }; } // Checked item icon const mergedItemIcon = (0, _fallbackProp.default)(menuItemSelectedIcon, contextMenuItemSelectedIcon, multiple ? /*#__PURE__*/React.createElement(_CheckOutlined.default, null) : null); const mergedRemoveIcon = (0, _fallbackProp.default)(removeIcon, contextRemoveIcon, /*#__PURE__*/React.createElement(_CloseOutlined.default, null)); return { clearIcon: mergedClearIcon, suffix: mergedSuffix, itemIcon: mergedItemIcon, removeIcon: mergedRemoveIcon }; }, [suffix, contextSuffix, clearIcon, contextClearIcon, menuItemSelectedIcon, contextMenuItemSelectedIcon, removeIcon, contextRemoveIcon, loading, loadingIcon, contextLoadingIcon, searchIcon, contextSearchIcon, multiple, hasFeedback, showSuffix, feedbackIcon, showArrow]); }