Add resize event listener for line number adjustment in App.tsx

This commit is contained in:
2026-01-31 13:13:42 +01:00
parent 21787b2d7e
commit 62da17740a

View File

@@ -183,6 +183,22 @@ export default function App() {
return () => observer.disconnect(); return () => observer.disconnect();
}, [showLineNumbers]); }, [showLineNumbers]);
useEffect(() => {
if (!showLineNumbers) return;
let raf = 0;
const handleResize = () => {
if (raf) cancelAnimationFrame(raf);
raf = requestAnimationFrame(() => {
setMeasureTick((tick) => tick + 1);
});
};
window.addEventListener("resize", handleResize);
return () => {
window.removeEventListener("resize", handleResize);
if (raf) cancelAnimationFrame(raf);
};
}, [showLineNumbers]);
useLayoutEffect(() => { useLayoutEffect(() => {
if (!showLineNumbers) return; if (!showLineNumbers) return;
const textarea = textareaRef.current; const textarea = textareaRef.current;
@@ -196,7 +212,7 @@ export default function App() {
if (lineNumbersRef.current) { if (lineNumbersRef.current) {
lineNumbersRef.current.scrollTop = textarea.scrollTop; lineNumbersRef.current.scrollTop = textarea.scrollTop;
} }
}, [lines, showLineNumbers, textSize, measureTick]); }, [lines, showLineNumbers, textSize, measureTick, sidebarCollapsed, historyOpen]);
useEffect(() => { useEffect(() => {
if (showLineNumbers && textareaRef.current && lineNumbersRef.current) { if (showLineNumbers && textareaRef.current && lineNumbersRef.current) {