@contentful/experiences-visual-editor-react 3.2.0-dev-20250812T1256-c477cd9.0 → 3.2.0
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 +18 -11
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +18 -11
- package/dist/renderApp.js.map +1 -1
- package/package.json +4 -4
package/dist/renderApp.js
CHANGED
|
@@ -50290,7 +50290,7 @@ const collectNodeCoordinates = (node, nodeToCoordinatesMap) => {
|
|
|
50290
50290
|
node.children.forEach((child) => collectNodeCoordinates(child, nodeToCoordinatesMap));
|
|
50291
50291
|
};
|
|
50292
50292
|
function waitForImageToBeLoaded(imageNode) {
|
|
50293
|
-
if (imageNode.complete) {
|
|
50293
|
+
if (imageNode.complete && (imageNode.naturalWidth > 0 || imageNode.naturalHeight > 0)) {
|
|
50294
50294
|
return Promise.resolve();
|
|
50295
50295
|
}
|
|
50296
50296
|
return new Promise((resolve, reject) => {
|
|
@@ -50324,8 +50324,8 @@ const useCanvasGeometryUpdates = ({ tree, canvasMode }) => {
|
|
|
50324
50324
|
trailing: true,
|
|
50325
50325
|
}), []);
|
|
50326
50326
|
const debouncedCollectImages = reactExports.useMemo(() => debounce(() => {
|
|
50327
|
-
|
|
50328
|
-
}, 300, {
|
|
50327
|
+
setImages((prev) => ({ ...prev, allImages: findAllImages() }));
|
|
50328
|
+
}, 300, { trailing: true }), []);
|
|
50329
50329
|
// Store tree in a ref to avoid the need to deactivate & reactivate the mutation observer
|
|
50330
50330
|
// when the tree changes. This is important to avoid missing out on some mutation events.
|
|
50331
50331
|
const treeRef = reactExports.useRef(tree);
|
|
@@ -50334,13 +50334,17 @@ const useCanvasGeometryUpdates = ({ tree, canvasMode }) => {
|
|
|
50334
50334
|
}, [tree]);
|
|
50335
50335
|
// Handling window resize events
|
|
50336
50336
|
reactExports.useEffect(() => {
|
|
50337
|
-
const resizeEventListener = () =>
|
|
50337
|
+
const resizeEventListener = () => {
|
|
50338
|
+
debouncedUpdateGeometry(treeRef.current, 'resize');
|
|
50339
|
+
// find all images on resize
|
|
50340
|
+
debouncedCollectImages();
|
|
50341
|
+
};
|
|
50338
50342
|
window.addEventListener('resize', resizeEventListener);
|
|
50339
50343
|
return () => window.removeEventListener('resize', resizeEventListener);
|
|
50340
|
-
}, [debouncedUpdateGeometry]);
|
|
50344
|
+
}, [debouncedCollectImages, debouncedUpdateGeometry]);
|
|
50341
50345
|
const [{ allImages, loadedImages }, setImages] = reactExports.useState(() => {
|
|
50342
|
-
const allImages =
|
|
50343
|
-
const loadedImages = new
|
|
50346
|
+
const allImages = findAllImages();
|
|
50347
|
+
const loadedImages = new WeakMap();
|
|
50344
50348
|
return { allImages, loadedImages };
|
|
50345
50349
|
});
|
|
50346
50350
|
// Handling DOM mutations
|
|
@@ -50348,8 +50352,7 @@ const useCanvasGeometryUpdates = ({ tree, canvasMode }) => {
|
|
|
50348
50352
|
const observer = new MutationObserver(() => {
|
|
50349
50353
|
debouncedUpdateGeometry(treeRef.current, 'mutation');
|
|
50350
50354
|
// find all images on any DOM change
|
|
50351
|
-
|
|
50352
|
-
setImages((prevState) => ({ ...prevState, allImages }));
|
|
50355
|
+
debouncedCollectImages();
|
|
50353
50356
|
});
|
|
50354
50357
|
// send initial geometry in case the tree is empty
|
|
50355
50358
|
debouncedUpdateGeometry(treeRef.current, 'mutation');
|
|
@@ -50365,13 +50368,14 @@ const useCanvasGeometryUpdates = ({ tree, canvasMode }) => {
|
|
|
50365
50368
|
reactExports.useEffect(() => {
|
|
50366
50369
|
let isCurrent = true;
|
|
50367
50370
|
allImages.forEach(async (imageNode) => {
|
|
50368
|
-
|
|
50371
|
+
const lastSrc = loadedImages.get(imageNode);
|
|
50372
|
+
if (lastSrc === imageNode.currentSrc) {
|
|
50369
50373
|
return;
|
|
50370
50374
|
}
|
|
50371
50375
|
// update the geometry after each image is loaded, as it can shift the layout
|
|
50372
50376
|
await waitForImageToBeLoaded(imageNode);
|
|
50373
50377
|
if (isCurrent) {
|
|
50374
|
-
loadedImages.
|
|
50378
|
+
loadedImages.set(imageNode, imageNode.currentSrc);
|
|
50375
50379
|
debouncedUpdateGeometry(treeRef.current, 'imageLoad');
|
|
50376
50380
|
}
|
|
50377
50381
|
});
|
|
@@ -50398,6 +50402,9 @@ const useCanvasGeometryUpdates = ({ tree, canvasMode }) => {
|
|
|
50398
50402
|
return () => document.removeEventListener('wheel', onWheel);
|
|
50399
50403
|
}, [canvasMode]);
|
|
50400
50404
|
};
|
|
50405
|
+
function findAllImages() {
|
|
50406
|
+
return Array.from(document.querySelectorAll('img'));
|
|
50407
|
+
}
|
|
50401
50408
|
|
|
50402
50409
|
const RootRenderer = ({ inMemoryEntitiesStore, canvasMode }) => {
|
|
50403
50410
|
useEditorSubscriber(inMemoryEntitiesStore);
|