react-pdf-editor-1 1.2.42 → 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 +32 -3
- package/package.json +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +34 -4
package/dist/index.js
CHANGED
|
@@ -32,7 +32,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
32
32
|
initialAnnotations = _ref.initialAnnotations,
|
|
33
33
|
notarySeal = _ref.notarySeal,
|
|
34
34
|
initialSigners = _ref.initialSigners,
|
|
35
|
-
modifiedUiElements = _ref.modifiedUiElements
|
|
35
|
+
modifiedUiElements = _ref.modifiedUiElements,
|
|
36
|
+
textTagDefaults = _ref.textTagDefaults;
|
|
36
37
|
var _useState = (0, _react.useState)(false),
|
|
37
38
|
_useState2 = _slicedToArray(_useState, 2),
|
|
38
39
|
internalIsReady = _useState2[0],
|
|
@@ -67,6 +68,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
67
68
|
_useState16 = _slicedToArray(_useState15, 2),
|
|
68
69
|
signatureModalOpen = _useState16[0],
|
|
69
70
|
setSignatureModalOpen = _useState16[1];
|
|
71
|
+
var documentUpdatedListeners = (0, _react.useRef)(new Set());
|
|
70
72
|
var createIframe = function createIframe() {
|
|
71
73
|
var iframe = document.createElement('iframe');
|
|
72
74
|
iframe.src = iframeSrc || "/pdf-ui/index.html";
|
|
@@ -101,7 +103,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
101
103
|
initialSigners: initialSigners,
|
|
102
104
|
modifiedUiElements: modifiedUiElements,
|
|
103
105
|
authInfo: authInfo,
|
|
104
|
-
defaultAnnotationEditorMode: defaultAnnotationEditorMode
|
|
106
|
+
defaultAnnotationEditorMode: defaultAnnotationEditorMode,
|
|
107
|
+
textTagDefaults: textTagDefaults
|
|
105
108
|
};
|
|
106
109
|
|
|
107
110
|
// Set up a function to send the message
|
|
@@ -118,6 +121,7 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
118
121
|
|
|
119
122
|
// Set up an event listener to listen for a response from the iframe
|
|
120
123
|
window.parent.addEventListener('message', function (event) {
|
|
124
|
+
var _event$data;
|
|
121
125
|
if (event.data.type === 'file-received' && event.data.success) {
|
|
122
126
|
// If the message was received successfully, clear the interval
|
|
123
127
|
clearInterval(interval);
|
|
@@ -146,6 +150,15 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
146
150
|
if (event.data.type === "annotation-modal-open-change") {
|
|
147
151
|
setSignatureModalOpen(event.data.message);
|
|
148
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
|
+
}
|
|
149
162
|
});
|
|
150
163
|
};
|
|
151
164
|
container.current.appendChild(iframe);
|
|
@@ -184,6 +197,11 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
184
197
|
return window.parent.removeEventListener('message', handleIframeLoaded);
|
|
185
198
|
};
|
|
186
199
|
}, []);
|
|
200
|
+
(0, _react.useEffect)(function () {
|
|
201
|
+
return function () {
|
|
202
|
+
documentUpdatedListeners.current.clear();
|
|
203
|
+
};
|
|
204
|
+
}, []);
|
|
187
205
|
var _useState17 = (0, _react.useState)(null),
|
|
188
206
|
_useState18 = _slicedToArray(_useState17, 2),
|
|
189
207
|
clickedTag = _useState18[0],
|
|
@@ -558,6 +576,16 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
558
576
|
return _ref9.apply(this, arguments);
|
|
559
577
|
};
|
|
560
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
|
+
}, []);
|
|
561
589
|
return {
|
|
562
590
|
requestBuffer: requestBuffer,
|
|
563
591
|
finalizeDocument: finalizeDocument,
|
|
@@ -580,7 +608,8 @@ var useCreateIframeAndLoadViewer = function useCreateIframeAndLoadViewer(_ref) {
|
|
|
580
608
|
notarySealIds: notarySealIds,
|
|
581
609
|
hasSeal: hasSeal,
|
|
582
610
|
authTokens: authTokens,
|
|
583
|
-
signatureModalOpen: signatureModalOpen
|
|
611
|
+
signatureModalOpen: signatureModalOpen,
|
|
612
|
+
onDocumentUpdated: onDocumentUpdated
|
|
584
613
|
};
|
|
585
614
|
};
|
|
586
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,
|
|
@@ -17,7 +17,8 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
17
17
|
initialAnnotations,
|
|
18
18
|
notarySeal,
|
|
19
19
|
initialSigners,
|
|
20
|
-
modifiedUiElements
|
|
20
|
+
modifiedUiElements,
|
|
21
|
+
textTagDefaults
|
|
21
22
|
}) => {
|
|
22
23
|
const [internalIsReady, setInternalIsReady] = useState(false); // Add this state variable
|
|
23
24
|
const [selectedPages, setSelectedPages] = useState([]);
|
|
@@ -29,6 +30,7 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
29
30
|
const [notarySealIds, setNotarySealIds] = useState([]);
|
|
30
31
|
const [authTokens, setAuthTokens] = useState(null);
|
|
31
32
|
const [signatureModalOpen, setSignatureModalOpen] = useState(false);
|
|
33
|
+
const documentUpdatedListeners = useRef(new Set());
|
|
32
34
|
|
|
33
35
|
const createIframe = () => {
|
|
34
36
|
const iframe = document.createElement('iframe');
|
|
@@ -53,7 +55,7 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
53
55
|
// When the iframe is loaded, post the file to it
|
|
54
56
|
iframe.onload = function() {
|
|
55
57
|
const targetOrigin = window.location.origin;
|
|
56
|
-
const message = { files, fileName, tools, locale, licenseKey, mode, uuid, customData, initialAnnotations, notarySeal, initialSigners, modifiedUiElements, authInfo, defaultAnnotationEditorMode };
|
|
58
|
+
const message = { files, fileName, tools, locale, licenseKey, mode, uuid, customData, initialAnnotations, notarySeal, initialSigners, modifiedUiElements, authInfo, defaultAnnotationEditorMode, textTagDefaults };
|
|
57
59
|
|
|
58
60
|
// Set up a function to send the message
|
|
59
61
|
const sendMessage = () => {
|
|
@@ -97,6 +99,16 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
97
99
|
if (event.data.type === "annotation-modal-open-change") {
|
|
98
100
|
setSignatureModalOpen(event.data.message);
|
|
99
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
|
+
}
|
|
100
112
|
});
|
|
101
113
|
};
|
|
102
114
|
|
|
@@ -134,6 +146,10 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
134
146
|
return () => window.parent.removeEventListener('message', handleIframeLoaded);
|
|
135
147
|
}, []);
|
|
136
148
|
|
|
149
|
+
useEffect(() => () => {
|
|
150
|
+
documentUpdatedListeners.current.clear();
|
|
151
|
+
}, []);
|
|
152
|
+
|
|
137
153
|
const [clickedTag, setClickedTag] = useState(null);
|
|
138
154
|
|
|
139
155
|
const handleTagClicked = (event) => {
|
|
@@ -386,6 +402,19 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
386
402
|
});
|
|
387
403
|
};
|
|
388
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
|
+
|
|
389
418
|
return {
|
|
390
419
|
requestBuffer,
|
|
391
420
|
finalizeDocument,
|
|
@@ -407,6 +436,7 @@ export const useCreateIframeAndLoadViewer = ({
|
|
|
407
436
|
notarySealIds,
|
|
408
437
|
hasSeal,
|
|
409
438
|
authTokens,
|
|
410
|
-
signatureModalOpen
|
|
439
|
+
signatureModalOpen,
|
|
440
|
+
onDocumentUpdated
|
|
411
441
|
};
|
|
412
442
|
};
|