useTextValueMapping.js 840 B

123456789101112131415161718192021222324252627
  1. import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
  2. import { ref, watch } from 'vue';
  3. export default function useTextValueMapping(_ref) {
  4. var valueTexts = _ref.valueTexts,
  5. onTextChange = _ref.onTextChange;
  6. var text = ref('');
  7. function triggerTextChange(value) {
  8. text.value = value;
  9. onTextChange(value);
  10. }
  11. function resetText() {
  12. text.value = valueTexts.value[0];
  13. }
  14. watch(function () {
  15. return _toConsumableArray(valueTexts.value);
  16. }, function (cur) {
  17. var pre = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  18. if (cur.join('||') !== pre.join('||') && valueTexts.value.every(function (valText) {
  19. return valText !== text.value;
  20. })) {
  21. resetText();
  22. }
  23. }, {
  24. immediate: true
  25. });
  26. return [text, triggerTextChange, resetText];
  27. }