diff --git a/src/frontend/apps/impress/src/stores/useResponsiveStore.tsx b/src/frontend/apps/impress/src/stores/useResponsiveStore.tsx index d69ae69c5..1b74e1c36 100644 --- a/src/frontend/apps/impress/src/stores/useResponsiveStore.tsx +++ b/src/frontend/apps/impress/src/stores/useResponsiveStore.tsx @@ -42,6 +42,8 @@ export const useResponsiveStore = create((set) => ({ screenWidth: initialState.screenWidth, setScreenSize: (size: ScreenSize) => set(() => ({ screenSize: size })), initializeResizeListener: () => { + let pendingResize = false; + const resizeHandler = () => { const width = window.innerWidth; if (width < BREAKPOINTS.SMALL_MOBILE) { @@ -89,10 +91,16 @@ export const useResponsiveStore = create((set) => ({ let resizeTimeout: ReturnType | undefined; const debouncedResizeHandler = () => { + if (pendingResize) { + return; + } + + pendingResize = true; clearTimeout(resizeTimeout); resizeTimeout = setTimeout(() => { resizeHandler(); - }, 300); + pendingResize = false; + }, 200); }; window.addEventListener('resize', debouncedResizeHandler);