@contentful/field-editor-reference 5.14.0 → 5.15.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.
@@ -29,10 +29,10 @@ _export(exports, {
29
29
  }
30
30
  });
31
31
  const _react = _interop_require_wildcard(require("react"));
32
- const _reactquery = require("@tanstack/react-query");
33
32
  const _constate = _interop_require_default(require("constate"));
34
33
  const _contentfulmanagement = require("contentful-management");
35
34
  const _pqueue = _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, {
@@ -180,7 +180,7 @@ const [InternalServiceProvider, useFetch, useEntityLoader, useCurrentIds] = (0,
180
180
  props.sdk.ids.environmentAlias,
181
181
  props.sdk.ids.environment
182
182
  ]);
183
- const queryClient = (0, _reactquery.useQueryClient)();
183
+ const queryClient = (0, _queryClient.useQueryClient)();
184
184
  const queryCache = queryClient.getQueryCache();
185
185
  const entityChangeUnsubscribers = (0, _react.useRef)({});
186
186
  const cmaClient = (0, _react.useMemo)(()=>(0, _contentfulmanagement.createClient)({
@@ -378,7 +378,7 @@ function useEntity(entityType, entityId, options) {
378
378
  options?.spaceId ?? space,
379
379
  options?.environmentId ?? environment
380
380
  ];
381
- const { status , data } = (0, _reactquery.useQuery)(queryKey, ()=>getEntity(entityType, entityId, options), {
381
+ const { status , data } = (0, _queryClient.useQuery)(queryKey, ()=>getEntity(entityType, entityId, options), {
382
382
  enabled: options?.enabled
383
383
  });
384
384
  return {
@@ -393,7 +393,7 @@ function useResource(resourceType, urn, options) {
393
393
  urn
394
394
  ];
395
395
  const { getResource } = useEntityLoader();
396
- const { status , data , error } = (0, _reactquery.useQuery)(queryKey, ()=>getResource(resourceType, urn, options), {
396
+ const { status , data , error } = (0, _queryClient.useQuery)(queryKey, ()=>getResource(resourceType, urn, options), {
397
397
  enabled: options?.enabled
398
398
  });
399
399
  return {
@@ -403,24 +403,5 @@ function useResource(resourceType, urn, options) {
403
403
  };
404
404
  }
405
405
  function EntityProvider({ children , ...props }) {
406
- const reactQueryClient = (0, _react.useMemo)(()=>{
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));
406
+ return _react.default.createElement(_queryClient.SharedQueryClientProvider, null, _react.default.createElement(InternalServiceProvider, props, children));
426
407
  }
@@ -0,0 +1,97 @@
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
+ useQueryClient: function() {
13
+ return useQueryClient;
14
+ },
15
+ useQuery: function() {
16
+ return useQuery;
17
+ },
18
+ SharedQueryClientProvider: function() {
19
+ return SharedQueryClientProvider;
20
+ }
21
+ });
22
+ const _react = _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
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
47
+ for(var key in obj){
48
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
49
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
50
+ if (desc && (desc.get || desc.set)) {
51
+ Object.defineProperty(newObj, key, desc);
52
+ } else {
53
+ newObj[key] = obj[key];
54
+ }
55
+ }
56
+ }
57
+ newObj.default = obj;
58
+ if (cache) {
59
+ cache.set(obj, newObj);
60
+ }
61
+ return newObj;
62
+ }
63
+ const clientContext = _react.createContext(undefined);
64
+ function useQueryClient() {
65
+ const client = _react.useContext(clientContext);
66
+ return _react.useMemo(()=>{
67
+ if (client) {
68
+ return client;
69
+ }
70
+ return new _reactquery.QueryClient({
71
+ defaultOptions: {
72
+ queries: {
73
+ useErrorBoundary: false,
74
+ refetchOnWindowFocus: false,
75
+ refetchOnReconnect: true,
76
+ refetchOnMount: false,
77
+ staleTime: Infinity,
78
+ retry: false
79
+ }
80
+ }
81
+ });
82
+ }, [
83
+ client
84
+ ]);
85
+ }
86
+ const useQuery = (key, fn, opt)=>{
87
+ return (0, _reactquery.useQuery)(key, fn, {
88
+ ...opt,
89
+ context: clientContext
90
+ });
91
+ };
92
+ function SharedQueryClientProvider({ children }) {
93
+ const client = useQueryClient();
94
+ return _react.createElement(clientContext.Provider, {
95
+ value: client
96
+ }, children);
97
+ }
package/dist/cjs/index.js CHANGED
@@ -66,6 +66,9 @@ _export(exports, {
66
66
  useResource: function() {
67
67
  return _EntityStore.useResource;
68
68
  },
69
+ EntityCacheProvider: function() {
70
+ return _queryClient.SharedQueryClientProvider;
71
+ },
69
72
  SingleResourceReferenceEditor: function() {
70
73
  return _resources.SingleResourceReferenceEditor;
71
74
  },
@@ -78,6 +81,7 @@ const _entries = require("./entries");
78
81
  const _assets = require("./assets");
79
82
  const _SortableLinkList = require("./common/SortableLinkList");
80
83
  const _EntityStore = require("./common/EntityStore");
84
+ const _queryClient = require("./common/queryClient");
81
85
  const _resources = require("./resources");
82
86
  _export_star(require("./types"), exports);
83
87
  function _export_star(from, to) {
@@ -12,10 +12,10 @@ function _define_property(obj, key, value) {
12
12
  return obj;
13
13
  }
14
14
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
15
- import { QueryCache, QueryClient, QueryClientProvider, useQuery, useQueryClient } from '@tanstack/react-query';
16
15
  import constate from 'constate';
17
16
  import { createClient } from 'contentful-management';
18
17
  import PQueue from 'p-queue';
18
+ import { SharedQueryClientProvider, useQuery, useQueryClient } from './queryClient';
19
19
  const globalQueue = new PQueue({
20
20
  concurrency: 50
21
21
  });
@@ -329,25 +329,6 @@ export function useResource(resourceType, urn, options) {
329
329
  };
330
330
  }
331
331
  function EntityProvider({ children , ...props }) {
332
- const reactQueryClient = useMemo(()=>{
333
- const queryCache = new QueryCache();
334
- const queryClient = new QueryClient({
335
- queryCache,
336
- defaultOptions: {
337
- queries: {
338
- useErrorBoundary: false,
339
- refetchOnWindowFocus: false,
340
- refetchOnReconnect: true,
341
- refetchOnMount: false,
342
- staleTime: Infinity,
343
- retry: false
344
- }
345
- }
346
- });
347
- return queryClient;
348
- }, []);
349
- return React.createElement(QueryClientProvider, {
350
- client: reactQueryClient
351
- }, React.createElement(InternalServiceProvider, props, children));
332
+ return React.createElement(SharedQueryClientProvider, null, React.createElement(InternalServiceProvider, props, children));
352
333
  }
353
334
  export { EntityProvider, useEntityLoader };
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { QueryClient, useQuery as useRQ } from '@tanstack/react-query';
3
+ const clientContext = React.createContext(undefined);
4
+ export function useQueryClient() {
5
+ const client = React.useContext(clientContext);
6
+ return React.useMemo(()=>{
7
+ if (client) {
8
+ return client;
9
+ }
10
+ return new QueryClient({
11
+ defaultOptions: {
12
+ queries: {
13
+ useErrorBoundary: false,
14
+ refetchOnWindowFocus: false,
15
+ refetchOnReconnect: true,
16
+ refetchOnMount: false,
17
+ staleTime: Infinity,
18
+ retry: false
19
+ }
20
+ }
21
+ });
22
+ }, [
23
+ client
24
+ ]);
25
+ }
26
+ export const useQuery = (key, fn, opt)=>{
27
+ return useRQ(key, fn, {
28
+ ...opt,
29
+ context: clientContext
30
+ });
31
+ };
32
+ export function SharedQueryClientProvider({ children }) {
33
+ const client = useQueryClient();
34
+ return React.createElement(clientContext.Provider, {
35
+ value: client
36
+ }, children);
37
+ }
package/dist/esm/index.js CHANGED
@@ -3,5 +3,6 @@ export { SingleEntryReferenceEditor, MultipleEntryReferenceEditor, WrappedEntryC
3
3
  export { SingleMediaEditor, MultipleMediaEditor, WrappedAssetCard } from './assets';
4
4
  export { SortableLinkList } from './common/SortableLinkList';
5
5
  export { EntityProvider, useEntityLoader, useEntity, useResource } from './common/EntityStore';
6
+ export { SharedQueryClientProvider as EntityCacheProvider } from './common/queryClient';
6
7
  export { SingleResourceReferenceEditor, MultipleResourceReferenceEditor } from './resources';
7
8
  export * from './types';
@@ -54,7 +54,7 @@ declare const useEntityLoader: () => {
54
54
  };
55
55
  export declare function useEntity<E extends FetchableEntity>(entityType: FetchableEntityType, entityId: string, options?: UseEntityOptions): UseEntityResult<E>;
56
56
  export declare function useResource(resourceType: ResourceType, urn: string, options?: UseResourceOptions): {
57
- status: "loading" | "error" | "success";
57
+ status: "error" | "success" | "loading";
58
58
  data: ResourceInfo<Resource> | undefined;
59
59
  error: unknown;
60
60
  };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { QueryClient, useQuery as useRQ } from '@tanstack/react-query';
3
+ export declare function useQueryClient(): QueryClient;
4
+ export declare const useQuery: typeof useRQ;
5
+ /**
6
+ * Provides access to a query client either by sharing an existing client or
7
+ * creating a new one.
8
+ */
9
+ export declare function SharedQueryClientProvider({ children }: React.PropsWithChildren<{}>): React.JSX.Element;
@@ -5,6 +5,7 @@ export type { CustomActionProps } from './common/ReferenceEditor';
5
5
  export type { CustomEntityCardProps, DefaultCardRenderer, MissingEntityCardProps, RenderCustomMissingEntityCard, } from './common/customCardTypes';
6
6
  export { SortableLinkList } from './common/SortableLinkList';
7
7
  export { EntityProvider, useEntityLoader, useEntity, useResource } from './common/EntityStore';
8
+ export { SharedQueryClientProvider as EntityCacheProvider } from './common/queryClient';
8
9
  export type { ResourceInfo } from './common/EntityStore';
9
10
  export { SingleResourceReferenceEditor, MultipleResourceReferenceEditor } from './resources';
10
11
  export * from './types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/field-editor-reference",
3
- "version": "5.14.0",
3
+ "version": "5.15.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -63,5 +63,5 @@
63
63
  "@contentful/app-sdk": "^4.2.0",
64
64
  "react": ">=16.8.0"
65
65
  },
66
- "gitHead": "538cc684c7cea792773969ab12cff42301c4ab9e"
66
+ "gitHead": "780d4eb1450f777c2d2396a86d0b1a10268b3c13"
67
67
  }