diff --git a/packages/pdfjs-viewer/src/custom.mjs b/packages/pdfjs-viewer/src/custom.mjs index 48d73e719..1f75add44 100644 --- a/packages/pdfjs-viewer/src/custom.mjs +++ b/packages/pdfjs-viewer/src/custom.mjs @@ -5,19 +5,30 @@ async function main() { } const app = PDFViewerApplication; - await app.initializedPromise; - + await app.initializedPromise; + app.eventBus.on("documentloaded", () => { const storage = app.pdfDocument.annotationStorage; + let timeout = null; + + function debouncedSave() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(async () => { + console.log("Triggered debounce save"); + const data = await app.pdfDocument.saveDocument(); + window.parent.postMessage({ + type: "pdfjs-viewer-document-modified", + data: data + }, "*"); + storage.resetModified(); + timeout = null; + }, 2_000); + } storage.onSetModified = async () => { - console.log("Document modified"); - const data = await app.pdfDocument.saveDocument(); - window.parent.postMessage({ - type: "pdfjs-viewer-document-modified", - data: data - }, "*"); - storage.resetModified(); + debouncedSave(); }; }); };