Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/easy-loops-admire.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"@naverpay/react-pdf": patch
---

pdfjs-dist의 버전을 최신화합니다

PR: [pdfjs-dist의 버전을 최신화합니다](https://github.com/NaverPayDev/pie/pull/191)
15 changes: 15 additions & 0 deletions packages/react-pdf/src/components/page/Canvas.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import type {RenderTask} from 'pdfjs-dist'

export const PageCanvas = memo(function PageCanvas() {
const pageRenderTask = useRef<RenderTask>()

const renderingId = useRef(0)

const {page, viewport: renderViewport, scale} = usePdfPageContext()

const drawCanvas = useCallback(
Expand All @@ -23,6 +26,9 @@ export const PageCanvas = memo(function PageCanvas() {

pageRenderTask.current?.cancel()

// Generate new rendering ID (for tracking the last request)
const currentRenderingId = ++renderingId.current

const canvasViewport = page.getViewport({scale: scale * getPixelRatio()})

canvas.width = canvasViewport.width
Expand All @@ -32,6 +38,15 @@ export const PageCanvas = memo(function PageCanvas() {
canvas.style.height = `${Math.floor(renderViewport.height)}px`

pageRenderTask.current = page.render({canvasContext, viewport: canvasViewport})

pageRenderTask.current.promise.catch((error) => {
// Ignore errors if they are not from the latest rendering
if (currentRenderingId !== renderingId.current) {
return
}

throw error
})
})
},
[page, renderViewport.height, renderViewport.width, scale],
Expand Down