@@ -3,7 +3,7 @@ import React, { useRef, useEffect, useCallback } from 'react';
33const Minimap = ( { nodes, edges, camera, canvasSize, getNodeDimensions, nodeTypes } ) => {
44 const minimapRef = useRef ( null ) ;
55
6- const calculateBounds = ( nodes , ctx ) => {
6+ const calculateBounds = useCallback ( ( nodes , ctx ) => {
77 if ( ! nodes . length ) return null ;
88
99 let minX = Infinity , minY = Infinity , maxX = - Infinity , maxY = - Infinity ;
@@ -21,9 +21,9 @@ const Minimap = ({ nodes, edges, camera, canvasSize, getNodeDimensions, nodeType
2121 } ) ;
2222
2323 return minX === Infinity ? null : { minX, minY, maxX, maxY } ;
24- } ;
24+ } , [ getNodeDimensions ] ) ;
2525
26- const drawEdge = ( ctx , edge , nodes , scale , bounds ) => {
26+ const drawEdge = useCallback ( ( ctx , edge , nodes , scale , bounds ) => {
2727 const startNode = nodes . find ( n => n . id === edge . start . nodeId ) ;
2828 const endNode = nodes . find ( n => n . id === edge . end . nodeId ) ;
2929 if ( ! startNode || ! endNode ) return ;
@@ -40,9 +40,9 @@ const Minimap = ({ nodes, edges, camera, canvasSize, getNodeDimensions, nodeType
4040 ctx . strokeStyle = '#666' ;
4141 ctx . lineWidth = 1 ;
4242 ctx . stroke ( ) ;
43- } ;
43+ } , [ getNodeDimensions ] ) ;
4444
45- const drawNode = ( ctx , node , scale , bounds ) => {
45+ const drawNode = useCallback ( ( ctx , node , scale , bounds ) => {
4646 const { width, height } = getNodeDimensions ( node , ctx ) ;
4747 const nodeType = nodeTypes [ node . type ] ;
4848
@@ -73,7 +73,7 @@ const Minimap = ({ nodes, edges, camera, canvasSize, getNodeDimensions, nodeType
7373 ( node . x - bounds . minX + 5 ) * scale ,
7474 ( node . y - bounds . minY + 15 ) * scale
7575 ) ;
76- } ;
76+ } , [ getNodeDimensions , nodeTypes ] ) ;
7777
7878 const drawViewport = ( ctx , camera , canvasSize , scale , bounds ) => {
7979 const viewportWidth = canvasSize . width / camera . scale ;
@@ -121,7 +121,7 @@ const Minimap = ({ nodes, edges, camera, canvasSize, getNodeDimensions, nodeType
121121 nodes . forEach ( node => drawNode ( minimapCtx , node , scale , bounds ) ) ;
122122 drawViewport ( minimapCtx , camera , canvasSize , scale , bounds ) ;
123123
124- } , [ nodes , edges , camera , canvasSize , getNodeDimensions , nodeTypes ] ) ;
124+ } , [ nodes , edges , camera , canvasSize , calculateBounds , drawEdge , drawNode ] ) ;
125125
126126 useEffect ( ( ) => {
127127 try {
0 commit comments