useSearchConfig.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  8. var _vue = require("vue");
  9. var _warning = require("../../vc-util/warning");
  10. // Convert `showSearch` to unique config
  11. function useSearchConfig(showSearch) {
  12. const mergedShowSearch = (0, _vue.shallowRef)(false);
  13. const mergedSearchConfig = (0, _vue.ref)({});
  14. (0, _vue.watchEffect)(() => {
  15. if (!showSearch.value) {
  16. mergedShowSearch.value = false;
  17. mergedSearchConfig.value = {};
  18. return;
  19. }
  20. let searchConfig = {
  21. matchInputWidth: true,
  22. limit: 50
  23. };
  24. if (showSearch.value && typeof showSearch.value === 'object') {
  25. searchConfig = (0, _extends2.default)((0, _extends2.default)({}, searchConfig), showSearch.value);
  26. }
  27. if (searchConfig.limit <= 0) {
  28. delete searchConfig.limit;
  29. if (process.env.NODE_ENV !== 'production') {
  30. (0, _warning.warning)(false, "'limit' of showSearch should be positive number or false.");
  31. }
  32. }
  33. mergedShowSearch.value = true;
  34. mergedSearchConfig.value = searchConfig;
  35. return;
  36. });
  37. return {
  38. showSearch: mergedShowSearch,
  39. searchConfig: mergedSearchConfig
  40. };
  41. }