Allow clicking of internal links

This commit is contained in:
RobbyV2 2025-07-19 11:07:58 -07:00
parent 6b03d9c946
commit 12e30f4ecf

View file

@ -15,6 +15,11 @@ interface PDFViewerProps {
zoomLevel: number; zoomLevel: number;
} }
interface OnItemClickArgs {
pageNumber?: number;
dest?: unknown;
}
export function PDFViewer({ zoomLevel }: PDFViewerProps) { export function PDFViewer({ zoomLevel }: PDFViewerProps) {
const containerRef = useRef<HTMLDivElement>(null); const containerRef = useRef<HTMLDivElement>(null);
const scaleRef = useRef<number>(1); const scaleRef = useRef<number>(1);
@ -28,6 +33,7 @@ export function PDFViewer({ zoomLevel }: PDFViewerProps) {
currentSentence, currentSentence,
stopAndPlayFromIndex, stopAndPlayFromIndex,
isProcessing, isProcessing,
skipToLocation,
} = useTTS(); } = useTTS();
// PDF context // PDF context
@ -167,6 +173,17 @@ export function PDFViewer({ zoomLevel }: PDFViewerProps) {
onLoadSuccess={(pdf) => { onLoadSuccess={(pdf) => {
onDocumentLoadSuccess(pdf); onDocumentLoadSuccess(pdf);
}} }}
onItemClick={(args: OnItemClickArgs) => {
if (args?.pageNumber) {
skipToLocation(args.pageNumber, true);
} else if (args?.dest) {
const destArray = Array.isArray(args.dest) ? args.dest : [];
const pageNum = typeof destArray[0] === 'number' ? destArray[0] + 1 : undefined;
if (pageNum) {
skipToLocation(pageNum, true);
}
}
}}
className="flex flex-col items-center m-0 z-0" className="flex flex-col items-center m-0 z-0"
> >
<div> <div>