useSearchConfig.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useSearchConfig;
  7. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  8. var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
  9. var _vue = require("vue");
  10. var _warning = require("../../vc-util/warning");
  11. // Convert `showSearch` to unique config
  12. function useSearchConfig(showSearch) {
  13. var mergedShowSearch = (0, _vue.ref)(false);
  14. var mergedSearchConfig = (0, _vue.ref)({});
  15. (0, _vue.watchEffect)(function () {
  16. if (!showSearch.value) {
  17. mergedShowSearch.value = false;
  18. mergedSearchConfig.value = {};
  19. return;
  20. }
  21. var searchConfig = {
  22. matchInputWidth: true,
  23. limit: 50
  24. };
  25. if (showSearch.value && (0, _typeof2.default)(showSearch.value) === 'object') {
  26. searchConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, searchConfig), showSearch.value);
  27. }
  28. if (searchConfig.limit <= 0) {
  29. delete searchConfig.limit;
  30. if (process.env.NODE_ENV !== 'production') {
  31. (0, _warning.warning)(false, "'limit' of showSearch should be positive number or false.");
  32. }
  33. }
  34. mergedShowSearch.value = true;
  35. mergedSearchConfig.value = searchConfig;
  36. return;
  37. });
  38. return {
  39. showSearch: mergedShowSearch,
  40. searchConfig: mergedSearchConfig
  41. };
  42. }