From 5b6f5d276ccc1ccbcbad2a888c3b4b8c2e283aeb Mon Sep 17 00:00:00 2001 From: Huang Jingzhan Date: Wed, 19 Mar 2025 18:37:27 +0800 Subject: [PATCH] Add RenderContext in onRenderSuccess --- packages/react-pdf/src/Page/Canvas.spec.tsx | 9 ++++++++- packages/react-pdf/src/Page/Canvas.tsx | 6 +++--- packages/react-pdf/src/shared/types.ts | 3 ++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/react-pdf/src/Page/Canvas.spec.tsx b/packages/react-pdf/src/Page/Canvas.spec.tsx index 45132cae9..62057386b 100644 --- a/packages/react-pdf/src/Page/Canvas.spec.tsx +++ b/packages/react-pdf/src/Page/Canvas.spec.tsx @@ -66,7 +66,14 @@ describe('Canvas', () => { expect.assertions(1); - await expect(onRenderSuccessPromise).resolves.toMatchObject([{}]); + await expect(onRenderSuccessPromise).resolves.toMatchObject([ + {}, + { + annotationMode: 1, + canvasContext: expect.any(Object), + viewport: page.getViewport({ scale: 1, rotation: 0 }), + }, + ]); restoreConsole(); }); diff --git a/packages/react-pdf/src/Page/Canvas.tsx b/packages/react-pdf/src/Page/Canvas.tsx index 3f7f61d58..60ee9eb26 100644 --- a/packages/react-pdf/src/Page/Canvas.tsx +++ b/packages/react-pdf/src/Page/Canvas.tsx @@ -51,14 +51,14 @@ export default function Canvas(props: CanvasProps): React.ReactElement { /** * Called when a page is rendered successfully. */ - function onRenderSuccess() { + function onRenderSuccess(renderContext: RenderParameters) { if (!page) { // Impossible, but TypeScript doesn't know that return; } if (onRenderSuccessProps) { - onRenderSuccessProps(makePageCallback(page, scale)); + onRenderSuccessProps(makePageCallback(page, scale), renderContext); } } @@ -126,7 +126,7 @@ export default function Canvas(props: CanvasProps): React.ReactElement { .then(() => { canvas.style.visibility = ''; - onRenderSuccess(); + onRenderSuccess(renderContext); }) .catch(onRenderError); diff --git a/packages/react-pdf/src/shared/types.ts b/packages/react-pdf/src/shared/types.ts index cc5258405..3bc9f26b0 100644 --- a/packages/react-pdf/src/shared/types.ts +++ b/packages/react-pdf/src/shared/types.ts @@ -8,6 +8,7 @@ import type { TypedArray, DocumentInitParameters, RefProxy, + RenderParameters, StructTreeNode, TextContent, TextItem, @@ -119,7 +120,7 @@ export type OnRenderAnnotationLayerSuccess = () => void; export type OnRenderError = OnError; -export type OnRenderSuccess = (page: PageCallback) => void; +export type OnRenderSuccess = (page: PageCallback, renderContext: RenderParameters) => void; export type OnRenderTextLayerError = OnError;