@contentful/field-editor-reference 6.12.0 → 6.13.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/cjs/__fixtures__/FakeSdk.js +6 -6
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +9 -15
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +3 -4
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +2 -3
- package/dist/cjs/common/EntityStore.js +102 -32
- package/dist/cjs/components/EntityStatusBadge/EntityStatusBadge.js +5 -6
- package/dist/cjs/components/LinkActions/CombinedLinkActions.js +2 -2
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +10 -22
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +3 -4
- package/dist/cjs/resources/Cards/ResourceCard.spec.js +14 -11
- package/dist/esm/__fixtures__/FakeSdk.js +7 -7
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +10 -16
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +3 -4
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +2 -3
- package/dist/esm/common/EntityStore.js +103 -33
- package/dist/esm/components/EntityStatusBadge/EntityStatusBadge.js +5 -6
- package/dist/esm/components/LinkActions/CombinedLinkActions.js +2 -2
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +11 -18
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +3 -4
- package/dist/esm/resources/Cards/ResourceCard.spec.js +14 -11
- package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +4 -5
- package/dist/types/assets/WrappedAssetCard/WrappedAssetLink.d.ts +3 -4
- package/dist/types/common/EntityStore.d.ts +7 -2
- package/dist/types/common/customCardTypes.d.ts +7 -8
- package/dist/types/components/EntityStatusBadge/EntityStatusBadge.d.ts +4 -5
- package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +4 -5
- package/package.json +7 -7
|
@@ -57,8 +57,8 @@ function newReferenceEditorFakeSdk(props) {
|
|
|
57
57
|
const sdk = {
|
|
58
58
|
field,
|
|
59
59
|
locales,
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
cma: {
|
|
61
|
+
entry: {
|
|
62
62
|
get: async ({ entryId })=>{
|
|
63
63
|
if (props?.fetchDelay) {
|
|
64
64
|
await delay(props.fetchDelay);
|
|
@@ -75,7 +75,7 @@ function newReferenceEditorFakeSdk(props) {
|
|
|
75
75
|
return Promise.reject({});
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
|
-
|
|
78
|
+
asset: {
|
|
79
79
|
get: async ({ assetId })=>{
|
|
80
80
|
if (props?.fetchDelay) {
|
|
81
81
|
await delay(props.fetchDelay);
|
|
@@ -92,7 +92,7 @@ function newReferenceEditorFakeSdk(props) {
|
|
|
92
92
|
return Promise.reject({});
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
-
|
|
95
|
+
space: {
|
|
96
96
|
get: async (params)=>{
|
|
97
97
|
if (params.spaceId === _fixtures.spaces.indifferent.sys.id) {
|
|
98
98
|
return _fixtures.spaces.indifferent;
|
|
@@ -100,7 +100,7 @@ function newReferenceEditorFakeSdk(props) {
|
|
|
100
100
|
return Promise.reject({});
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
|
-
|
|
103
|
+
contentType: {
|
|
104
104
|
get: async ({ contentTypeId })=>{
|
|
105
105
|
if (contentTypeId === _fixtures.contentTypes.published.sys.id) {
|
|
106
106
|
return _fixtures.contentTypes.published;
|
|
@@ -111,7 +111,7 @@ function newReferenceEditorFakeSdk(props) {
|
|
|
111
111
|
Locale: {
|
|
112
112
|
getMany: async ()=>_fixtures.locales.list
|
|
113
113
|
}
|
|
114
|
-
}
|
|
114
|
+
},
|
|
115
115
|
space: {
|
|
116
116
|
...space,
|
|
117
117
|
getCachedContentTypes () {
|
|
@@ -57,25 +57,20 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
57
57
|
return newObj;
|
|
58
58
|
}
|
|
59
59
|
function FetchingWrappedAssetCard(props) {
|
|
60
|
-
const {
|
|
61
|
-
const { data: asset, status } = (0, _EntityStore.useEntity)('Asset', props.assetId);
|
|
60
|
+
const { data: asset, status, currentEntity } = (0, _EntityStore.useEntity)('Asset', props.assetId);
|
|
62
61
|
const { getEntityScheduledActions } = (0, _EntityStore.useEntityLoader)();
|
|
63
62
|
const loadEntityScheduledActions = _react.useCallback(()=>getEntityScheduledActions('Asset', props.assetId), [
|
|
64
63
|
getEntityScheduledActions,
|
|
65
64
|
props.assetId
|
|
66
65
|
]);
|
|
66
|
+
const activeLocales = (0, _fieldeditorshared.useActiveLocales)(props.sdk);
|
|
67
67
|
const localesStatusMap = (0, _fieldeditorshared.useLocalePublishStatus)(asset, props.sdk.locales);
|
|
68
|
-
const {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
locales,
|
|
74
|
-
activeRelease,
|
|
75
|
-
releases
|
|
68
|
+
const { releaseStatusMap, releaseAction } = (0, _fieldeditorshared.useReleaseStatus)({
|
|
69
|
+
entity: asset,
|
|
70
|
+
previousEntityOnTimeline: currentEntity,
|
|
71
|
+
release: props.sdk.release,
|
|
72
|
+
locales: props.sdk.locales
|
|
76
73
|
});
|
|
77
|
-
const { releaseAction } = (0, _fieldeditorshared.getEntityReleaseStatus)(props.assetId, locales, activeRelease);
|
|
78
|
-
const activeLocales = (0, _fieldeditorshared.useActiveLocales)(props.sdk);
|
|
79
74
|
_react.useEffect(()=>{
|
|
80
75
|
if (asset) {
|
|
81
76
|
props.onAction && props.onAction({
|
|
@@ -140,9 +135,8 @@ function FetchingWrappedAssetCard(props) {
|
|
|
140
135
|
useLocalizedEntityStatus: props.sdk.parameters.instance.useLocalizedEntityStatus,
|
|
141
136
|
localesStatusMap,
|
|
142
137
|
activeLocales,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
activeRelease,
|
|
138
|
+
releaseStatusMap,
|
|
139
|
+
release: props.sdk.release,
|
|
146
140
|
releaseAction
|
|
147
141
|
};
|
|
148
142
|
if (status === 'loading') {
|
|
@@ -86,7 +86,7 @@ function getFileType(file) {
|
|
|
86
86
|
});
|
|
87
87
|
return groupToIconMap[groupName] || 'archive';
|
|
88
88
|
}
|
|
89
|
-
const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseAction,
|
|
89
|
+
const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCode, activeLocales, localesStatusMap, isDisabled, isSelected, isClickable, useLocalizedEntityStatus, renderDragHandle, getEntityScheduledActions, onEdit, getAssetUrl, onRemove, releaseAction, releaseStatusMap, release })=>{
|
|
90
90
|
const status = _fieldeditorshared.entityHelpers.getEntityStatus(asset.sys, useLocalizedEntityStatus ? localeCode : undefined);
|
|
91
91
|
if (status === 'deleted') {
|
|
92
92
|
return /*#__PURE__*/ _react.createElement(_components.MissingAssetCard, {
|
|
@@ -119,9 +119,8 @@ const WrappedAssetCard = ({ asset, className, size, localeCode, defaultLocaleCod
|
|
|
119
119
|
localesStatusMap: localesStatusMap,
|
|
120
120
|
activeLocales: activeLocales,
|
|
121
121
|
releaseAction: releaseAction,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
activeRelease: activeRelease
|
|
122
|
+
releaseStatusMap: releaseStatusMap,
|
|
123
|
+
release: release
|
|
125
124
|
}),
|
|
126
125
|
src: entityFile && entityFile.url ? size === 'small' ? `${entityFile.url}?w=150&h=150&fit=thumb` : `${entityFile.url}?h=300` : '',
|
|
127
126
|
onClick: isClickable ? (e)=>{
|
|
@@ -86,9 +86,8 @@ const WrappedAssetLink = (props)=>{
|
|
|
86
86
|
localesStatusMap: props.localesStatusMap,
|
|
87
87
|
activeLocales: props.activeLocales,
|
|
88
88
|
releaseAction: props.releaseAction,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
activeRelease: props.activeRelease
|
|
89
|
+
releaseStatusMap: props.releaseStatusMap,
|
|
90
|
+
release: props.release
|
|
92
91
|
}),
|
|
93
92
|
thumbnailElement: entityFile && (0, _fieldeditorshared.isValidImage)(entityFile) ? /*#__PURE__*/ _react.createElement(_components.AssetThumbnail, {
|
|
94
93
|
file: entityFile
|
|
@@ -241,12 +241,20 @@ async function fetchExternalResource({ urn, fetch, options, spaceId, environment
|
|
|
241
241
|
'resource-types',
|
|
242
242
|
spaceId,
|
|
243
243
|
environmentId
|
|
244
|
-
], ({ cmaClient })=>
|
|
244
|
+
], ({ cmaClient })=>{
|
|
245
|
+
console.log('>> fetch resource types', {
|
|
246
|
+
spaceId,
|
|
247
|
+
environmentId
|
|
248
|
+
});
|
|
249
|
+
return (0, _contentfulmanagement.fetchAll)(({ query })=>cmaClient.resourceType.getForEnvironment({
|
|
245
250
|
spaceId,
|
|
246
251
|
environmentId,
|
|
247
252
|
query
|
|
248
|
-
}), {})
|
|
253
|
+
}), {});
|
|
254
|
+
})
|
|
249
255
|
]);
|
|
256
|
+
console.log('>> resource', resource);
|
|
257
|
+
console.log('>> resourceTypes', resourceTypes);
|
|
250
258
|
const resourceTypeEntity = resourceTypes.find((rt)=>rt.sys.id === resourceType);
|
|
251
259
|
if (!resourceTypeEntity) {
|
|
252
260
|
throw new UnsupportedError('Unsupported resource type');
|
|
@@ -265,6 +273,7 @@ async function fetchExternalResource({ urn, fetch, options, spaceId, environment
|
|
|
265
273
|
const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0, _constate.default)(function useInitServices(props) {
|
|
266
274
|
const currentSpaceId = props.sdk.ids.space;
|
|
267
275
|
const currentEnvironmentId = props.sdk.ids.environmentAlias ?? props.sdk.ids.environment;
|
|
276
|
+
const releaseId = props.sdk.ids.release;
|
|
268
277
|
const environmentIds = (0, _react.useMemo)(()=>[
|
|
269
278
|
props.sdk.ids.environmentAlias,
|
|
270
279
|
props.sdk.ids.environment
|
|
@@ -275,13 +284,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
275
284
|
const queryClient = (0, _queryClient.useQueryClient)();
|
|
276
285
|
const queryCache = queryClient.getQueryCache();
|
|
277
286
|
const entityChangeUnsubscribers = (0, _react.useRef)({});
|
|
278
|
-
const cmaClient =
|
|
279
|
-
apiAdapter: props.sdk.cmaAdapter
|
|
280
|
-
}, {
|
|
281
|
-
type: 'plain'
|
|
282
|
-
}), [
|
|
283
|
-
props.sdk.cmaAdapter
|
|
284
|
-
]);
|
|
287
|
+
const cmaClient = props.sdk.cma;
|
|
285
288
|
const queryQueue = (0, _react.useMemo)(()=>{
|
|
286
289
|
if (props.queryConcurrency) {
|
|
287
290
|
return new _pqueue.default({
|
|
@@ -304,38 +307,92 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
304
307
|
queryQueue,
|
|
305
308
|
cmaClient
|
|
306
309
|
]);
|
|
307
|
-
const
|
|
310
|
+
const isReleaseRequestError = (0, _react.useCallback)(function isReleaseRequestError(error, spaceId, environmentId) {
|
|
311
|
+
return !!releaseId && (!spaceId || spaceId === currentSpaceId) && (!environmentId || environmentId === currentEnvironmentId) && error instanceof Error && 'status' in error && error.status === 404;
|
|
312
|
+
}, [
|
|
313
|
+
releaseId,
|
|
314
|
+
currentSpaceId,
|
|
315
|
+
currentEnvironmentId
|
|
316
|
+
]);
|
|
317
|
+
const getEntity = (0, _react.useCallback)(function getEntity(entityType, entityId, releaseId, options) {
|
|
308
318
|
const spaceId = options?.spaceId ?? currentSpaceId;
|
|
309
319
|
const environmentId = options?.environmentId ?? currentEnvironmentId;
|
|
310
320
|
const queryKey = [
|
|
311
321
|
entityType,
|
|
312
322
|
entityId,
|
|
313
323
|
spaceId,
|
|
314
|
-
environmentId
|
|
324
|
+
environmentId,
|
|
325
|
+
releaseId
|
|
315
326
|
];
|
|
316
|
-
return fetch(queryKey, ({ cmaClient })=>{
|
|
327
|
+
return fetch(queryKey, async ({ cmaClient })=>{
|
|
317
328
|
if (entityType === 'Entry') {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
329
|
+
try {
|
|
330
|
+
return cmaClient.entry.get({
|
|
331
|
+
entryId: entityId,
|
|
332
|
+
spaceId,
|
|
333
|
+
environmentId,
|
|
334
|
+
releaseId
|
|
335
|
+
});
|
|
336
|
+
} catch (error) {
|
|
337
|
+
if (isReleaseRequestError(error, spaceId, environmentId)) {
|
|
338
|
+
const currentEntry = await cmaClient.entry.get({
|
|
339
|
+
entryId: entityId,
|
|
340
|
+
spaceId,
|
|
341
|
+
environmentId,
|
|
342
|
+
releaseId: undefined
|
|
343
|
+
});
|
|
344
|
+
currentEntry.sys.release = {
|
|
345
|
+
sys: {
|
|
346
|
+
type: 'Link',
|
|
347
|
+
linkType: 'Release',
|
|
348
|
+
id: releaseId
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
return currentEntry;
|
|
352
|
+
}
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
323
355
|
}
|
|
324
356
|
if (entityType === 'Asset') {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
357
|
+
try {
|
|
358
|
+
return cmaClient.asset.get({
|
|
359
|
+
assetId: entityId,
|
|
360
|
+
spaceId,
|
|
361
|
+
environmentId,
|
|
362
|
+
releaseId
|
|
363
|
+
});
|
|
364
|
+
} catch (error) {
|
|
365
|
+
if (isReleaseRequestError(error, spaceId, environmentId)) {
|
|
366
|
+
const currentAsset = cmaClient.asset.get({
|
|
367
|
+
assetId: entityId,
|
|
368
|
+
spaceId,
|
|
369
|
+
environmentId,
|
|
370
|
+
releaseId: undefined
|
|
371
|
+
});
|
|
372
|
+
currentAsset.sys.release = {
|
|
373
|
+
sys: {
|
|
374
|
+
type: 'Link',
|
|
375
|
+
linkType: 'Release',
|
|
376
|
+
id: releaseId
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
return currentAsset;
|
|
380
|
+
}
|
|
381
|
+
throw error;
|
|
382
|
+
}
|
|
330
383
|
}
|
|
331
384
|
throw new UnsupportedError('Unsupported entity type');
|
|
332
385
|
}, options);
|
|
333
386
|
}, [
|
|
334
387
|
fetch,
|
|
335
388
|
currentSpaceId,
|
|
336
|
-
currentEnvironmentId
|
|
389
|
+
currentEnvironmentId,
|
|
390
|
+
isReleaseRequestError
|
|
337
391
|
]);
|
|
338
392
|
const getEntityScheduledActions = (0, _react.useCallback)(function getEntityScheduledActions(entityType, entityId, options) {
|
|
393
|
+
if (releaseId) {
|
|
394
|
+
return new Promise((resolve)=>resolve([]));
|
|
395
|
+
}
|
|
339
396
|
const fixedEntityCacheId = 'scheduledActionEntityId';
|
|
340
397
|
const maxScheduledActions = 500;
|
|
341
398
|
const spaceId = options?.spaceId ?? currentSpaceId;
|
|
@@ -345,7 +402,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
345
402
|
entityType,
|
|
346
403
|
fixedEntityCacheId,
|
|
347
404
|
spaceId,
|
|
348
|
-
environmentId
|
|
405
|
+
environmentId,
|
|
406
|
+
releaseId
|
|
349
407
|
];
|
|
350
408
|
return fetch(queryKey, async ({ cmaClient })=>{
|
|
351
409
|
const response = await cmaClient.scheduledActions.getMany({
|
|
@@ -362,7 +420,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
362
420
|
}, [
|
|
363
421
|
fetch,
|
|
364
422
|
currentSpaceId,
|
|
365
|
-
currentEnvironmentId
|
|
423
|
+
currentEnvironmentId,
|
|
424
|
+
releaseId
|
|
366
425
|
]);
|
|
367
426
|
const getResource = (0, _react.useCallback)(function getResource(resourceType, urn, options) {
|
|
368
427
|
const queryKey = [
|
|
@@ -490,23 +549,34 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
490
549
|
getResourceProvider
|
|
491
550
|
}), ({ ids })=>({
|
|
492
551
|
environment: ids.environmentAlias ?? ids.environment,
|
|
493
|
-
space: ids.space
|
|
552
|
+
space: ids.space,
|
|
553
|
+
releaseId: ids.release
|
|
494
554
|
}));
|
|
495
555
|
function useEntity(entityType, entityId, options) {
|
|
496
|
-
const { space, environment } = useCurrentIds();
|
|
556
|
+
const { space, environment, releaseId } = useCurrentIds();
|
|
497
557
|
const { getEntity } = useEntityLoader();
|
|
498
|
-
const
|
|
558
|
+
const { status, data } = (0, _queryClient.useQuery)([
|
|
499
559
|
entityType,
|
|
500
560
|
entityId,
|
|
501
561
|
options?.spaceId ?? space,
|
|
502
|
-
options?.environmentId ?? environment
|
|
503
|
-
|
|
504
|
-
|
|
562
|
+
options?.environmentId ?? environment,
|
|
563
|
+
releaseId
|
|
564
|
+
], ()=>getEntity(entityType, entityId, releaseId, options), {
|
|
505
565
|
enabled: options?.enabled
|
|
506
566
|
});
|
|
567
|
+
const { data: currentEntity } = (0, _queryClient.useQuery)([
|
|
568
|
+
entityType,
|
|
569
|
+
entityId,
|
|
570
|
+
options?.spaceId ?? space,
|
|
571
|
+
options?.environmentId ?? environment,
|
|
572
|
+
undefined
|
|
573
|
+
], ()=>getEntity(entityType, entityId, undefined, options), {
|
|
574
|
+
enabled: options?.enabled && !!releaseId
|
|
575
|
+
});
|
|
507
576
|
return {
|
|
508
577
|
status,
|
|
509
|
-
data
|
|
578
|
+
data,
|
|
579
|
+
currentEntity
|
|
510
580
|
};
|
|
511
581
|
}
|
|
512
582
|
function useResource(resourceType, urn, { locale, ...options } = {}) {
|
|
@@ -18,20 +18,19 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
default: obj
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity,
|
|
21
|
+
function EntityStatusBadge({ entityType, getEntityScheduledActions, status, useLocalizedEntityStatus, localesStatusMap, activeLocales, entity, releaseStatusMap, releaseAction, release, ...props }) {
|
|
22
22
|
const { isError, isLoading, jobs } = (0, _ScheduledIconWithTooltip.useScheduledActions)({
|
|
23
23
|
entityId: entity.sys.id,
|
|
24
24
|
entityType,
|
|
25
25
|
getEntityScheduledActions
|
|
26
26
|
});
|
|
27
|
-
if (
|
|
27
|
+
if (release && releaseStatusMap && useLocalizedEntityStatus && activeLocales) {
|
|
28
28
|
return /*#__PURE__*/ _react.default.createElement(_fieldeditorshared.ReleaseEntityStatusPopover, {
|
|
29
|
-
|
|
30
|
-
activeLocales: activeLocales
|
|
31
|
-
isLoading: isReleasesLoading
|
|
29
|
+
releaseStatusMap: releaseStatusMap,
|
|
30
|
+
activeLocales: activeLocales
|
|
32
31
|
});
|
|
33
32
|
}
|
|
34
|
-
if (
|
|
33
|
+
if (release && releaseAction) {
|
|
35
34
|
return /*#__PURE__*/ _react.default.createElement(_fieldeditorshared.ReleaseEntityStatusBadge, {
|
|
36
35
|
action: releaseAction
|
|
37
36
|
});
|
|
@@ -84,12 +84,12 @@ function CombinedEntryLinkActions(props) {
|
|
|
84
84
|
onSelect: (contentTypeId)=>{
|
|
85
85
|
return contentTypeId ? props.onCreate(contentTypeId) : Promise.resolve();
|
|
86
86
|
},
|
|
87
|
-
customDropdownItems: props.canLinkEntity ? /*#__PURE__*/ _react.createElement(_f36components.Menu
|
|
87
|
+
customDropdownItems: props.canLinkEntity ? /*#__PURE__*/ _react.createElement(_f36components.Menu.Item, {
|
|
88
88
|
testId: testIds.linkExisting,
|
|
89
89
|
onClick: ()=>{
|
|
90
90
|
props.onLinkExisting();
|
|
91
91
|
}
|
|
92
|
-
}, "Add existing content")
|
|
92
|
+
}, "Add existing content") : undefined
|
|
93
93
|
});
|
|
94
94
|
} else if (props.canLinkEntity) {
|
|
95
95
|
return /*#__PURE__*/ _react.createElement(_f36components.Button, {
|
|
@@ -11,15 +11,9 @@ Object.defineProperty(exports, "FetchingWrappedEntryCard", {
|
|
|
11
11
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _f36components = require("@contentful/f36-components");
|
|
13
13
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
14
|
-
const _get = /*#__PURE__*/ _interop_require_default(require("lodash/get"));
|
|
15
14
|
const _EntityStore = require("../../common/EntityStore");
|
|
16
15
|
const _components = require("../../components");
|
|
17
16
|
const _WrappedEntryCard = require("./WrappedEntryCard");
|
|
18
|
-
function _interop_require_default(obj) {
|
|
19
|
-
return obj && obj.__esModule ? obj : {
|
|
20
|
-
default: obj
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
17
|
function _getRequireWildcardCache(nodeInterop) {
|
|
24
18
|
if (typeof WeakMap !== "function") return null;
|
|
25
19
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -81,24 +75,19 @@ async function openEntry(sdk, entryId, options) {
|
|
|
81
75
|
return slide;
|
|
82
76
|
}
|
|
83
77
|
function FetchingWrappedEntryCard(props) {
|
|
84
|
-
const {
|
|
85
|
-
const { data: entry, status } = (0, _EntityStore.useEntity)('Entry', props.entryId);
|
|
78
|
+
const { data: entry, status, currentEntity } = (0, _EntityStore.useEntity)('Entry', props.entryId);
|
|
86
79
|
const { getEntityScheduledActions } = (0, _EntityStore.useEntityLoader)();
|
|
87
80
|
const loadEntityScheduledActions = _react.useCallback(()=>getEntityScheduledActions('Entry', props.entryId), [
|
|
88
81
|
getEntityScheduledActions,
|
|
89
82
|
props.entryId
|
|
90
83
|
]);
|
|
91
84
|
const localesStatusMap = (0, _fieldeditorshared.useLocalePublishStatus)(entry, props.sdk.locales);
|
|
92
|
-
const {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
locales,
|
|
98
|
-
activeRelease,
|
|
99
|
-
releases
|
|
85
|
+
const { releaseStatusMap, releaseAction } = (0, _fieldeditorshared.useReleaseStatus)({
|
|
86
|
+
entity: entry,
|
|
87
|
+
previousEntityOnTimeline: currentEntity,
|
|
88
|
+
release: props.sdk.release,
|
|
89
|
+
locales: props.sdk.locales
|
|
100
90
|
});
|
|
101
|
-
const { releaseAction } = (0, _fieldeditorshared.getEntityReleaseStatus)(props.entryId, locales, activeRelease);
|
|
102
91
|
const size = props.viewType === 'link' ? 'small' : 'default';
|
|
103
92
|
const { getEntity } = (0, _EntityStore.useEntityLoader)();
|
|
104
93
|
const getAsset = (assetId)=>getEntity('Asset', assetId);
|
|
@@ -111,7 +100,7 @@ function FetchingWrappedEntryCard(props) {
|
|
|
111
100
|
entity: 'Entry',
|
|
112
101
|
type: 'edit',
|
|
113
102
|
id: props.entryId,
|
|
114
|
-
contentTypeId:
|
|
103
|
+
contentTypeId: entry.sys.contentType.sys.id,
|
|
115
104
|
slide
|
|
116
105
|
});
|
|
117
106
|
};
|
|
@@ -121,7 +110,7 @@ function FetchingWrappedEntryCard(props) {
|
|
|
121
110
|
entity: 'Entry',
|
|
122
111
|
type: 'delete',
|
|
123
112
|
id: props.entryId,
|
|
124
|
-
contentTypeId:
|
|
113
|
+
contentTypeId: entry.sys.contentType.sys.id
|
|
125
114
|
});
|
|
126
115
|
};
|
|
127
116
|
_react.useEffect(()=>{
|
|
@@ -176,9 +165,8 @@ function FetchingWrappedEntryCard(props) {
|
|
|
176
165
|
useLocalizedEntityStatus: props.sdk.parameters.instance.useLocalizedEntityStatus,
|
|
177
166
|
localesStatusMap,
|
|
178
167
|
activeLocales: props.activeLocales,
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
activeRelease,
|
|
168
|
+
releaseStatusMap,
|
|
169
|
+
release: props.sdk.release,
|
|
182
170
|
releaseAction
|
|
183
171
|
};
|
|
184
172
|
const { hasCardEditActions, hasCardMoveActions, hasCardRemoveActions } = props;
|
|
@@ -61,7 +61,7 @@ const defaultProps = {
|
|
|
61
61
|
hasCardMoveActions: true,
|
|
62
62
|
hasCardRemoveActions: true
|
|
63
63
|
};
|
|
64
|
-
function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseAction,
|
|
64
|
+
function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeCode, defaultLocaleCode, localesStatusMap, useLocalizedEntityStatus, size, spaceName, isClickable, isDisabled, isSelected, hasCardMoveActions, hasCardEditActions, hasCardRemoveActions, renderDragHandle, getAsset, getEntityScheduledActions, onClick, onEdit, onRemove, onMoveTop, onMoveBottom, releaseAction, releaseStatusMap, release }) {
|
|
65
65
|
const [file, setFile] = _react.useState(null);
|
|
66
66
|
_react.useEffect(()=>{
|
|
67
67
|
let mounted = true;
|
|
@@ -129,9 +129,8 @@ function WrappedEntryCard({ entry, entryUrl, contentType, activeLocales, localeC
|
|
|
129
129
|
localesStatusMap: localesStatusMap,
|
|
130
130
|
activeLocales: activeLocales,
|
|
131
131
|
releaseAction: releaseAction,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
activeRelease: activeRelease
|
|
132
|
+
releaseStatusMap: releaseStatusMap,
|
|
133
|
+
release: release
|
|
135
134
|
}),
|
|
136
135
|
icon: spaceName ? /*#__PURE__*/ _react.createElement(_SpaceName.SpaceName, {
|
|
137
136
|
spaceName: spaceName,
|
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
6
6
|
require("@testing-library/jest-dom");
|
|
7
|
-
const _fieldeditortestutils = require("@contentful/field-editor-test-utils");
|
|
8
7
|
const _react1 = require("@testing-library/react");
|
|
9
8
|
const _published_content_typejson = /*#__PURE__*/ _interop_require_default(require("../../__fixtures__/content-type/published_content_type.json"));
|
|
10
9
|
const _published_entry_non_masterjson = /*#__PURE__*/ _interop_require_default(require("../../__fixtures__/entry/published_entry_non_master.json"));
|
|
@@ -77,11 +76,11 @@ const sdk = {
|
|
|
77
76
|
locales: {
|
|
78
77
|
default: 'en-US'
|
|
79
78
|
},
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
cma: {
|
|
80
|
+
contentType: {
|
|
82
81
|
get: jest.fn().mockReturnValue(_published_content_typejson.default)
|
|
83
82
|
},
|
|
84
|
-
|
|
83
|
+
entry: {
|
|
85
84
|
get: jest.fn().mockImplementation(({ spaceId, environmentId, entryId })=>{
|
|
86
85
|
if (spaceId === 'space-id' && environmentId === 'master' && entryId === 'linked-entry-urn') {
|
|
87
86
|
return Promise.resolve(_published_entryjson.default);
|
|
@@ -92,7 +91,7 @@ const sdk = {
|
|
|
92
91
|
return Promise.reject(new Error());
|
|
93
92
|
})
|
|
94
93
|
},
|
|
95
|
-
|
|
94
|
+
locale: {
|
|
96
95
|
getMany: jest.fn().mockResolvedValue({
|
|
97
96
|
items: [
|
|
98
97
|
{
|
|
@@ -102,7 +101,7 @@ const sdk = {
|
|
|
102
101
|
]
|
|
103
102
|
})
|
|
104
103
|
},
|
|
105
|
-
|
|
104
|
+
resource: {
|
|
106
105
|
getMany: jest.fn().mockImplementation(({ spaceId, environmentId, resourceTypeId, query })=>{
|
|
107
106
|
if (spaceId === 'space-id' && environmentId === 'environment-id' && resourceTypeId === resolvableExternalResourceType && query['sys.urn[in]'] === resolvableExternalEntityUrn) {
|
|
108
107
|
return Promise.resolve({
|
|
@@ -122,8 +121,12 @@ const sdk = {
|
|
|
122
121
|
});
|
|
123
122
|
})
|
|
124
123
|
},
|
|
125
|
-
|
|
124
|
+
resourceType: {
|
|
126
125
|
getForEnvironment: jest.fn().mockImplementation(({ spaceId, environmentId })=>{
|
|
126
|
+
console.log('>> getForEnvironment', {
|
|
127
|
+
spaceId,
|
|
128
|
+
environmentId
|
|
129
|
+
});
|
|
127
130
|
if (spaceId === 'space-id' && environmentId === 'environment-id') {
|
|
128
131
|
return Promise.resolve({
|
|
129
132
|
items: [
|
|
@@ -137,16 +140,16 @@ const sdk = {
|
|
|
137
140
|
});
|
|
138
141
|
})
|
|
139
142
|
},
|
|
140
|
-
|
|
143
|
+
scheduledActions: {
|
|
141
144
|
getMany: jest.fn().mockResolvedValue({
|
|
142
145
|
items: [],
|
|
143
146
|
total: 0
|
|
144
147
|
})
|
|
145
148
|
},
|
|
146
|
-
|
|
149
|
+
space: {
|
|
147
150
|
get: jest.fn().mockResolvedValue(_indifferent_spacejson.default)
|
|
148
151
|
},
|
|
149
|
-
|
|
152
|
+
resourceProvider: {
|
|
150
153
|
get: jest.fn().mockImplementation(()=>{
|
|
151
154
|
return Promise.resolve({
|
|
152
155
|
function: {
|
|
@@ -157,7 +160,7 @@ const sdk = {
|
|
|
157
160
|
});
|
|
158
161
|
})
|
|
159
162
|
}
|
|
160
|
-
}
|
|
163
|
+
},
|
|
161
164
|
space: {
|
|
162
165
|
onEntityChanged: jest.fn()
|
|
163
166
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createFakeFieldAPI, createFakeLocalesAPI, createFakeSpaceAPI } from '@contentful/field-editor-test-utils';
|
|
2
2
|
import { assets, contentTypes, entries, locales as localesFixtures, spaces } from './fixtures';
|
|
3
3
|
const newLink = (linkType, id)=>({
|
|
4
4
|
sys: {
|
|
@@ -47,8 +47,8 @@ export function newReferenceEditorFakeSdk(props) {
|
|
|
47
47
|
const sdk = {
|
|
48
48
|
field,
|
|
49
49
|
locales,
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
cma: {
|
|
51
|
+
entry: {
|
|
52
52
|
get: async ({ entryId })=>{
|
|
53
53
|
if (props?.fetchDelay) {
|
|
54
54
|
await delay(props.fetchDelay);
|
|
@@ -65,7 +65,7 @@ export function newReferenceEditorFakeSdk(props) {
|
|
|
65
65
|
return Promise.reject({});
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
-
|
|
68
|
+
asset: {
|
|
69
69
|
get: async ({ assetId })=>{
|
|
70
70
|
if (props?.fetchDelay) {
|
|
71
71
|
await delay(props.fetchDelay);
|
|
@@ -82,7 +82,7 @@ export function newReferenceEditorFakeSdk(props) {
|
|
|
82
82
|
return Promise.reject({});
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
|
-
|
|
85
|
+
space: {
|
|
86
86
|
get: async (params)=>{
|
|
87
87
|
if (params.spaceId === spaces.indifferent.sys.id) {
|
|
88
88
|
return spaces.indifferent;
|
|
@@ -90,7 +90,7 @@ export function newReferenceEditorFakeSdk(props) {
|
|
|
90
90
|
return Promise.reject({});
|
|
91
91
|
}
|
|
92
92
|
},
|
|
93
|
-
|
|
93
|
+
contentType: {
|
|
94
94
|
get: async ({ contentTypeId })=>{
|
|
95
95
|
if (contentTypeId === contentTypes.published.sys.id) {
|
|
96
96
|
return contentTypes.published;
|
|
@@ -101,7 +101,7 @@ export function newReferenceEditorFakeSdk(props) {
|
|
|
101
101
|
Locale: {
|
|
102
102
|
getMany: async ()=>localesFixtures.list
|
|
103
103
|
}
|
|
104
|
-
}
|
|
104
|
+
},
|
|
105
105
|
space: {
|
|
106
106
|
...space,
|
|
107
107
|
getCachedContentTypes () {
|