useSearchConfig.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import { ref, shallowRef, watchEffect } from 'vue';
  3. import { warning } from '../../vc-util/warning';
  4. // Convert `showSearch` to unique config
  5. export default function useSearchConfig(showSearch) {
  6. const mergedShowSearch = shallowRef(false);
  7. const mergedSearchConfig = ref({});
  8. watchEffect(() => {
  9. if (!showSearch.value) {
  10. mergedShowSearch.value = false;
  11. mergedSearchConfig.value = {};
  12. return;
  13. }
  14. let searchConfig = {
  15. matchInputWidth: true,
  16. limit: 50
  17. };
  18. if (showSearch.value && typeof showSearch.value === 'object') {
  19. searchConfig = _extends(_extends({}, searchConfig), showSearch.value);
  20. }
  21. if (searchConfig.limit <= 0) {
  22. delete searchConfig.limit;
  23. if (process.env.NODE_ENV !== 'production') {
  24. warning(false, "'limit' of showSearch should be positive number or false.");
  25. }
  26. }
  27. mergedShowSearch.value = true;
  28. mergedSearchConfig.value = searchConfig;
  29. return;
  30. });
  31. return {
  32. showSearch: mergedShowSearch,
  33. searchConfig: mergedSearchConfig
  34. };
  35. }