From 7d992b5ed755db2d42ba3100b88f110dac4e946d Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Thu, 6 Oct 2022 18:22:43 +0200 Subject: [PATCH] feat(nodes): add nodeRef injection --- packages/vue-flow/src/components/Nodes/NodeWrapper.vue | 4 +++- packages/vue-flow/src/context/index.ts | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue index b523c566..873afe05 100644 --- a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue +++ b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue @@ -2,7 +2,7 @@ import { useVModel } from '@vueuse/core' import { useDrag, useNodeHooks, useVueFlow } from '../../composables' import type { GraphNode, NodeComponent, SnapGrid, XYZPosition } from '../../types' -import { NodeId } from '../../context' +import { NodeId, NodeRef } from '../../context' import { getConnectedEdges, getXYZPos, handleNodeClick } from '../../utils' const { id, type, name, draggable, selectable, connectable, snapGrid, ...props } = defineProps<{ @@ -41,6 +41,8 @@ const parentNode = $computed(() => (node.parentNode ? getNode(node.parentNode) : const nodeElement = ref() +provide(NodeRef, nodeElement) + const { emit, on } = useNodeHooks(node, emits) const dragging = useDrag({ diff --git a/packages/vue-flow/src/context/index.ts b/packages/vue-flow/src/context/index.ts index 0a023dba..b677c22c 100644 --- a/packages/vue-flow/src/context/index.ts +++ b/packages/vue-flow/src/context/index.ts @@ -1,6 +1,7 @@ -import type { InjectionKey, Slots as TSlots } from 'vue' +import type { InjectionKey, Ref, Slots as TSlots } from 'vue' import type { VueFlowStore } from '~/types' export const VueFlow: InjectionKey = Symbol('vueFlow') export const NodeId: InjectionKey = Symbol('nodeId') +export const NodeRef: InjectionKey> = Symbol('nodeRef') export const Slots: InjectionKey = Symbol('slots')