feat: Add OCR script for PDFs using Ollama and refine document preview navigation and zoom behavior.
This commit is contained in:
@@ -379,7 +379,8 @@ const PdfViewer = ({ src, title, className, viewportRef }: PdfViewerProps): JSX.
|
||||
const stackStyle = useMemo<CSSProperties>(() => ({
|
||||
'--pdf-viewer-viewport-width': `${viewportWidth}px`,
|
||||
'--pdf-viewer-viewport-height': `${viewportHeight}px`,
|
||||
}), [viewportHeight, viewportWidth]);
|
||||
cursor: viewMode === 'fit-width' ? 'zoom-out' : 'zoom-in',
|
||||
}), [viewportHeight, viewportWidth, viewMode]);
|
||||
|
||||
const toggleViewMode = useCallback(() => {
|
||||
setViewMode((prev) => (prev === 'fit-width' ? 'contain' : 'fit-width'));
|
||||
|
||||
@@ -21,9 +21,10 @@ export const usePreviewContext = () => {
|
||||
interface PreviewProviderProps {
|
||||
children: React.ReactNode;
|
||||
ensureDownloadUrl?: (docId: Identifier) => Promise<any>;
|
||||
onNavigate?: (documentId: Identifier) => void;
|
||||
}
|
||||
|
||||
export const PreviewProvider: React.FC<PreviewProviderProps> = ({ children, ensureDownloadUrl }) => {
|
||||
export const PreviewProvider: React.FC<PreviewProviderProps> = ({ children, ensureDownloadUrl, onNavigate }) => {
|
||||
const [previewDoc, setPreviewDoc] = useState<Document | null>(null);
|
||||
const [previewUrl, setPreviewUrl] = useState<string | null>(null);
|
||||
|
||||
@@ -36,6 +37,13 @@ export const PreviewProvider: React.FC<PreviewProviderProps> = ({ children, ensu
|
||||
setPreviewUrl(null);
|
||||
}, []);
|
||||
|
||||
const handleMaximize = useCallback(() => {
|
||||
if (previewDoc && onNavigate) {
|
||||
onNavigate(previewDoc.id);
|
||||
closePreview();
|
||||
}
|
||||
}, [previewDoc, onNavigate, closePreview]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!previewDoc) {
|
||||
setPreviewUrl(null);
|
||||
@@ -87,6 +95,7 @@ export const PreviewProvider: React.FC<PreviewProviderProps> = ({ children, ensu
|
||||
<PreviewZoomOverlay
|
||||
open={Boolean(previewUrl)}
|
||||
onClose={closePreview}
|
||||
onMaximize={onNavigate ? handleMaximize : undefined}
|
||||
document={overlayDocument}
|
||||
/>
|
||||
</PreviewContext.Provider>
|
||||
|
||||
Reference in New Issue
Block a user