index.mjs 835 B

12345678910111213141516171819202122232425262728
  1. import { nextTick, unref, watch } from "vue";
  2. //#region ../../packages/hooks/use-intermediate-render/index.ts
  3. const useDelayedRender = ({ indicator, intermediateIndicator, shouldSetIntermediate = () => true, beforeShow, afterShow, afterHide, beforeHide }) => {
  4. watch(() => unref(indicator), (val) => {
  5. if (val) {
  6. beforeShow?.();
  7. nextTick(() => {
  8. if (!unref(indicator)) return;
  9. if (shouldSetIntermediate("show")) intermediateIndicator.value = true;
  10. });
  11. } else {
  12. beforeHide?.();
  13. nextTick(() => {
  14. if (unref(indicator)) return;
  15. if (shouldSetIntermediate("hide")) intermediateIndicator.value = false;
  16. });
  17. }
  18. });
  19. watch(() => intermediateIndicator.value, (val) => {
  20. if (val) afterShow?.();
  21. else afterHide?.();
  22. });
  23. };
  24. //#endregion
  25. export { useDelayedRender };
  26. //# sourceMappingURL=index.mjs.map