Allow clicking of internal links
This commit is contained in:
parent
6b03d9c946
commit
12e30f4ecf
1 changed files with 17 additions and 0 deletions
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue