n8n/packages/editor-ui/src/components/IntersectionObserved.vue
Alex Grozav 0154a97773
feat(editor): Replace root events with event bus events (no-changelog) (#6454)
* feat: replace root events with event bus events

* fix: prevent cypress from replacing global with globalThis in import path

* feat: remove emitter mixin

* fix: replace component events with event bus

* fix: fix linting issue

* fix: fix breaking expression switch

* chore: prettify ndv e2e suite code
2023-06-20 13:00:53 +03:00

41 lines
772 B
Vue

<template>
<span ref="observed">
<slot></slot>
</span>
</template>
<script lang="ts">
import type { PropType } from 'vue';
import { defineComponent } from 'vue';
import type { EventBus } from 'n8n-design-system/utils';
import { createEventBus } from 'n8n-design-system/utils';
export default defineComponent({
name: 'IntersectionObserved',
props: {
enabled: {
type: Boolean,
default: false,
},
eventBus: {
type: Object as PropType<EventBus>,
default: () => createEventBus(),
},
},
mounted() {
if (!this.enabled) {
return;
}
this.$nextTick(() => {
this.eventBus.emit('observe', this.$refs.observed);
});
},
beforeDestroy() {
if (this.enabled) {
this.eventBus.emit('unobserve', this.$refs.observed);
}
},
});
</script>