index.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  2. const require_runtime = require('../../_virtual/_rolldown/runtime.js');
  3. const require_global_node = require('../../utils/vue/global-node.js');
  4. let vue = require("vue");
  5. let _vueuse_core = require("@vueuse/core");
  6. let _vue_shared = require("@vue/shared");
  7. //#region ../../packages/hooks/use-teleport/index.ts
  8. const useTeleport = (contentRenderer, appendToBody) => {
  9. const isTeleportVisible = (0, vue.ref)(false);
  10. if (!_vueuse_core.isClient) return {
  11. isTeleportVisible,
  12. showTeleport: _vue_shared.NOOP,
  13. hideTeleport: _vue_shared.NOOP,
  14. renderTeleport: _vue_shared.NOOP
  15. };
  16. let $el = null;
  17. const showTeleport = () => {
  18. isTeleportVisible.value = true;
  19. if ($el !== null) return;
  20. $el = require_global_node.createGlobalNode();
  21. };
  22. const hideTeleport = () => {
  23. isTeleportVisible.value = false;
  24. if ($el !== null) {
  25. require_global_node.removeGlobalNode($el);
  26. $el = null;
  27. }
  28. };
  29. const renderTeleport = () => {
  30. return appendToBody.value !== true ? contentRenderer() : isTeleportVisible.value ? [(0, vue.h)(vue.Teleport, { to: $el }, contentRenderer())] : void 0;
  31. };
  32. (0, vue.onUnmounted)(hideTeleport);
  33. return {
  34. isTeleportVisible,
  35. showTeleport,
  36. hideTeleport,
  37. renderTeleport
  38. };
  39. };
  40. //#endregion
  41. exports.useTeleport = useTeleport;
  42. //# sourceMappingURL=index.js.map