Files
n8n-enterprise-unlocked/packages/frontend/editor-ui/src/components/IntersectionObserved.vue
कारतोफ्फेलस्क्रिप्ट™ d2dd1796a8 chore: Lintfix and format (no-changelog) (#13705)
2025-03-05 16:50:43 +01:00

41 lines
736 B
Vue

<script setup lang="ts">
import { nextTick, onBeforeUnmount, onMounted, ref } from 'vue';
import type { EventBus } from '@n8n/utils/event-bus';
import { createEventBus } from '@n8n/utils/event-bus';
const props = withDefaults(
defineProps<{
enabled: boolean;
eventBus: EventBus;
}>(),
{
enabled: false,
default: () => createEventBus(),
},
);
const observed = ref<IntersectionObserver | null>(null);
onMounted(async () => {
if (!props.enabled) {
return;
}
await nextTick();
props.eventBus.emit('observe', observed.value);
});
onBeforeUnmount(() => {
if (props.enabled) {
props.eventBus.emit('unobserve', observed.value);
}
});
</script>
<template>
<span ref="observed">
<slot></slot>
</span>
</template>