useTextValueMapping.js 673 B

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