From f800c12fb71a25e23d6255903e1118549064f195 Mon Sep 17 00:00:00 2001 From: Richard Roberson Date: Wed, 29 Jan 2025 21:20:11 -0700 Subject: [PATCH] PDF document hook refactor --- src/components/PDFUploader.tsx | 4 ++-- src/contexts/PDFContext.tsx | 6 +----- src/hooks/pdf/usePDFDocuments.ts | 4 +++- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/components/PDFUploader.tsx b/src/components/PDFUploader.tsx index fb270c2..eabf24a 100644 --- a/src/components/PDFUploader.tsx +++ b/src/components/PDFUploader.tsx @@ -2,15 +2,15 @@ import { useState, useCallback } from 'react'; import { useDropzone } from 'react-dropzone'; -import { usePDF } from '@/contexts/PDFContext'; import { UploadIcon } from '@/components/icons/Icons'; +import { usePDFDocuments } from '@/hooks/pdf/usePDFDocuments'; interface PDFUploaderProps { className?: string; } export function PDFUploader({ className = '' }: PDFUploaderProps) { - const { addDocument } = usePDF(); + const { addDocument } = usePDFDocuments(); const [isUploading, setIsUploading] = useState(false); const [error, setError] = useState(null); diff --git a/src/contexts/PDFContext.tsx b/src/contexts/PDFContext.tsx index 554a80e..72633de 100644 --- a/src/contexts/PDFContext.tsx +++ b/src/contexts/PDFContext.tsx @@ -38,7 +38,6 @@ import { usePDFURLConversion } from '@/hooks/pdf/usePDFURLConversion'; interface PDFContextType { // Documents management documents: PDFDocument[]; - addDocument: (file: File) => Promise; removeDocument: (id: string) => Promise; isLoading: boolean; @@ -74,7 +73,6 @@ const PDFContext = createContext(undefined); * Handles document loading, text processing, and integration with TTS. */ export function PDFProvider({ children }: { children: ReactNode }) { - const { isDBReady } = useConfig(); const { setText: setTTSText, currDocPage, @@ -83,7 +81,7 @@ export function PDFProvider({ children }: { children: ReactNode }) { } = useTTS(); // Initialize hooks - const { documents, isLoading, addDocument, removeDocument } = usePDFDocuments(isDBReady); + const { documents, isLoading, removeDocument } = usePDFDocuments(); const { extractTextFromPDF } = usePDFTextProcessing(); const { highlightPattern, clearHighlights } = usePDFHighlighting(); const { handleTextClick } = usePDFTextClick(); @@ -160,7 +158,6 @@ export function PDFProvider({ children }: { children: ReactNode }) { const contextValue = useMemo( () => ({ documents, - addDocument, removeDocument, isLoading, onDocumentLoadSuccess, @@ -177,7 +174,6 @@ export function PDFProvider({ children }: { children: ReactNode }) { }), [ documents, - addDocument, removeDocument, isLoading, onDocumentLoadSuccess, diff --git a/src/hooks/pdf/usePDFDocuments.ts b/src/hooks/pdf/usePDFDocuments.ts index ff7baec..dae450f 100644 --- a/src/hooks/pdf/usePDFDocuments.ts +++ b/src/hooks/pdf/usePDFDocuments.ts @@ -1,8 +1,10 @@ import { useState, useCallback, useEffect } from 'react'; import { v4 as uuidv4 } from 'uuid'; import { indexedDBService, type PDFDocument } from '@/services/indexedDB'; +import { useConfig } from '@/contexts/ConfigContext'; -export function usePDFDocuments(isDBReady: boolean) { +export function usePDFDocuments() { + const { isDBReady } = useConfig(); const [documents, setDocuments] = useState([]); const [isLoading, setIsLoading] = useState(true);