chore: dependency updates

This commit is contained in:
Lucas Smith
2025-11-22 00:06:12 +11:00
parent 17c6098638
commit 7ff27b3b30
95 changed files with 16657 additions and 72401 deletions

View File

@ -0,0 +1,66 @@
import { useEffect, useMemo, useRef } from 'react';
import type { RenderParameters } from 'pdfjs-dist/types/src/display/api.js';
import { usePageContext } from 'react-pdf';
import invariant from 'tiny-invariant';
export default function PDFViewerRenderer() {
const pageContext = usePageContext();
invariant(pageContext, 'Unable to find Page context.');
const { _className, page, rotate, scale } = pageContext;
invariant(page, 'Attempted to render page canvas, but no page was specified.');
const canvasElement = useRef<HTMLCanvasElement>(null);
const viewport = useMemo(
() => page.getViewport({ scale, rotation: rotate }),
[page, rotate, scale],
);
useEffect(() => {
if (!page) {
return;
}
const { current: canvas } = canvasElement;
if (!canvas) {
return;
}
const canvasContext = canvas.getContext('2d', { alpha: false });
if (!canvasContext) {
return;
}
const renderContext: RenderParameters = {
canvas,
canvasContext,
viewport,
};
const cancellable = page.render(renderContext);
const runningTask = cancellable;
cancellable.promise.catch(() => {
// Intentionally empty
});
return () => {
runningTask.cancel();
};
}, [page, viewport]);
return (
<canvas
ref={canvasElement}
className={`${_className}__canvas`}
height={viewport.height}
width={viewport.width}
/>
);
}