useValueTexts.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { computed } from 'vue';
  2. import useMemo from '../../_util/hooks/useMemo';
  3. import shallowequal from '../../_util/shallowequal';
  4. import { formatValue } from '../utils/dateUtil';
  5. export default function useValueTexts(value, _ref) {
  6. var formatList = _ref.formatList,
  7. generateConfig = _ref.generateConfig,
  8. locale = _ref.locale;
  9. var texts = useMemo(function () {
  10. if (!value.value) {
  11. return [[''], ''];
  12. }
  13. // We will convert data format back to first format
  14. var firstValueText = '';
  15. var fullValueTexts = [];
  16. for (var i = 0; i < formatList.value.length; i += 1) {
  17. var format = formatList.value[i];
  18. var formatStr = formatValue(value.value, {
  19. generateConfig: generateConfig.value,
  20. locale: locale.value,
  21. format: format
  22. });
  23. fullValueTexts.push(formatStr);
  24. if (i === 0) {
  25. firstValueText = formatStr;
  26. }
  27. }
  28. return [fullValueTexts, firstValueText];
  29. }, [value, formatList], function (next, prev) {
  30. return prev[0] !== next[0] || !shallowequal(prev[1], next[1]);
  31. });
  32. var fullValueTexts = computed(function () {
  33. return texts.value[0];
  34. });
  35. var firstValueText = computed(function () {
  36. return texts.value[1];
  37. });
  38. return [fullValueTexts, firstValueText];
  39. }