From d1ffc4c4dbac31d47a4036ce18a821fbefea3f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20=C4=B0pek?= Date: Thu, 9 Apr 2026 17:23:27 +0300 Subject: [PATCH] feat(annotation-canvas): optimize canvas resizing by using refs for strokes and currentStroke --- components/annotation-canvas.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/components/annotation-canvas.tsx b/components/annotation-canvas.tsx index fdc145c..06a1304 100644 --- a/components/annotation-canvas.tsx +++ b/components/annotation-canvas.tsx @@ -70,7 +70,15 @@ export const AnnotationCanvas = forwardRef { strokesRef.current = strokes; }, [strokes]); + useEffect(() => { currentStrokeRef.current = currentStroke; }, [currentStroke]); + + // Resize canvas to match container — listener registered once, never re-added. useEffect(() => { const resizeCanvas = () => { const canvas = canvasRef.current; @@ -82,13 +90,13 @@ export const AnnotationCanvas = forwardRef window.removeEventListener('resize', resizeCanvas); - }, [strokes, currentStroke, renderStrokes]); + }, [renderStrokes]); // renderStrokes is stable (useCallback with no deps that change) // Re-render on stroke changes useEffect(() => {