diff --git a/src/additional-components/Controls/index.tsx b/src/additional-components/Controls/index.tsx index b4692620..02de356c 100644 --- a/src/additional-components/Controls/index.tsx +++ b/src/additional-components/Controls/index.tsx @@ -31,7 +31,7 @@ export const ControlButton = defineComponent({ }, setup(props, { slots }) { return () => ( - ); @@ -85,23 +85,27 @@ const Controls = defineComponent({ setup(props, { slots }) { const pinia = store(); const isVisible = ref(false); - const { zoomIn, zoomOut, fitView } = useZoomPanHelper(); + const zoomHelper = ref(useZoomPanHelper()); + + onMounted(() => { + zoomHelper.value = useZoomPanHelper(); + }); const isInteractive = pinia.nodesDraggable && pinia.nodesConnectable && pinia.elementsSelectable; const mapClasses = ['react-flow__controls']; const onZoomInHandler = () => { - zoomIn?.(); + zoomHelper.value.zoomIn?.(); props.onZoomIn?.(); }; const onZoomOutHandler = () => { - zoomOut?.(); + zoomHelper.value.zoomOut?.(); props.onZoomOut?.(); }; const onFitViewHandler = () => { - fitView?.(props.fitViewParams); + zoomHelper.value.fitView?.(props.fitViewParams); props.onFitView?.(); }; diff --git a/src/components/Edges/wrapEdge.tsx b/src/components/Edges/wrapEdge.tsx index a1ea5fb7..6d2f8ee8 100644 --- a/src/components/Edges/wrapEdge.tsx +++ b/src/components/Edges/wrapEdge.tsx @@ -13,11 +13,11 @@ export default (EdgeComponent: any): Component => { const pinia = store(); const updating = ref(false); const inactive = !props.elementsSelectable && !props.onClick; - const edgeClasses = [ + const edgeClasses = computed(() => [ 'react-flow__edge', `react-flow__edge-${props.type}`, { selected: props.selected, animated: props.animated, inactive, updating: updating.value } - ]; + ]); const edgeElement = computed(() => { const el: Edge = { @@ -52,19 +52,19 @@ export default (EdgeComponent: any): Component => { }; const onEdgeContextMenu = (event: MouseEvent) => { - if (props.onContextMenu) props.onContextMenu?.(event, edgeElement.value); + if (typeof props.onContextMenu === 'function') props.onContextMenu?.(event, edgeElement.value); }; const onEdgeMouseEnter = (event: MouseEvent) => { - if (props.onMouseEnter) props.onMouseEnter?.(event, edgeElement.value); + if (typeof props.onMouseEnter === 'function') props.onMouseEnter?.(event, edgeElement.value); }; const onEdgeMouseMove = (event: MouseEvent) => { - if (props.onMouseMove) props.onMouseMove?.(event, edgeElement.value); + if (typeof props.onMouseMove === 'function') props.onMouseMove?.(event, edgeElement.value); }; const onEdgeMouseLeave = (event: MouseEvent) => { - if (props.onMouseLeave) props.onMouseLeave?.(event, edgeElement.value); + if (typeof props.onMouseLeave === 'function') props.onMouseLeave?.(event, edgeElement.value); }; const handleEdgeUpdater = (event: MouseEvent, isSourceHandle: boolean) => { @@ -113,7 +113,7 @@ export default (EdgeComponent: any): Component => { return () => (