@contentful/field-editor-reference 5.19.0 → 5.20.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 +3 -3
- package/dist/cjs/__fixtures__/asset/index.js +10 -10
- package/dist/cjs/__fixtures__/content-type/index.js +1 -1
- package/dist/cjs/__fixtures__/entry/index.js +7 -7
- package/dist/cjs/__fixtures__/fixtures.js +8 -6
- package/dist/cjs/__fixtures__/locale/index.js +2 -2
- package/dist/cjs/__fixtures__/space/index.js +1 -1
- package/dist/cjs/assets/MultipleMediaEditor.js +7 -5
- package/dist/cjs/assets/SingleMediaEditor.js +6 -4
- package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +21 -19
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +18 -11
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +20 -11
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +12 -9
- package/dist/cjs/assets/index.js +3 -3
- package/dist/cjs/common/EntityStore.js +53 -53
- package/dist/cjs/common/MultipleReferenceEditor.js +20 -11
- package/dist/cjs/common/ReferenceEditor.js +7 -5
- package/dist/cjs/common/SingleReferenceEditor.js +11 -7
- package/dist/cjs/common/SortableLinkList.js +14 -14
- package/dist/cjs/common/customCardTypes.js +4 -2
- package/dist/cjs/common/queryClient.js +102 -0
- package/dist/cjs/common/useContentTypePermissions.js +3 -1
- package/dist/cjs/common/useEditorPermissions.js +15 -3
- package/dist/cjs/common/useEditorPermissions.spec.js +13 -12
- package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +5 -3
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +13 -9
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +17 -15
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +29 -19
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +14 -12
- package/dist/cjs/components/LinkActions/CombinedLinkActions.js +28 -21
- package/dist/cjs/components/LinkActions/LinkActions.js +17 -15
- package/dist/cjs/components/LinkActions/LinkEntityActions.js +26 -17
- package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +5 -3
- package/dist/cjs/components/LinkActions/helpers.js +10 -5
- package/dist/cjs/components/LinkActions/redesignStyles.js +4 -4
- package/dist/cjs/components/LinkActions/styles.js +1 -1
- package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +11 -9
- package/dist/cjs/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +6 -4
- package/dist/cjs/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +6 -4
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +10 -8
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +9 -4
- package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +5 -4
- package/dist/cjs/components/SpaceName/SpaceName.js +9 -7
- package/dist/cjs/components/index.js +12 -12
- package/dist/cjs/entries/MultipleEntryReferenceEditor.js +9 -7
- package/dist/cjs/entries/SingleEntryReferenceEditor.js +7 -5
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +20 -11
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +23 -17
- package/dist/cjs/entries/index.js +3 -3
- package/dist/cjs/index.js +38 -34
- package/dist/cjs/resources/Cards/ContentfulEntryCard.js +13 -4
- package/dist/cjs/resources/Cards/ResourceCard.js +16 -12
- package/dist/cjs/resources/Cards/ResourceCard.spec.js +20 -17
- package/dist/cjs/resources/MultipleResourceReferenceEditor.js +20 -17
- package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +34 -13
- package/dist/cjs/resources/SingleResourceReferenceEditor.js +11 -9
- package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +13 -6
- package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +12 -5
- package/dist/cjs/resources/useResourceLinkActions.js +11 -2
- package/dist/cjs/types.js +3 -3
- package/dist/cjs/utils/fromFieldValidations.js +2 -1
- package/dist/cjs/utils/useSortIDs.js +6 -4
- package/dist/esm/__fixtures__/FakeSdk.js +3 -3
- package/dist/esm/assets/MultipleMediaEditor.js +3 -3
- package/dist/esm/assets/SingleMediaEditor.js +2 -2
- package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +12 -12
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +14 -9
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +15 -7
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +7 -6
- package/dist/esm/common/EntityStore.js +40 -42
- package/dist/esm/common/MultipleReferenceEditor.js +16 -9
- package/dist/esm/common/ReferenceEditor.js +2 -2
- package/dist/esm/common/SingleReferenceEditor.js +7 -5
- package/dist/esm/common/SortableLinkList.js +12 -12
- package/dist/esm/common/queryClient.js +44 -0
- package/dist/esm/common/useContentTypePermissions.js +3 -1
- package/dist/esm/common/useEditorPermissions.js +15 -3
- package/dist/esm/common/useEditorPermissions.spec.js +13 -12
- package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +1 -1
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +7 -5
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +12 -12
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +23 -15
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +9 -8
- package/dist/esm/components/LinkActions/CombinedLinkActions.js +30 -19
- package/dist/esm/components/LinkActions/LinkActions.js +9 -9
- package/dist/esm/components/LinkActions/LinkEntityActions.js +18 -11
- package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +1 -1
- package/dist/esm/components/LinkActions/helpers.js +7 -2
- package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +6 -6
- package/dist/esm/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +2 -2
- package/dist/esm/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +2 -2
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +3 -3
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +5 -2
- package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +11 -2
- package/dist/esm/components/SpaceName/SpaceName.js +4 -4
- package/dist/esm/entries/MultipleEntryReferenceEditor.js +5 -5
- package/dist/esm/entries/SingleEntryReferenceEditor.js +3 -3
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +15 -8
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +18 -14
- package/dist/esm/index.js +1 -0
- package/dist/esm/resources/Cards/ContentfulEntryCard.js +9 -2
- package/dist/esm/resources/Cards/ResourceCard.js +12 -10
- package/dist/esm/resources/Cards/ResourceCard.spec.js +12 -11
- package/dist/esm/resources/MultipleResourceReferenceEditor.js +14 -13
- package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +30 -11
- package/dist/esm/resources/SingleResourceReferenceEditor.js +6 -6
- package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +9 -4
- package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +9 -2
- package/dist/esm/resources/useResourceLinkActions.js +11 -2
- package/dist/esm/utils/fromFieldValidations.js +1 -0
- package/dist/esm/utils/useSortIDs.js +2 -2
- package/dist/types/common/EntityStore.d.ts +1 -1
- package/dist/types/common/queryClient.d.ts +9 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
EntityProvider: function() {
|
|
13
|
+
return EntityProvider;
|
|
14
|
+
},
|
|
12
15
|
UnsupportedError: function() {
|
|
13
16
|
return UnsupportedError;
|
|
14
17
|
},
|
|
@@ -18,21 +21,18 @@ _export(exports, {
|
|
|
18
21
|
useEntity: function() {
|
|
19
22
|
return useEntity;
|
|
20
23
|
},
|
|
21
|
-
useResource: function() {
|
|
22
|
-
return useResource;
|
|
23
|
-
},
|
|
24
|
-
EntityProvider: function() {
|
|
25
|
-
return EntityProvider;
|
|
26
|
-
},
|
|
27
24
|
useEntityLoader: function() {
|
|
28
25
|
return useEntityLoader;
|
|
26
|
+
},
|
|
27
|
+
useResource: function() {
|
|
28
|
+
return useResource;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
32
|
-
const
|
|
33
|
-
const _constate = _interop_require_default(require("constate"));
|
|
31
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
32
|
+
const _constate = /*#__PURE__*/ _interop_require_default(require("constate"));
|
|
34
33
|
const _contentfulmanagement = require("contentful-management");
|
|
35
|
-
const _pqueue = _interop_require_default(require("p-queue"));
|
|
34
|
+
const _pqueue = /*#__PURE__*/ _interop_require_default(require("p-queue"));
|
|
35
|
+
const _queryClient = require("./queryClient");
|
|
36
36
|
function _define_property(obj, key, value) {
|
|
37
37
|
if (key in obj) {
|
|
38
38
|
Object.defineProperty(obj, key, {
|
|
@@ -72,7 +72,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
72
72
|
if (cache && cache.has(obj)) {
|
|
73
73
|
return cache.get(obj);
|
|
74
74
|
}
|
|
75
|
-
var newObj = {
|
|
75
|
+
var newObj = {
|
|
76
|
+
__proto__: null
|
|
77
|
+
};
|
|
76
78
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
77
79
|
for(var key in obj){
|
|
78
80
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -90,6 +92,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
90
92
|
}
|
|
91
93
|
return newObj;
|
|
92
94
|
}
|
|
95
|
+
// global queue for all requests, the actual number is picked without scientific research
|
|
93
96
|
const globalQueue = new _pqueue.default({
|
|
94
97
|
concurrency: 50
|
|
95
98
|
});
|
|
@@ -107,7 +110,8 @@ const isEntityQueryKey = (queryKey)=>{
|
|
|
107
110
|
return Array.isArray(queryKey) && (queryKey[0] === 'Entry' || queryKey[0] === 'Asset') && queryKey.length === 4;
|
|
108
111
|
};
|
|
109
112
|
async function fetchContentfulEntry(params) {
|
|
110
|
-
const { urn
|
|
113
|
+
const { urn, fetch, options } = params;
|
|
114
|
+
// TODO use resource-names package EntryResourceName `fromString` method instead when the package becomes public
|
|
111
115
|
const resourceId = urn.split(':', 6)[5];
|
|
112
116
|
const ENTITY_RESOURCE_ID_REGEX = RegExp("^spaces\\/(?<spaceId>[^/]+)(?:\\/environments\\/(?<environmentId>[^/]+))?\\/entries\\/(?<entityId>[^/]+)$");
|
|
113
117
|
const resourceIdMatch = resourceId.match(ENTITY_RESOURCE_ID_REGEX);
|
|
@@ -121,7 +125,7 @@ async function fetchContentfulEntry(params) {
|
|
|
121
125
|
fetch([
|
|
122
126
|
'space',
|
|
123
127
|
spaceId
|
|
124
|
-
], ({ cmaClient
|
|
128
|
+
], ({ cmaClient })=>cmaClient.space.get({
|
|
125
129
|
spaceId
|
|
126
130
|
}), options),
|
|
127
131
|
fetch([
|
|
@@ -129,7 +133,7 @@ async function fetchContentfulEntry(params) {
|
|
|
129
133
|
spaceId,
|
|
130
134
|
environmentId,
|
|
131
135
|
entryId
|
|
132
|
-
], ({ cmaClient
|
|
136
|
+
], ({ cmaClient })=>cmaClient.entry.get({
|
|
133
137
|
spaceId,
|
|
134
138
|
environmentId,
|
|
135
139
|
entryId
|
|
@@ -142,7 +146,7 @@ async function fetchContentfulEntry(params) {
|
|
|
142
146
|
spaceId,
|
|
143
147
|
environmentId,
|
|
144
148
|
contentTypeId
|
|
145
|
-
], ({ cmaClient
|
|
149
|
+
], ({ cmaClient })=>cmaClient.contentType.get({
|
|
146
150
|
contentTypeId,
|
|
147
151
|
spaceId,
|
|
148
152
|
environmentId
|
|
@@ -151,7 +155,7 @@ async function fetchContentfulEntry(params) {
|
|
|
151
155
|
'defaultLocale',
|
|
152
156
|
spaceId,
|
|
153
157
|
environmentId
|
|
154
|
-
], async ({ cmaClient
|
|
158
|
+
], async ({ cmaClient })=>{
|
|
155
159
|
const locales = await cmaClient.locale.getMany({
|
|
156
160
|
spaceId,
|
|
157
161
|
environmentId,
|
|
@@ -180,7 +184,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
180
184
|
props.sdk.ids.environmentAlias,
|
|
181
185
|
props.sdk.ids.environment
|
|
182
186
|
]);
|
|
183
|
-
const queryClient = (0,
|
|
187
|
+
const queryClient = (0, _queryClient.useQueryClient)();
|
|
184
188
|
const queryCache = queryClient.getQueryCache();
|
|
185
189
|
const entityChangeUnsubscribers = (0, _react.useRef)({});
|
|
186
190
|
const cmaClient = (0, _react.useMemo)(()=>(0, _contentfulmanagement.createClient)({
|
|
@@ -201,7 +205,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
201
205
|
props.queryConcurrency
|
|
202
206
|
]);
|
|
203
207
|
const fetch = (0, _react.useCallback)(function fetch(queryKey, fn, options = {}) {
|
|
204
|
-
const { priority
|
|
208
|
+
const { priority, ...queryOptions } = options;
|
|
205
209
|
return queryClient.fetchQuery(queryKey, ()=>queryQueue.add(()=>fn({
|
|
206
210
|
cmaClient
|
|
207
211
|
}), {
|
|
@@ -221,7 +225,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
221
225
|
spaceId,
|
|
222
226
|
environmentId
|
|
223
227
|
];
|
|
224
|
-
return fetch(queryKey,
|
|
228
|
+
return fetch(queryKey, // @ts-expect-error
|
|
229
|
+
({ cmaClient })=>{
|
|
225
230
|
if (entityType === 'Entry') {
|
|
226
231
|
return cmaClient.entry.get({
|
|
227
232
|
entryId: entityId,
|
|
@@ -243,8 +248,18 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
243
248
|
currentSpaceId,
|
|
244
249
|
currentEnvironmentId
|
|
245
250
|
]);
|
|
246
|
-
|
|
251
|
+
/**
|
|
252
|
+
* Fetch all scheduled actions for a given entity.
|
|
253
|
+
* This function fetches all schedules for all entries and then returns
|
|
254
|
+
* a filtered result based on the entityID provided.
|
|
255
|
+
*
|
|
256
|
+
* The result is then reused/cached for subsequent calls to this function.
|
|
257
|
+
*/ const getEntityScheduledActions = (0, _react.useCallback)(function getEntityScheduledActions(entityType, entityId, options) {
|
|
258
|
+
// This is fixed to force the cache to reuse previous results
|
|
247
259
|
const fixedEntityCacheId = 'scheduledActionEntityId';
|
|
260
|
+
// A space+environment combo can only have up to 500 scheduled actions
|
|
261
|
+
// With this request we fetch all schedules and can reuse the results.
|
|
262
|
+
// See https://www.contentful.com/developers/docs/references/content-management-api/#/reference/scheduled-actions/limitations
|
|
248
263
|
const maxScheduledActions = 500;
|
|
249
264
|
const spaceId = options?.spaceId ?? currentSpaceId;
|
|
250
265
|
const environmentId = options?.environmentId ?? currentEnvironmentId;
|
|
@@ -255,7 +270,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
255
270
|
spaceId,
|
|
256
271
|
environmentId
|
|
257
272
|
];
|
|
258
|
-
|
|
273
|
+
// Fetch + Filter by entity ID in the end
|
|
274
|
+
return fetch(queryKey, async ({ cmaClient })=>{
|
|
259
275
|
const response = await cmaClient.scheduledActions.getMany({
|
|
260
276
|
spaceId,
|
|
261
277
|
query: {
|
|
@@ -299,6 +315,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
299
315
|
currentSpaceId,
|
|
300
316
|
environmentIds
|
|
301
317
|
]);
|
|
318
|
+
// @ts-expect-error ...
|
|
302
319
|
const onEntityChanged = props.sdk.space.onEntityChanged;
|
|
303
320
|
const onSlideInNavigation = props.sdk.navigator.onSlideInNavigation;
|
|
304
321
|
(0, _react.useEffect)(()=>{
|
|
@@ -309,15 +326,16 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
309
326
|
});
|
|
310
327
|
}
|
|
311
328
|
if (typeof onEntityChanged !== 'function') {
|
|
312
|
-
return onSlideInNavigation(({ oldSlideLevel
|
|
329
|
+
return onSlideInNavigation(({ oldSlideLevel, newSlideLevel })=>{
|
|
313
330
|
if (oldSlideLevel > newSlideLevel) {
|
|
314
331
|
findSameSpaceQueries().forEach((query)=>{
|
|
332
|
+
// automatically refetches the query
|
|
315
333
|
void queryClient.invalidateQueries(query.queryKey);
|
|
316
334
|
});
|
|
317
335
|
}
|
|
318
336
|
});
|
|
319
337
|
}
|
|
320
|
-
const subscribeQuery = ({ queryKey
|
|
338
|
+
const subscribeQuery = ({ queryKey, queryHash })=>{
|
|
321
339
|
const [entityType, entityId] = queryKey;
|
|
322
340
|
entityChangeUnsubscribers.current[queryHash] = onEntityChanged(entityType, entityId, (data)=>{
|
|
323
341
|
queryClient.setQueryData(queryKey, data);
|
|
@@ -328,8 +346,8 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
328
346
|
if (!event) {
|
|
329
347
|
return;
|
|
330
348
|
}
|
|
331
|
-
const { type
|
|
332
|
-
const { queryKey
|
|
349
|
+
const { type, query } = event;
|
|
350
|
+
const { queryKey, queryHash } = query;
|
|
333
351
|
if (!isSameSpaceEntityQueryKey(queryKey)) {
|
|
334
352
|
return;
|
|
335
353
|
}
|
|
@@ -337,6 +355,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
337
355
|
subscribeQuery(query);
|
|
338
356
|
}
|
|
339
357
|
if (type === 'removed') {
|
|
358
|
+
// calling unsubscribe
|
|
340
359
|
entityChangeUnsubscribers.current[queryHash]?.();
|
|
341
360
|
}
|
|
342
361
|
});
|
|
@@ -361,24 +380,24 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
|
|
|
361
380
|
getEntity,
|
|
362
381
|
getEntityScheduledActions
|
|
363
382
|
};
|
|
364
|
-
}, ({ fetch
|
|
383
|
+
}, ({ fetch })=>fetch, ({ getResource, getEntity, getEntityScheduledActions })=>({
|
|
365
384
|
getResource,
|
|
366
385
|
getEntity,
|
|
367
386
|
getEntityScheduledActions
|
|
368
|
-
}), ({ ids
|
|
387
|
+
}), ({ ids })=>({
|
|
369
388
|
environment: ids.environmentAlias ?? ids.environment,
|
|
370
389
|
space: ids.space
|
|
371
390
|
}));
|
|
372
391
|
function useEntity(entityType, entityId, options) {
|
|
373
|
-
const { space
|
|
374
|
-
const { getEntity
|
|
392
|
+
const { space, environment } = useCurrentIds();
|
|
393
|
+
const { getEntity } = useEntityLoader();
|
|
375
394
|
const queryKey = [
|
|
376
395
|
entityType,
|
|
377
396
|
entityId,
|
|
378
397
|
options?.spaceId ?? space,
|
|
379
398
|
options?.environmentId ?? environment
|
|
380
399
|
];
|
|
381
|
-
const { status
|
|
400
|
+
const { status, data } = (0, _queryClient.useQuery)(queryKey, ()=>getEntity(entityType, entityId, options), {
|
|
382
401
|
enabled: options?.enabled
|
|
383
402
|
});
|
|
384
403
|
return {
|
|
@@ -392,8 +411,8 @@ function useResource(resourceType, urn, options) {
|
|
|
392
411
|
resourceType,
|
|
393
412
|
urn
|
|
394
413
|
];
|
|
395
|
-
const { getResource
|
|
396
|
-
const { status
|
|
414
|
+
const { getResource } = useEntityLoader();
|
|
415
|
+
const { status, data, error } = (0, _queryClient.useQuery)(queryKey, ()=>getResource(resourceType, urn, options), {
|
|
397
416
|
enabled: options?.enabled
|
|
398
417
|
});
|
|
399
418
|
return {
|
|
@@ -402,25 +421,6 @@ function useResource(resourceType, urn, options) {
|
|
|
402
421
|
error
|
|
403
422
|
};
|
|
404
423
|
}
|
|
405
|
-
function EntityProvider({ children
|
|
406
|
-
|
|
407
|
-
const queryCache = new _reactquery.QueryCache();
|
|
408
|
-
const queryClient = new _reactquery.QueryClient({
|
|
409
|
-
queryCache,
|
|
410
|
-
defaultOptions: {
|
|
411
|
-
queries: {
|
|
412
|
-
useErrorBoundary: false,
|
|
413
|
-
refetchOnWindowFocus: false,
|
|
414
|
-
refetchOnReconnect: true,
|
|
415
|
-
refetchOnMount: false,
|
|
416
|
-
staleTime: Infinity,
|
|
417
|
-
retry: false
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
return queryClient;
|
|
422
|
-
}, []);
|
|
423
|
-
return _react.default.createElement(_reactquery.QueryClientProvider, {
|
|
424
|
-
client: reactQueryClient
|
|
425
|
-
}, _react.default.createElement(InternalServiceProvider, props, children));
|
|
424
|
+
function EntityProvider({ children, ...props }) {
|
|
425
|
+
return /*#__PURE__*/ _react.default.createElement(_queryClient.SharedQueryClientProvider, null, /*#__PURE__*/ _react.default.createElement(InternalServiceProvider, props, children));
|
|
426
426
|
}
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "MultipleReferenceEditor", {
|
|
|
8
8
|
return MultipleReferenceEditor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _sortable = require("@dnd-kit/sortable");
|
|
13
13
|
const _components = require("../components");
|
|
14
14
|
const _LinkEntityActions = require("../components/LinkActions/LinkEntityActions");
|
|
@@ -36,7 +36,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
36
36
|
if (cache && cache.has(obj)) {
|
|
37
37
|
return cache.get(obj);
|
|
38
38
|
}
|
|
39
|
-
var newObj = {
|
|
39
|
+
var newObj = {
|
|
40
|
+
__proto__: null
|
|
41
|
+
};
|
|
40
42
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
41
43
|
for(var key in obj){
|
|
42
44
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -73,18 +75,24 @@ const nullableValue = {
|
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
77
|
function Editor(props) {
|
|
76
|
-
const { setValue
|
|
78
|
+
const { setValue, entityType, onSortingEnd, setIndexToUpdate } = props;
|
|
77
79
|
const editorPermissions = (0, _useEditorPermissions.useEditorPermissions)(props);
|
|
78
80
|
const items = _react.useMemo(()=>{
|
|
79
|
-
return (props.items || [])
|
|
81
|
+
return (props.items || [])// If null values have found their way into the persisted
|
|
82
|
+
// value for the multiref field, replace them with an object
|
|
83
|
+
// that has the shape of a Link to make the missing entry/asset
|
|
84
|
+
// card render
|
|
85
|
+
.map((link)=>link || nullableValue);
|
|
80
86
|
}, [
|
|
81
87
|
props.items
|
|
82
88
|
]);
|
|
83
|
-
const { rearrangeSortIDs
|
|
89
|
+
const { rearrangeSortIDs } = (0, _useSortIDs.useSortIDs)(items);
|
|
84
90
|
const onSortStart = (0, _react.useCallback)(()=>{
|
|
85
91
|
document.body.classList.add('grabbing');
|
|
86
92
|
}, []);
|
|
87
|
-
const onSortEnd = (0, _react.useCallback)(({ oldIndex
|
|
93
|
+
const onSortEnd = (0, _react.useCallback)(({ oldIndex, newIndex })=>{
|
|
94
|
+
// custom callback that is invoked *before* we sort the array
|
|
95
|
+
// e.g. in Compose we want to sort the references in the referenceMap before re-rendering drag and drop
|
|
88
96
|
onSortingEnd && onSortingEnd({
|
|
89
97
|
oldIndex,
|
|
90
98
|
newIndex
|
|
@@ -128,24 +136,25 @@ function Editor(props) {
|
|
|
128
136
|
onLink,
|
|
129
137
|
itemsLength: items.length
|
|
130
138
|
});
|
|
131
|
-
const customCardRenderer = (0, _react.useCallback)((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false,
|
|
139
|
+
const customCardRenderer = (0, _react.useCallback)((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
|
|
140
|
+
[
|
|
132
141
|
linkActionsProps
|
|
133
142
|
]);
|
|
134
|
-
return _react.createElement(_react.Fragment, null, props.children({
|
|
143
|
+
return /*#__PURE__*/ _react.createElement(_react.Fragment, null, props.children({
|
|
135
144
|
...props,
|
|
136
145
|
onSortStart,
|
|
137
146
|
onSortEnd,
|
|
138
147
|
onMove,
|
|
139
148
|
renderCustomCard: props.renderCustomCard && customCardRenderer
|
|
140
|
-
}), _react.createElement(_components.LinkEntityActions, {
|
|
149
|
+
}), /*#__PURE__*/ _react.createElement(_components.LinkEntityActions, {
|
|
141
150
|
renderCustomActions: props.renderCustomActions,
|
|
142
151
|
...linkActionsProps
|
|
143
152
|
}));
|
|
144
153
|
}
|
|
145
154
|
function MultipleReferenceEditor(props) {
|
|
146
155
|
const allContentTypes = props.sdk.space.getCachedContentTypes();
|
|
147
|
-
return _react.createElement(_ReferenceEditor.ReferenceEditor, props, ({ value
|
|
148
|
-
return _react.createElement(Editor, {
|
|
156
|
+
return /*#__PURE__*/ _react.createElement(_ReferenceEditor.ReferenceEditor, props, ({ value, disabled, setValue, externalReset })=>{
|
|
157
|
+
return /*#__PURE__*/ _react.createElement(Editor, {
|
|
149
158
|
...props,
|
|
150
159
|
items: value || emptyArray,
|
|
151
160
|
isDisabled: disabled,
|
|
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "ReferenceEditor", {
|
|
|
8
8
|
return ReferenceEditor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
13
|
-
const _deepequal = _interop_require_default(require("deep-equal"));
|
|
13
|
+
const _deepequal = /*#__PURE__*/ _interop_require_default(require("deep-equal"));
|
|
14
14
|
const _EntityStore = require("./EntityStore");
|
|
15
15
|
function _interop_require_default(obj) {
|
|
16
16
|
return obj && obj.__esModule ? obj : {
|
|
@@ -38,7 +38,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
38
38
|
if (cache && cache.has(obj)) {
|
|
39
39
|
return cache.get(obj);
|
|
40
40
|
}
|
|
41
|
-
var newObj = {
|
|
41
|
+
var newObj = {
|
|
42
|
+
__proto__: null
|
|
43
|
+
};
|
|
42
44
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
43
45
|
for(var key in obj){
|
|
44
46
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -57,9 +59,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
57
59
|
return newObj;
|
|
58
60
|
}
|
|
59
61
|
function ReferenceEditor(props) {
|
|
60
|
-
return _react.createElement(_EntityStore.EntityProvider, {
|
|
62
|
+
return /*#__PURE__*/ _react.createElement(_EntityStore.EntityProvider, {
|
|
61
63
|
sdk: props.sdk
|
|
62
|
-
}, _react.createElement(_fieldeditorshared.FieldConnector, {
|
|
64
|
+
}, /*#__PURE__*/ _react.createElement(_fieldeditorshared.FieldConnector, {
|
|
63
65
|
debounce: 0,
|
|
64
66
|
field: props.sdk.field,
|
|
65
67
|
isInitiallyDisabled: props.isInitiallyDisabled,
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "SingleReferenceEditor", {
|
|
|
8
8
|
return SingleReferenceEditor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
12
12
|
const _components = require("../components");
|
|
13
13
|
const _LinkEntityActions = require("../components/LinkActions/LinkEntityActions");
|
|
14
14
|
const _ReferenceEditor = require("./ReferenceEditor");
|
|
@@ -34,7 +34,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
34
34
|
if (cache && cache.has(obj)) {
|
|
35
35
|
return cache.get(obj);
|
|
36
36
|
}
|
|
37
|
-
var newObj = {
|
|
37
|
+
var newObj = {
|
|
38
|
+
__proto__: null
|
|
39
|
+
};
|
|
38
40
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
39
41
|
for(var key in obj){
|
|
40
42
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -53,7 +55,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
53
55
|
return newObj;
|
|
54
56
|
}
|
|
55
57
|
function Editor(props) {
|
|
56
|
-
const { setValue
|
|
58
|
+
const { setValue, entityType } = props;
|
|
57
59
|
const editorPermissions = (0, _useEditorPermissions.useEditorPermissions)(props);
|
|
58
60
|
const onCreate = (0, _react.useCallback)((id)=>void setValue({
|
|
59
61
|
sys: {
|
|
@@ -85,11 +87,13 @@ function Editor(props) {
|
|
|
85
87
|
onCreate,
|
|
86
88
|
onLink
|
|
87
89
|
});
|
|
88
|
-
|
|
90
|
+
// Inject card actions props into the given custom card renderer
|
|
91
|
+
const customCardRenderer = (0, _react.useCallback)((cardProps, _, renderDefaultCard)=>props.renderCustomCard ? props.renderCustomCard(cardProps, linkActionsProps, renderDefaultCard) : false, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
|
|
92
|
+
[
|
|
89
93
|
linkActionsProps
|
|
90
94
|
]);
|
|
91
95
|
if (!props.entityId) {
|
|
92
|
-
return _react.createElement(_components.LinkEntityActions, {
|
|
96
|
+
return /*#__PURE__*/ _react.createElement(_components.LinkEntityActions, {
|
|
93
97
|
renderCustomActions: props.renderCustomActions,
|
|
94
98
|
...linkActionsProps
|
|
95
99
|
});
|
|
@@ -101,8 +105,8 @@ function Editor(props) {
|
|
|
101
105
|
}
|
|
102
106
|
function SingleReferenceEditor(props) {
|
|
103
107
|
const allContentTypes = props.sdk.space.getCachedContentTypes();
|
|
104
|
-
return _react.createElement(_ReferenceEditor.ReferenceEditor, props, ({ value
|
|
105
|
-
return _react.createElement(Editor, {
|
|
108
|
+
return /*#__PURE__*/ _react.createElement(_ReferenceEditor.ReferenceEditor, props, ({ value, setValue, disabled, externalReset })=>{
|
|
109
|
+
return /*#__PURE__*/ _react.createElement(Editor, {
|
|
106
110
|
...props,
|
|
107
111
|
key: `${externalReset}-reference`,
|
|
108
112
|
entityId: value ? value.sys.id : '',
|
|
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "SortableLinkList", {
|
|
|
8
8
|
return SortableLinkList;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react = _interop_require_default(require("react"));
|
|
12
|
-
const _f36tokens = _interop_require_default(require("@contentful/f36-tokens"));
|
|
11
|
+
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
12
|
+
const _f36tokens = /*#__PURE__*/ _interop_require_default(require("@contentful/f36-tokens"));
|
|
13
13
|
const _core = require("@dnd-kit/core");
|
|
14
14
|
const _sortable = require("@dnd-kit/sortable");
|
|
15
15
|
const _utilities = require("@dnd-kit/utilities");
|
|
@@ -35,8 +35,8 @@ const styles = {
|
|
|
35
35
|
display: 'flex'
|
|
36
36
|
})
|
|
37
37
|
};
|
|
38
|
-
const SortableLink = ({ id
|
|
39
|
-
const { listeners
|
|
38
|
+
const SortableLink = ({ id, items, item, isDisabled = false, index, children })=>{
|
|
39
|
+
const { listeners, setNodeRef, setActivatorNodeRef, transform, transition, isDragging } = (0, _sortable.useSortable)({
|
|
40
40
|
id
|
|
41
41
|
});
|
|
42
42
|
const style = {
|
|
@@ -49,16 +49,16 @@ const SortableLink = ({ id , items , item , isDisabled =false , index , children
|
|
|
49
49
|
};
|
|
50
50
|
const DragHandle = _react.default.useCallback((props)=>{
|
|
51
51
|
const SortableDragHandle = ()=>props.drag;
|
|
52
|
-
return _react.default.createElement("div", {
|
|
52
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
53
53
|
ref: setActivatorNodeRef,
|
|
54
54
|
className: styles.dragHandle,
|
|
55
55
|
...listeners
|
|
56
|
-
}, _react.default.createElement(SortableDragHandle, null));
|
|
56
|
+
}, /*#__PURE__*/ _react.default.createElement(SortableDragHandle, null));
|
|
57
57
|
}, [
|
|
58
58
|
listeners,
|
|
59
59
|
setActivatorNodeRef
|
|
60
60
|
]);
|
|
61
|
-
return _react.default.createElement("div", {
|
|
61
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
62
62
|
ref: setNodeRef,
|
|
63
63
|
style: style,
|
|
64
64
|
className: (0, _emotion.cx)(styles.item, {
|
|
@@ -72,8 +72,8 @@ const SortableLink = ({ id , items , item , isDisabled =false , index , children
|
|
|
72
72
|
DragHandle: isDisabled ? undefined : DragHandle
|
|
73
73
|
}));
|
|
74
74
|
};
|
|
75
|
-
const SortableLinkList = ({ items
|
|
76
|
-
const { sortIDs
|
|
75
|
+
const SortableLinkList = ({ items, isDisabled, className, children, onSortStart, onSortEnd, updateBeforeSortStart, sortingStrategy })=>{
|
|
76
|
+
const { sortIDs, rearrangeSortIDs } = (0, _useSortIDs.useSortIDs)(items);
|
|
77
77
|
const onSortStartHandler = _react.default.useCallback((event)=>{
|
|
78
78
|
const index = sortIDs.findIndex((item)=>item.id === event.active.id);
|
|
79
79
|
updateBeforeSortStart?.({
|
|
@@ -86,7 +86,7 @@ const SortableLinkList = ({ items , isDisabled , className , children , onSortSt
|
|
|
86
86
|
sortIDs
|
|
87
87
|
]);
|
|
88
88
|
const onSortEndHandler = _react.default.useCallback((event)=>{
|
|
89
|
-
const { active
|
|
89
|
+
const { active, over } = event;
|
|
90
90
|
if (active && over && active.id !== over.id) {
|
|
91
91
|
const oldIndex = sortIDs.findIndex((item)=>item.id === active.id);
|
|
92
92
|
const newIndex = sortIDs.findIndex((item)=>item.id === over.id);
|
|
@@ -101,17 +101,17 @@ const SortableLinkList = ({ items , isDisabled , className , children , onSortSt
|
|
|
101
101
|
sortIDs,
|
|
102
102
|
rearrangeSortIDs
|
|
103
103
|
]);
|
|
104
|
-
return _react.default.createElement(_core.DndContext, {
|
|
104
|
+
return /*#__PURE__*/ _react.default.createElement(_core.DndContext, {
|
|
105
105
|
onDragStart: onSortStartHandler,
|
|
106
106
|
onDragEnd: onSortEndHandler
|
|
107
|
-
}, _react.default.createElement(_sortable.SortableContext, {
|
|
107
|
+
}, /*#__PURE__*/ _react.default.createElement(_sortable.SortableContext, {
|
|
108
108
|
items: sortIDs,
|
|
109
109
|
strategy: sortingStrategy
|
|
110
|
-
}, _react.default.createElement("div", {
|
|
110
|
+
}, /*#__PURE__*/ _react.default.createElement("div", {
|
|
111
111
|
className: (0, _emotion.cx)(styles.container, className)
|
|
112
112
|
}, items.map((item, index)=>{
|
|
113
113
|
const id = sortIDs[index]?.id;
|
|
114
|
-
return _react.default.createElement(SortableLink, {
|
|
114
|
+
return /*#__PURE__*/ _react.default.createElement(SortableLink, {
|
|
115
115
|
key: id,
|
|
116
116
|
id: id,
|
|
117
117
|
items: items,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react = _interop_require_wildcard(require("react"));
|
|
5
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
6
6
|
function _getRequireWildcardCache(nodeInterop) {
|
|
7
7
|
if (typeof WeakMap !== "function") return null;
|
|
8
8
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -24,7 +24,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
24
24
|
if (cache && cache.has(obj)) {
|
|
25
25
|
return cache.get(obj);
|
|
26
26
|
}
|
|
27
|
-
var newObj = {
|
|
27
|
+
var newObj = {
|
|
28
|
+
__proto__: null
|
|
29
|
+
};
|
|
28
30
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
29
31
|
for(var key in obj){
|
|
30
32
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
SharedQueryClientProvider: function() {
|
|
13
|
+
return SharedQueryClientProvider;
|
|
14
|
+
},
|
|
15
|
+
useQuery: function() {
|
|
16
|
+
return useQuery;
|
|
17
|
+
},
|
|
18
|
+
useQueryClient: function() {
|
|
19
|
+
return useQueryClient;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
23
|
+
const _reactquery = require("@tanstack/react-query");
|
|
24
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
25
|
+
if (typeof WeakMap !== "function") return null;
|
|
26
|
+
var cacheBabelInterop = new WeakMap();
|
|
27
|
+
var cacheNodeInterop = new WeakMap();
|
|
28
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
29
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
30
|
+
})(nodeInterop);
|
|
31
|
+
}
|
|
32
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
33
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
37
|
+
return {
|
|
38
|
+
default: obj
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
42
|
+
if (cache && cache.has(obj)) {
|
|
43
|
+
return cache.get(obj);
|
|
44
|
+
}
|
|
45
|
+
var newObj = {
|
|
46
|
+
__proto__: null
|
|
47
|
+
};
|
|
48
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
49
|
+
for(var key in obj){
|
|
50
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
51
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
52
|
+
if (desc && (desc.get || desc.set)) {
|
|
53
|
+
Object.defineProperty(newObj, key, desc);
|
|
54
|
+
} else {
|
|
55
|
+
newObj[key] = obj[key];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
newObj.default = obj;
|
|
60
|
+
if (cache) {
|
|
61
|
+
cache.set(obj, newObj);
|
|
62
|
+
}
|
|
63
|
+
return newObj;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A custom client context ensures zero conflict with host apps also using
|
|
67
|
+
* React Query.
|
|
68
|
+
*/ const clientContext = /*#__PURE__*/ _react.createContext(undefined);
|
|
69
|
+
function useQueryClient() {
|
|
70
|
+
const client = _react.useContext(clientContext);
|
|
71
|
+
return _react.useMemo(()=>{
|
|
72
|
+
if (client) {
|
|
73
|
+
return client;
|
|
74
|
+
}
|
|
75
|
+
return new _reactquery.QueryClient({
|
|
76
|
+
defaultOptions: {
|
|
77
|
+
queries: {
|
|
78
|
+
useErrorBoundary: false,
|
|
79
|
+
refetchOnWindowFocus: false,
|
|
80
|
+
refetchOnReconnect: true,
|
|
81
|
+
refetchOnMount: false,
|
|
82
|
+
staleTime: Infinity,
|
|
83
|
+
retry: false
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}, [
|
|
88
|
+
client
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
const useQuery = (key, fn, opt)=>{
|
|
92
|
+
return (0, _reactquery.useQuery)(key, fn, {
|
|
93
|
+
...opt,
|
|
94
|
+
context: clientContext
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
function SharedQueryClientProvider({ children }) {
|
|
98
|
+
const client = useQueryClient();
|
|
99
|
+
return /*#__PURE__*/ _react.createElement(clientContext.Provider, {
|
|
100
|
+
value: client
|
|
101
|
+
}, children);
|
|
102
|
+
}
|
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "useContentTypePermissions", {
|
|
|
11
11
|
const _react = require("react");
|
|
12
12
|
const _useAccessApi = require("./useAccessApi");
|
|
13
13
|
async function filter(arr, predicate) {
|
|
14
|
+
// intentionally parallel as we assume it's cached in the implementation of the access api
|
|
14
15
|
const fail = Symbol();
|
|
15
16
|
const results = await Promise.all(arr.map(async (item)=>await predicate(item) ? item : fail));
|
|
16
17
|
return results.filter((x)=>x !== fail);
|
|
@@ -31,7 +32,7 @@ function useContentTypePermissions(props) {
|
|
|
31
32
|
]);
|
|
32
33
|
const [creatableContentTypes, setCreatableContentTypes] = (0, _react.useState)(availableContentTypes);
|
|
33
34
|
const [readableContentTypes, setReadableContentTypes] = (0, _react.useState)(availableContentTypes);
|
|
34
|
-
const { canPerformActionOnEntryOfType
|
|
35
|
+
const { canPerformActionOnEntryOfType } = (0, _useAccessApi.useAccessApi)(props.sdk.access);
|
|
35
36
|
(0, _react.useEffect)(()=>{
|
|
36
37
|
function getContentTypes(action) {
|
|
37
38
|
return filter(availableContentTypes, (ct)=>canPerformActionOnEntryOfType(action, ct.sys.id));
|
|
@@ -43,6 +44,7 @@ function useContentTypePermissions(props) {
|
|
|
43
44
|
setReadableContentTypes(readable);
|
|
44
45
|
}
|
|
45
46
|
void checkContentTypeAccess();
|
|
47
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
|
|
46
48
|
}, [
|
|
47
49
|
availableContentTypes
|
|
48
50
|
]);
|