diff --git a/packages/editor-ui/src/components/canvas/elements/edges/CanvasConnectionLine.vue b/packages/editor-ui/src/components/canvas/elements/edges/CanvasConnectionLine.vue index dddf41c9593df..e4833cb4c2d72 100644 --- a/packages/editor-ui/src/components/canvas/elements/edges/CanvasConnectionLine.vue +++ b/packages/editor-ui/src/components/canvas/elements/edges/CanvasConnectionLine.vue @@ -2,7 +2,7 @@ /* eslint-disable vue/no-multiple-template-root */ import type { ConnectionLineProps } from '@vue-flow/core'; import { BaseEdge } from '@vue-flow/core'; -import { computed, useCssModule } from 'vue'; +import { computed, onMounted, ref, useCssModule } from 'vue'; import { getEdgeRenderData } from './utils'; import { useCanvas } from '@/composables/useCanvas'; import { NodeConnectionType } from 'n8n-workflow'; @@ -18,6 +18,13 @@ const connectionType = computed( () => parseCanvasConnectionHandleString(connectingHandle.value?.handleId).type, ); +const classes = computed(() => { + return { + [$style.edge]: true, + [$style.visible]: isVisible.value, + }; +}); + const edgeColor = computed(() => { if (connectionType.value !== NodeConnectionType.Main) { return 'var(--node-type-supplemental-color)'; @@ -37,13 +44,25 @@ const renderData = computed(() => ); const segments = computed(() => renderData.value.segments); + +/** + * Used to delay the visibility of the connection line to prevent flickering + * when the actual user intent is to click the plus button + */ +const isVisible = ref(false); + +onMounted(() => { + setTimeout(() => { + isVisible.value = true; + }, 300); +});