useAllowClear.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.useAllowClear = void 0;
  7. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  8. var _TransBtn = _interopRequireDefault(require("../TransBtn"));
  9. var _react = _interopRequireDefault(require("react"));
  10. var useAllowClear = exports.useAllowClear = function useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon) {
  11. var disabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
  12. var mergedSearchValue = arguments.length > 6 ? arguments[6] : undefined;
  13. var mode = arguments.length > 7 ? arguments[7] : undefined;
  14. var mergedClearIcon = _react.default.useMemo(function () {
  15. if ((0, _typeof2.default)(allowClear) === 'object') {
  16. return allowClear.clearIcon;
  17. }
  18. if (clearIcon) {
  19. return clearIcon;
  20. }
  21. }, [allowClear, clearIcon]);
  22. var mergedAllowClear = _react.default.useMemo(function () {
  23. if (!disabled && !!allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {
  24. return true;
  25. }
  26. return false;
  27. }, [allowClear, disabled, displayValues.length, mergedSearchValue, mode]);
  28. return {
  29. allowClear: mergedAllowClear,
  30. clearIcon: /*#__PURE__*/_react.default.createElement(_TransBtn.default, {
  31. className: "".concat(prefixCls, "-clear"),
  32. onMouseDown: onClearMouseDown,
  33. customizeIcon: mergedClearIcon
  34. }, "\xD7")
  35. };
  36. };