fix: remove ResizeObserver to prevent infinite resize loop

The ResizeObserver triggered fit() which changed canvas dimensions,
triggering the observer again in an infinite loop. We already have
window resize handling and delayed fit() calls, so the observer was
redundant.
This commit is contained in:
Fusion
2026-05-24 14:23:34 +02:00
parent 0baf7f7750
commit c49bb028c4
-22
View File
@@ -242,25 +242,6 @@ export const TerminalComponent: React.FC<TerminalProps> = ({
window.addEventListener("resize", handleResize);
// Watch container size changes (keyboard, header auto-hide, etc.)
let resizeObserver: ResizeObserver | null = null;
if (terminalRef.current && typeof ResizeObserver !== "undefined") {
resizeObserver = new ResizeObserver(() => {
fitAddon.fit();
const { cols, rows } = term;
if (ws.readyState === WebSocket.OPEN) {
ws.send(
JSON.stringify({
type: "resize",
cols,
rows,
})
);
}
});
resizeObserver.observe(terminalRef.current);
}
// Notify parent about terminal readiness
if (onTerminalReadyRef.current) {
const sendData = (data: string) => {
@@ -289,9 +270,6 @@ export const TerminalComponent: React.FC<TerminalProps> = ({
return () => {
clearTimeout(resizeTimeout);
window.removeEventListener("resize", handleResize);
if (resizeObserver) {
resizeObserver.disconnect();
}
document.removeEventListener("visibilitychange", handleVisibilityChange);
ws.close();
term.dispose();