react-pdf-editor-1 1.2.43 → 1.2.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +28 -1
- package/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +31 -2
package/dist/index.js
CHANGED
|
@@ -68,6 +68,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
68
68
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
69
69
|
signatureModalOpen = _useState16[0],
|
|
70
70
|
setSignatureModalOpen = _useState16[1];
|
|
71
|
+
var documentUpdatedListeners = (0, _react.useRef)(new Set());
|
|
71
72
|
var createIframe = function createIframe() {
|
|
72
73
|
var iframe = document.createElement('iframe');
|
|
73
74
|
iframe.src = iframeSrc || "/pdf-ui/index.html";
|
|
@@ -120,6 +121,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
120
121
|
|
|
121
122
|
// Set up an event listener to listen for a response from the iframe
|
|
122
123
|
window.parent.addEventListener('message', function (event) {
|
|
124
|
+
var _event$data;
|
|
123
125
|
if (event.data.type === 'file-received' && event.data.success) {
|
|
124
126
|
// If the message was received successfully, clear the interval
|
|
125
127
|
clearInterval(interval);
|
|
@@ -148,6 +150,15 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
148
150
|
if (event.data.type === "annotation-modal-open-change") {
|
|
149
151
|
setSignatureModalOpen(event.data.message);
|
|
150
152
|
}
|
|
153
|
+
if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'document-updated') {
|
|
154
|
+
documentUpdatedListeners.current.forEach(function (listener) {
|
|
155
|
+
try {
|
|
156
|
+
listener(event.data.message);
|
|
157
|
+
} catch (listenerError) {
|
|
158
|
+
console.error('Error running document-updated listener', listenerError);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
151
162
|
});
|
|
152
163
|
};
|
|
153
164
|
container.current.appendChild(iframe);
|
|
@@ -186,6 +197,11 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
186
197
|
return window.parent.removeEventListener('message', handleIframeLoaded);
|
|
187
198
|
};
|
|
188
199
|
}, []);
|
|
200
|
+
(0, _react.useEffect)(function () {
|
|
201
|
+
return function () {
|
|
202
|
+
documentUpdatedListeners.current.clear();
|
|
203
|
+
};
|
|
204
|
+
}, []);
|
|
189
205
|
var _useState17 = (0, _react.useState)(null),
|
|
190
206
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
191
207
|
clickedTag = _useState18[0],
|
|
@@ -560,6 +576,16 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
560
576
|
return _ref9.apply(this, arguments);
|
|
561
577
|
};
|
|
562
578
|
}();
|
|
579
|
+
var onDocumentUpdated = (0, _react.useCallback)(function (listener) {
|
|
580
|
+
if (typeof listener !== 'function') {
|
|
581
|
+
console.warn('onDocumentUpdated requires a function listener');
|
|
582
|
+
return function () {};
|
|
583
|
+
}
|
|
584
|
+
documentUpdatedListeners.current.add(listener);
|
|
585
|
+
return function () {
|
|
586
|
+
documentUpdatedListeners.current["delete"](listener);
|
|
587
|
+
};
|
|
588
|
+
}, []);
|
|
563
589
|
return {
|
|
564
590
|
requestBuffer: requestBuffer,
|
|
565
591
|
finalizeDocument: finalizeDocument,
|
|
@@ -582,7 +608,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
582
608
|
notarySealIds: notarySealIds,
|
|
583
609
|
hasSeal: hasSeal,
|
|
584
610
|
authTokens: authTokens,
|
|
585
|
-
signatureModalOpen: signatureModalOpen
|
|
611
|
+
signatureModalOpen: signatureModalOpen,
|
|
612
|
+
onDocumentUpdated: onDocumentUpdated
|
|
586
613
|
};
|
|
587
614
|
};
|
|
588
615
|
exports.useCreateIframeAndLoadViewer = useCreateIframeAndLoadViewer;
|
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from 'react';
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
export const useCreateIframeAndLoadViewer = ({
|
|
4
4
|
files,
|
|
@@ -30,6 +30,7 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
30
30
|
const [notarySealIds, setNotarySealIds] = useState([]);
|
|
31
31
|
const [authTokens, setAuthTokens] = useState(null);
|
|
32
32
|
const [signatureModalOpen, setSignatureModalOpen] = useState(false);
|
|
33
|
+
const documentUpdatedListeners = useRef(new Set());
|
|
33
34
|
|
|
34
35
|
const createIframe = () => {
|
|
35
36
|
const iframe = document.createElement('iframe');
|
|
@@ -98,6 +99,16 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
98
99
|
if (event.data.type === "annotation-modal-open-change") {
|
|
99
100
|
setSignatureModalOpen(event.data.message);
|
|
100
101
|
}
|
|
102
|
+
if (event.data?.type === 'document-updated') {
|
|
103
|
+
documentUpdatedListeners.current.forEach((listener) => {
|
|
104
|
+
try {
|
|
105
|
+
listener(event.data.message);
|
|
106
|
+
}
|
|
107
|
+
catch (listenerError) {
|
|
108
|
+
console.error('Error running document-updated listener', listenerError);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
101
112
|
});
|
|
102
113
|
};
|
|
103
114
|
|
|
@@ -135,6 +146,10 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
135
146
|
return () => window.parent.removeEventListener('message', handleIframeLoaded);
|
|
136
147
|
}, []);
|
|
137
148
|
|
|
149
|
+
useEffect(() => () => {
|
|
150
|
+
documentUpdatedListeners.current.clear();
|
|
151
|
+
}, []);
|
|
152
|
+
|
|
138
153
|
const [clickedTag, setClickedTag] = useState(null);
|
|
139
154
|
|
|
140
155
|
const handleTagClicked = (event) => {
|
|
@@ -387,6 +402,19 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
387
402
|
});
|
|
388
403
|
};
|
|
389
404
|
|
|
405
|
+
const onDocumentUpdated = useCallback((listener) => {
|
|
406
|
+
if (typeof listener !== 'function') {
|
|
407
|
+
console.warn('onDocumentUpdated requires a function listener');
|
|
408
|
+
return () => {};
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
documentUpdatedListeners.current.add(listener);
|
|
412
|
+
|
|
413
|
+
return () => {
|
|
414
|
+
documentUpdatedListeners.current.delete(listener);
|
|
415
|
+
};
|
|
416
|
+
}, []);
|
|
417
|
+
|
|
390
418
|
return {
|
|
391
419
|
requestBuffer,
|
|
392
420
|
finalizeDocument,
|
|
@@ -408,6 +436,7 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
408
436
|
notarySealIds,
|
|
409
437
|
hasSeal,
|
|
410
438
|
authTokens,
|
|
411
|
-
signatureModalOpen
|
|
439
|
+
signatureModalOpen,
|
|
440
|
+
onDocumentUpdated
|
|
412
441
|
};
|
|
413
442
|
};
|