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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user