fix: improve desktop resize responsiveness

This commit is contained in:
Bohdan Triapitsyn
2026-06-05 13:36:39 +03:00
parent 4e1560a10e
commit f1675d27da
4 changed files with 169 additions and 103 deletions
@@ -271,24 +271,24 @@ export const MainLayout: React.FC = () => {
return;
}
let timeoutId: number | undefined;
let frameId: number | undefined;
const handleResize = () => {
if (timeoutId !== undefined) {
window.clearTimeout(timeoutId);
if (frameId !== undefined) {
return;
}
timeoutId = window.setTimeout(() => {
frameId = window.requestAnimationFrame(() => {
frameId = undefined;
useUIStore.getState().updateProportionalSidebarWidths();
}, 150);
});
};
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
if (timeoutId !== undefined) {
window.clearTimeout(timeoutId);
if (frameId !== undefined) {
window.cancelAnimationFrame(frameId);
}
};
}, []);
@@ -298,7 +298,7 @@ export const MainLayout: React.FC = () => {
return;
}
let timeoutId: number | undefined;
let frameId: number | undefined;
const handleResponsivePanels = () => {
const state = useUIStore.getState();
@@ -340,13 +340,13 @@ export const MainLayout: React.FC = () => {
};
const handleResize = () => {
if (timeoutId !== undefined) {
window.clearTimeout(timeoutId);
if (frameId !== undefined) {
return;
}
timeoutId = window.setTimeout(() => {
frameId = window.requestAnimationFrame(() => {
frameId = undefined;
handleResponsivePanels();
}, 100);
});
};
handleResponsivePanels();
@@ -354,8 +354,8 @@ export const MainLayout: React.FC = () => {
return () => {
window.removeEventListener('resize', handleResize);
if (timeoutId !== undefined) {
window.clearTimeout(timeoutId);
if (frameId !== undefined) {
window.cancelAnimationFrame(frameId);
}
};
}, [isMobile, isTablet, setBottomTerminalOpen, setRightSidebarOpen]);