@contentful/experiences-visual-editor-react 1.20.1 → 1.21.0-beta.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 +53 -4
- package/dist/index.js.map +1 -1
- package/dist/renderApp.js +53 -4
- package/dist/renderApp.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -1165,7 +1165,7 @@ const getBoundValue = (entryOrAsset, path) => {
|
|
|
1165
1165
|
: value;
|
|
1166
1166
|
};
|
|
1167
1167
|
|
|
1168
|
-
const transformRichText = (entryOrAsset, path) => {
|
|
1168
|
+
const transformRichText = (entryOrAsset, entityStore, path) => {
|
|
1169
1169
|
const value = getBoundValue(entryOrAsset, path);
|
|
1170
1170
|
if (typeof value === 'string') {
|
|
1171
1171
|
return {
|
|
@@ -1188,6 +1188,17 @@ const transformRichText = (entryOrAsset, path) => {
|
|
|
1188
1188
|
};
|
|
1189
1189
|
}
|
|
1190
1190
|
if (typeof value === 'object' && value.nodeType === BLOCKS.DOCUMENT) {
|
|
1191
|
+
//resolve any embedded links - we currently only support resolving embedded in the first entry
|
|
1192
|
+
const richTextDocument = value;
|
|
1193
|
+
richTextDocument.content.forEach((node) => {
|
|
1194
|
+
if ((node.nodeType === BLOCKS.EMBEDDED_ENTRY || node.nodeType === BLOCKS.EMBEDDED_ASSET) &&
|
|
1195
|
+
node.data.target.sys.type === 'Link') {
|
|
1196
|
+
const entity = entityStore.getEntityFromLink(node.data.target);
|
|
1197
|
+
if (entity) {
|
|
1198
|
+
node.data.target = entity;
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
});
|
|
1191
1202
|
return value;
|
|
1192
1203
|
}
|
|
1193
1204
|
return undefined;
|
|
@@ -1347,6 +1358,30 @@ function getResolvedEntryFromLink(entryOrAsset, path, entityStore) {
|
|
|
1347
1358
|
}
|
|
1348
1359
|
//Look up the reference in the entity store
|
|
1349
1360
|
const resolvedEntity = entityStore.getEntityFromLink(value);
|
|
1361
|
+
if (!resolvedEntity) {
|
|
1362
|
+
return;
|
|
1363
|
+
}
|
|
1364
|
+
//resolve any embedded links - we currently only support 2 levels deep
|
|
1365
|
+
const fields = resolvedEntity.fields || {};
|
|
1366
|
+
Object.entries(fields).forEach(([fieldKey, field]) => {
|
|
1367
|
+
if (field && field.sys?.type === 'Link') {
|
|
1368
|
+
const entity = entityStore.getEntityFromLink(field);
|
|
1369
|
+
if (entity) {
|
|
1370
|
+
resolvedEntity.fields[fieldKey] = entity;
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1373
|
+
else if (field && Array.isArray(field)) {
|
|
1374
|
+
resolvedEntity.fields[fieldKey] = field.map((innerField) => {
|
|
1375
|
+
if (innerField && innerField.sys?.type === 'Link') {
|
|
1376
|
+
const entity = entityStore.getEntityFromLink(innerField);
|
|
1377
|
+
if (entity) {
|
|
1378
|
+
return entity;
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
return innerField;
|
|
1382
|
+
});
|
|
1383
|
+
}
|
|
1384
|
+
});
|
|
1350
1385
|
return resolvedEntity;
|
|
1351
1386
|
}
|
|
1352
1387
|
|
|
@@ -1364,7 +1399,21 @@ function getArrayValue(entryOrAsset, path, entityStore) {
|
|
|
1364
1399
|
return value;
|
|
1365
1400
|
}
|
|
1366
1401
|
else if (value?.sys?.type === 'Link') {
|
|
1367
|
-
|
|
1402
|
+
const resolvedEntity = entityStore.getEntityFromLink(value);
|
|
1403
|
+
if (!resolvedEntity) {
|
|
1404
|
+
return;
|
|
1405
|
+
}
|
|
1406
|
+
//resolve any embedded links - we currently only support 2 levels deep
|
|
1407
|
+
const fields = resolvedEntity.fields || {};
|
|
1408
|
+
Object.entries(fields).forEach(([fieldKey, field]) => {
|
|
1409
|
+
if (field && field.sys?.type === 'Link') {
|
|
1410
|
+
const entity = entityStore.getEntityFromLink(field);
|
|
1411
|
+
if (entity) {
|
|
1412
|
+
resolvedEntity.fields[fieldKey] = entity;
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
});
|
|
1416
|
+
return resolvedEntity;
|
|
1368
1417
|
}
|
|
1369
1418
|
else {
|
|
1370
1419
|
console.warn(`Expected value to be a string or Link, but got: ${JSON.stringify(value)}`);
|
|
@@ -1386,7 +1435,7 @@ const transformBoundContentValue = (variables, entityStore, binding, resolveDesi
|
|
|
1386
1435
|
}
|
|
1387
1436
|
return transformMedia(entityOrAsset, variables, resolveDesignValue, variableName, path);
|
|
1388
1437
|
case 'RichText':
|
|
1389
|
-
return transformRichText(entityOrAsset, path);
|
|
1438
|
+
return transformRichText(entityOrAsset, entityStore, path);
|
|
1390
1439
|
case 'Array':
|
|
1391
1440
|
return getArrayValue(entityOrAsset, path, entityStore);
|
|
1392
1441
|
case 'Link':
|
|
@@ -4241,7 +4290,7 @@ const useComponent = ({ node: rawNode, resolveDesignValue, renderDropzone, userI
|
|
|
4241
4290
|
const componentId = node.data.id;
|
|
4242
4291
|
const isAssembly = node.type === 'assembly';
|
|
4243
4292
|
const isStructureComponent = isContentfulStructureComponent(node.data.blockId);
|
|
4244
|
-
const requiresDragWrapper = !isAssembly && !isStructureComponent &&
|
|
4293
|
+
const requiresDragWrapper = !isAssembly && !isStructureComponent && componentRegistration?.options?.wrapComponent === false;
|
|
4245
4294
|
const { componentProps, wrapperStyles } = useComponentProps({
|
|
4246
4295
|
node,
|
|
4247
4296
|
areEntitiesFetched,
|