UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

83 lines (82 loc) 3.75 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 _fallbackProp = _interopRequireDefault(require("../_util/fallbackProp")); var _warning = require("../_util/warning"); function useIcons({ suffixIcon, contextSuffixIcon, clearIcon, contextClearIcon, menuItemSelectedIcon, contextMenuItemSelectedIcon, removeIcon, contextRemoveIcon, loading, loadingIcon, contextLoadingIcon, searchIcon, contextSearchIcon, multiple, hasFeedback, showSuffixIcon, 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 getSuffixIconNode = arrowIcon => { if (suffixIcon === null && !hasFeedback && !showArrow) { return null; } return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon); }; // Arrow item icon let mergedSuffixIcon = null; if (suffixIcon !== undefined) { mergedSuffixIcon = getSuffixIconNode(suffixIcon); } else if (loading) { mergedSuffixIcon = getSuffixIconNode((0, _fallbackProp.default)(loadingIcon, contextLoadingIcon, /*#__PURE__*/React.createElement(_LoadingOutlined.default, { spin: true }))); } else { mergedSuffixIcon = ({ open, showSearch }) => { if (open && showSearch) { return getSuffixIconNode((0, _fallbackProp.default)(searchIcon, contextSearchIcon, /*#__PURE__*/React.createElement(_SearchOutlined.default, null))); } return getSuffixIconNode((0, _fallbackProp.default)(contextSuffixIcon, /*#__PURE__*/React.createElement(_DownOutlined.default, null))); }; } // 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, suffixIcon: mergedSuffixIcon, itemIcon: mergedItemIcon, removeIcon: mergedRemoveIcon }; }, [suffixIcon, contextSuffixIcon, clearIcon, contextClearIcon, menuItemSelectedIcon, contextMenuItemSelectedIcon, removeIcon, contextRemoveIcon, loading, loadingIcon, contextLoadingIcon, searchIcon, contextSearchIcon, multiple, hasFeedback, showSuffixIcon, feedbackIcon, showArrow]); }