From 52696f856d5afa1e8c9f44bb8526f423e4637195 Mon Sep 17 00:00:00 2001 From: Pascal Corpet Date: Tue, 11 Mar 2025 12:26:44 +0100 Subject: [PATCH 1/2] feat(pdfdownloadlink): add a ref to the link component so that it can be controlled by its parent --- packages/renderer/index.d.ts | 1 + packages/renderer/src/dom/PDFDownloadLink.js | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/renderer/index.d.ts b/packages/renderer/index.d.ts index 88b5d689c..39cb5445b 100644 --- a/packages/renderer/index.d.ts +++ b/packages/renderer/index.d.ts @@ -611,6 +611,7 @@ declare namespace ReactPDF { event: React.MouseEvent, instance: UsePDFInstance, ) => void); + ref?: React.Ref | undefined; } /** diff --git a/packages/renderer/src/dom/PDFDownloadLink.js b/packages/renderer/src/dom/PDFDownloadLink.js index 8ef582406..b5e917096 100644 --- a/packages/renderer/src/dom/PDFDownloadLink.js +++ b/packages/renderer/src/dom/PDFDownloadLink.js @@ -1,15 +1,15 @@ -import { useEffect } from 'react'; +import { forwardRef, useEffect } from 'react'; import usePDF from './usePDF'; -export const PDFDownloadLink = ({ +const PDFDownloadLinkBase = ({ fileName = 'document.pdf', document: doc, children, onClick, href, ...rest -}) => { +}, ref) => { const [instance, updateInstance] = usePDF(); useEffect(() => updateInstance(doc), [doc]); @@ -32,10 +32,12 @@ export const PDFDownloadLink = ({ }; return ( - + {typeof children === 'function' ? children(instance) : children} ); }; +export const PDFDownloadLink = forwardRef(PDFDownloadLinkBase) + export default PDFDownloadLink; From 464ed0d20bd8d2861cf8abf48132aff08bc2d708 Mon Sep 17 00:00:00 2001 From: Diego Muracciole Date: Tue, 23 Sep 2025 22:53:49 +0200 Subject: [PATCH 2/2] chore: add changeset --- .changeset/short-spoons-call.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/short-spoons-call.md diff --git a/.changeset/short-spoons-call.md b/.changeset/short-spoons-call.md new file mode 100644 index 000000000..25b37cc1d --- /dev/null +++ b/.changeset/short-spoons-call.md @@ -0,0 +1,5 @@ +--- +"@react-pdf/renderer": patch +--- + +feat(pdfdownloadlink): add a ref to the link component