diff --git a/src/additional-components/Background/index.tsx b/src/additional-components/Background/index.tsx index b2d54400..194b339a 100644 --- a/src/additional-components/Background/index.tsx +++ b/src/additional-components/Background/index.tsx @@ -22,7 +22,7 @@ const Background: FC = ({ }) => { const ref = useRef(null); const [patternId, setPatternId] = useState(null); - const [x, y, scale] = useStore(transformSelector); + const [tX, tY, tScale] = useStore(transformSelector); useEffect(() => { // when there are multiple flows on a page we need to make sure that every background gets its own pattern. @@ -31,18 +31,17 @@ const Background: FC = ({ setPatternId(`pattern-${index}`); }, []); - const bgClasses = cc(['react-flow__background', 'react-flow__container', className]); - const scaledGap = gap * scale; - const xOffset = x % scaledGap; - const yOffset = y % scaledGap; + const scaledGap = gap * tScale; + const xOffset = tX % scaledGap; + const yOffset = tY % scaledGap; const isLines = variant === BackgroundVariant.Lines; const bgColor = color ? color : defaultColors[variant]; - const path = isLines ? createGridLinesPath(scaledGap, size, bgColor) : createGridDotsPath(size * scale, bgColor); + const path = isLines ? createGridLinesPath(scaledGap, size, bgColor) : createGridDotsPath(size * tScale, bgColor); return ( { - onPaneClick?.(event); - resetSelectedElements(); + const onClick = (event: MouseEvent) => { + onPaneClick?.(event); + resetSelectedElements(); - store.setState({ nodesSelectionActive: false }); - }, - [onPaneClick] - ); - - const onContextMenu = useCallback((event: MouseEvent) => onPaneContextMenu?.(event), [onPaneContextMenu]); - const onWheel = useCallback((event: WheelEvent) => onPaneScroll?.(event), [onPaneScroll]); + store.setState({ nodesSelectionActive: false }); + }; + const onContextMenu = (event: MouseEvent) => onPaneContextMenu?.(event); + const onWheel = (event: WheelEvent) => onPaneScroll?.(event); return ( ({ nodesConnectable: s.nodesConnectable, elementsSelectable: s.elementsSelectable, updateNodeDimensions: s.updateNodeDimensions, - nodeInternals: s.nodeInternals, }); const NodeRenderer = (props: NodeRendererProps) => { diff --git a/src/hooks/useVisibleNodes.ts b/src/hooks/useVisibleNodes.ts index 8bd2e37d..ebda8953 100644 --- a/src/hooks/useVisibleNodes.ts +++ b/src/hooks/useVisibleNodes.ts @@ -2,6 +2,7 @@ import { useCallback } from 'react'; import { useStore } from '../store'; import { getNodesInside } from '../utils/graph'; + import { ReactFlowState } from '../types'; function useVisibleNodes(onlyRenderVisible: boolean) { @@ -10,7 +11,7 @@ function useVisibleNodes(onlyRenderVisible: boolean) { (s: ReactFlowState) => { return onlyRenderVisible ? getNodesInside(s.nodeInternals, { x: 0, y: 0, width: s.width, height: s.height }, s.transform, true) - : Array.from(s.nodeInternals).map(([_, node]) => node); + : Array.from(s.nodeInternals.values()); }, [onlyRenderVisible] )