useIcons.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. "use strict";
  2. "use client";
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = useIcons;
  9. var React = _interopRequireWildcard(require("react"));
  10. var _CheckOutlined = _interopRequireDefault(require("@ant-design/icons/CheckOutlined"));
  11. var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons/CloseCircleFilled"));
  12. var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
  13. var _DownOutlined = _interopRequireDefault(require("@ant-design/icons/DownOutlined"));
  14. var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/LoadingOutlined"));
  15. var _SearchOutlined = _interopRequireDefault(require("@ant-design/icons/SearchOutlined"));
  16. var _warning = require("../_util/warning");
  17. function useIcons({
  18. suffixIcon,
  19. clearIcon,
  20. menuItemSelectedIcon,
  21. removeIcon,
  22. loading,
  23. multiple,
  24. hasFeedback,
  25. prefixCls,
  26. showSuffixIcon,
  27. feedbackIcon,
  28. showArrow,
  29. componentName
  30. }) {
  31. if (process.env.NODE_ENV !== 'production') {
  32. const warning = (0, _warning.devUseWarning)(componentName);
  33. warning.deprecated(!clearIcon, 'clearIcon', 'allowClear={{ clearIcon: React.ReactNode }}');
  34. }
  35. // Clear Icon
  36. const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(_CloseCircleFilled.default, null);
  37. // Validation Feedback Icon
  38. const getSuffixIconNode = arrowIcon => {
  39. if (suffixIcon === null && !hasFeedback && !showArrow) {
  40. return null;
  41. }
  42. return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon);
  43. };
  44. // Arrow item icon
  45. let mergedSuffixIcon = null;
  46. if (suffixIcon !== undefined) {
  47. mergedSuffixIcon = getSuffixIconNode(suffixIcon);
  48. } else if (loading) {
  49. mergedSuffixIcon = getSuffixIconNode(/*#__PURE__*/React.createElement(_LoadingOutlined.default, {
  50. spin: true
  51. }));
  52. } else {
  53. const iconCls = `${prefixCls}-suffix`;
  54. mergedSuffixIcon = ({
  55. open,
  56. showSearch
  57. }) => {
  58. if (open && showSearch) {
  59. return getSuffixIconNode(/*#__PURE__*/React.createElement(_SearchOutlined.default, {
  60. className: iconCls
  61. }));
  62. }
  63. return getSuffixIconNode(/*#__PURE__*/React.createElement(_DownOutlined.default, {
  64. className: iconCls
  65. }));
  66. };
  67. }
  68. // Checked item icon
  69. let mergedItemIcon = null;
  70. if (menuItemSelectedIcon !== undefined) {
  71. mergedItemIcon = menuItemSelectedIcon;
  72. } else if (multiple) {
  73. mergedItemIcon = /*#__PURE__*/React.createElement(_CheckOutlined.default, null);
  74. } else {
  75. mergedItemIcon = null;
  76. }
  77. let mergedRemoveIcon = null;
  78. if (removeIcon !== undefined) {
  79. mergedRemoveIcon = removeIcon;
  80. } else {
  81. mergedRemoveIcon = /*#__PURE__*/React.createElement(_CloseOutlined.default, null);
  82. }
  83. return {
  84. clearIcon: mergedClearIcon,
  85. suffixIcon: mergedSuffixIcon,
  86. itemIcon: mergedItemIcon,
  87. removeIcon: mergedRemoveIcon
  88. };
  89. }