index.mjs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { watch, unref, nextTick } from 'vue';
  2. const useDelayedRender = ({
  3. indicator,
  4. intermediateIndicator,
  5. shouldSetIntermediate = () => true,
  6. beforeShow,
  7. afterShow,
  8. afterHide,
  9. beforeHide
  10. }) => {
  11. watch(
  12. () => unref(indicator),
  13. (val) => {
  14. if (val) {
  15. beforeShow == null ? void 0 : beforeShow();
  16. nextTick(() => {
  17. if (!unref(indicator))
  18. return;
  19. if (shouldSetIntermediate("show")) {
  20. intermediateIndicator.value = true;
  21. }
  22. });
  23. } else {
  24. beforeHide == null ? void 0 : beforeHide();
  25. nextTick(() => {
  26. if (unref(indicator))
  27. return;
  28. if (shouldSetIntermediate("hide")) {
  29. intermediateIndicator.value = false;
  30. }
  31. });
  32. }
  33. }
  34. );
  35. watch(
  36. () => intermediateIndicator.value,
  37. (val) => {
  38. if (val) {
  39. afterShow == null ? void 0 : afterShow();
  40. } else {
  41. afterHide == null ? void 0 : afterHide();
  42. }
  43. }
  44. );
  45. };
  46. export { useDelayedRender };
  47. //# sourceMappingURL=index.mjs.map