diff --git a/src/components/EPUBViewer.tsx b/src/components/EPUBViewer.tsx index a9389a2..ec4a3f9 100644 --- a/src/components/EPUBViewer.tsx +++ b/src/components/EPUBViewer.tsx @@ -79,17 +79,17 @@ export function EPUBViewer({ className = '' }: EPUBViewerProps) { }, [extractPageText]); const checkResize = useCallback(() => { - if (isResizing && bookRef.current?.isOpen && rendition.current && isEPUBSetOnce.current) { + if (isResizing && dimensions && bookRef.current?.isOpen && rendition.current && isEPUBSetOnce.current) { pause(); // Only extract text when we have dimensions, ensuring the resize is complete - if (dimensions) extractPageText(bookRef.current, rendition.current, true); + extractPageText(bookRef.current, rendition.current, true); setIsResizing(false); return true; } else { return false; } - }, [isResizing, dimensions, pause, extractPageText]); + }, [isResizing, setIsResizing, dimensions, pause, extractPageText]); // Check for isResizing to pause TTS and re-extract text useEffect(() => { diff --git a/src/contexts/TTSContext.tsx b/src/contexts/TTSContext.tsx index b2c3cc6..0bb18a8 100644 --- a/src/contexts/TTSContext.tsx +++ b/src/contexts/TTSContext.tsx @@ -195,7 +195,7 @@ export function TTSProvider({ children }: { children: ReactNode }) { setSentences([]); setCurrDocPage(location); - }, [abortAudio, isPlaying]); + }, [abortAudio]); /** * Moves to the next or previous sentence diff --git a/src/hooks/epub/useEPUBResize.ts b/src/hooks/epub/useEPUBResize.ts index 015ddfc..f51ae37 100644 --- a/src/hooks/epub/useEPUBResize.ts +++ b/src/hooks/epub/useEPUBResize.ts @@ -10,12 +10,16 @@ export function useEPUBResize(containerRef: RefObject) { const entries = args[0] as ResizeObserverEntry[]; console.log('Debounced resize', entries[0].contentRect); setDimensions(entries[0].contentRect); + setIsResizing((prev) => { + if (!prev) return true; + return prev; + }); }, 150); const resizeObserver = new ResizeObserver((entries) => { - if (!isResizing) { - setIsResizing(true); - } + // if (!isResizing) { + // setIsResizing(true); + // } debouncedResize(entries); }); @@ -51,7 +55,7 @@ export function useEPUBResize(containerRef: RefObject) { mutationObserver.disconnect(); resizeObserver.disconnect(); }; - }, [containerRef]); + }, [containerRef]); return { isResizing, setIsResizing, dimensions }; } \ No newline at end of file