diff --git a/src/app/pdf/[id]/page.tsx b/src/app/pdf/[id]/page.tsx index 6d6cedf..306adc6 100644 --- a/src/app/pdf/[id]/page.tsx +++ b/src/app/pdf/[id]/page.tsx @@ -56,8 +56,7 @@ export default function PDFViewerPage() { { - setText(''); - stop(); + }} className="inline-flex items-center px-3 py-1 bg-base text-foreground rounded-lg hover:bg-offbase transition-colors" > diff --git a/src/contexts/PDFContext.tsx b/src/contexts/PDFContext.tsx index bcf68c6..3828fee 100644 --- a/src/contexts/PDFContext.tsx +++ b/src/contexts/PDFContext.tsx @@ -57,6 +57,7 @@ interface PDFContextType { currDocPages: number | undefined; currDocPage: number; currDocText: string | undefined; + clearCurrDoc: () => void; } const PDFContext = createContext(undefined); @@ -268,6 +269,17 @@ export function PDFProvider({ children }: { children: ReactNode }) { } }, [getDocument, loadCurrDocText]); + const clearCurrDoc = useCallback(() => { + setCurrDocName(undefined); + setCurrDocURL(undefined); + setCurrDocText(undefined); + setCurrDocPages(undefined); + + // Clear TTS text + setTTSText(''); + + }, []); + // Clear all highlights in the PDF viewer const clearHighlights = useCallback(() => { const textNodes = document.querySelectorAll('.react-pdf__Page__textContent span'); @@ -463,6 +475,7 @@ export function PDFProvider({ children }: { children: ReactNode }) { currDocPages, currDocPage, currDocText, + clearCurrDoc, }), [ documents, @@ -482,6 +495,7 @@ export function PDFProvider({ children }: { children: ReactNode }) { currDocPages, currDocPage, currDocText, + clearCurrDoc, ] ); diff --git a/src/contexts/TTSContext.tsx b/src/contexts/TTSContext.tsx index 073878e..abbb940 100644 --- a/src/contexts/TTSContext.tsx +++ b/src/contexts/TTSContext.tsx @@ -53,7 +53,7 @@ interface TTSContextType { setCurrentIndex: (index: number) => void; currDocPage: number; currDocPages: number | undefined; - setCurrDocPages: (num: number) => void; + setCurrDocPages: (num: number | undefined) => void; incrementPage: (num?: number) => void; skipToPage: (page: number) => void; } @@ -126,8 +126,8 @@ export function TTSProvider({ children }: { children: React.ReactNode }) { const incrementPage = useCallback((num = 1) => { setNextPageLoading(true); - setCurrDocPage((prev) => prev + num); - }, []); + setCurrDocPage(currDocPage + num); + }, [currDocPage]); const advance = useCallback(async (backwards = false) => { setCurrentIndex((prev) => { @@ -154,7 +154,7 @@ export function TTSProvider({ children }: { children: React.ReactNode }) { } return prev; }); - }, [sentences, currDocPage, currDocPages]); + }, [sentences, currDocPage, currDocPages, incrementPage]); const skipForward = useCallback(() => {