@wordpress/core-data 7.43.0 → 7.44.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/CHANGELOG.md +7 -1
- package/build/entities.cjs +28 -20
- package/build/entities.cjs.map +2 -2
- package/build/hooks/index.cjs +3 -3
- package/build/hooks/index.cjs.map +1 -1
- package/build/hooks/use-entity-prop.cjs +1 -1
- package/build/hooks/use-entity-prop.cjs.map +2 -2
- package/build/hooks/use-entity-record.cjs +4 -4
- package/build/hooks/use-entity-record.cjs.map +2 -2
- package/build/hooks/use-entity-records.cjs +3 -3
- package/build/hooks/use-entity-records.cjs.map +2 -2
- package/build/hooks/use-query-select.cjs +2 -2
- package/build/hooks/use-query-select.cjs.map +2 -2
- package/build/hooks/use-resource-permissions.cjs +4 -4
- package/build/hooks/use-resource-permissions.cjs.map +2 -2
- package/build/queried-data/reducer.cjs +2 -1
- package/build/queried-data/reducer.cjs.map +2 -2
- package/build/queried-data/selectors.cjs +21 -17
- package/build/queried-data/selectors.cjs.map +2 -2
- package/build/resolvers.cjs +6 -6
- package/build/resolvers.cjs.map +2 -2
- package/build/selectors.cjs +4 -2
- package/build/selectors.cjs.map +2 -2
- package/build/utils/crdt-blocks.cjs +151 -31
- package/build/utils/crdt-blocks.cjs.map +2 -2
- package/build/utils/crdt-selection.cjs.map +2 -2
- package/build/utils/crdt.cjs +8 -0
- package/build/utils/crdt.cjs.map +2 -2
- package/build-module/entities.mjs +29 -20
- package/build-module/entities.mjs.map +2 -2
- package/build-module/hooks/index.mjs +6 -6
- package/build-module/hooks/index.mjs.map +2 -2
- package/build-module/hooks/use-entity-prop.mjs +1 -1
- package/build-module/hooks/use-entity-prop.mjs.map +2 -2
- package/build-module/hooks/use-entity-record.mjs +3 -3
- package/build-module/hooks/use-entity-record.mjs.map +2 -2
- package/build-module/hooks/use-entity-records.mjs +2 -2
- package/build-module/hooks/use-entity-records.mjs.map +2 -2
- package/build-module/hooks/use-query-select.mjs +1 -1
- package/build-module/hooks/use-query-select.mjs.map +1 -1
- package/build-module/hooks/use-resource-permissions.mjs +3 -3
- package/build-module/hooks/use-resource-permissions.mjs.map +2 -2
- package/build-module/queried-data/reducer.mjs +2 -1
- package/build-module/queried-data/reducer.mjs.map +2 -2
- package/build-module/queried-data/selectors.mjs +21 -17
- package/build-module/queried-data/selectors.mjs.map +2 -2
- package/build-module/resolvers.mjs +6 -6
- package/build-module/resolvers.mjs.map +2 -2
- package/build-module/selectors.mjs +4 -2
- package/build-module/selectors.mjs.map +2 -2
- package/build-module/utils/crdt-blocks.mjs +151 -31
- package/build-module/utils/crdt-blocks.mjs.map +2 -2
- package/build-module/utils/crdt-selection.mjs.map +2 -2
- package/build-module/utils/crdt.mjs +7 -0
- package/build-module/utils/crdt.mjs.map +2 -2
- package/build-types/entities.d.ts +51 -32
- package/build-types/entities.d.ts.map +1 -1
- package/build-types/hooks/index.d.ts +3 -3
- package/build-types/hooks/index.d.ts.map +1 -1
- package/build-types/hooks/use-entity-record.d.ts +1 -1
- package/build-types/hooks/use-entity-record.d.ts.map +1 -1
- package/build-types/hooks/use-entity-records.d.ts +1 -1
- package/build-types/hooks/use-entity-records.d.ts.map +1 -1
- package/build-types/hooks/use-resource-permissions.d.ts +1 -1
- package/build-types/hooks/use-resource-permissions.d.ts.map +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/queried-data/reducer.d.ts.map +1 -1
- package/build-types/queried-data/selectors.d.ts +5 -3
- package/build-types/queried-data/selectors.d.ts.map +1 -1
- package/build-types/selectors.d.ts.map +1 -1
- package/build-types/utils/crdt-blocks.d.ts.map +1 -1
- package/build-types/utils/crdt-selection.d.ts.map +1 -1
- package/build-types/utils/crdt.d.ts +7 -0
- package/build-types/utils/crdt.d.ts.map +1 -1
- package/package.json +18 -18
- package/src/entities.js +16 -8
- package/src/hooks/index.ts +3 -3
- package/src/hooks/test/use-entity-records.js +1 -1
- package/src/hooks/use-entity-prop.js +1 -1
- package/src/hooks/use-entity-record.ts +1 -1
- package/src/hooks/use-entity-records.ts +1 -1
- package/src/hooks/use-query-select.ts +1 -1
- package/src/hooks/use-resource-permissions.ts +1 -1
- package/src/queried-data/reducer.js +3 -1
- package/src/queried-data/selectors.js +32 -26
- package/src/queried-data/test/reducer.js +7 -0
- package/src/queried-data/test/selectors.js +30 -21
- package/src/resolvers.js +6 -6
- package/src/selectors.ts +8 -2
- package/src/utils/crdt-blocks.ts +336 -62
- package/src/utils/crdt-selection.ts +0 -1
- package/src/utils/crdt.ts +15 -1
- package/src/utils/test/crdt-blocks.ts +1328 -6
- package/src/utils/test/crdt.ts +39 -1
- package/build/hooks/memoize.cjs +0 -38
- package/build/hooks/memoize.cjs.map +0 -7
- package/build-module/hooks/memoize.mjs +0 -7
- package/build-module/hooks/memoize.mjs.map +0 -7
- package/build-types/hooks/memoize.d.ts +0 -3
- package/build-types/hooks/memoize.d.ts.map +0 -1
- package/src/hooks/memoize.js +0 -7
package/src/entities.js
CHANGED
|
@@ -17,6 +17,7 @@ import { PostEditorAwareness } from './awareness/post-editor-awareness';
|
|
|
17
17
|
import { getSyncManager } from './sync';
|
|
18
18
|
import {
|
|
19
19
|
applyPostChangesToCRDTDoc,
|
|
20
|
+
defaultCollectionSyncConfig,
|
|
20
21
|
defaultSyncConfig,
|
|
21
22
|
getPostChangesFromCRDTDoc,
|
|
22
23
|
POST_META_KEY_FOR_CRDT_DOC_PERSISTENCE,
|
|
@@ -68,6 +69,7 @@ export const rootEntitiesConfig = [
|
|
|
68
69
|
// The entity doesn't support selecting multiple records.
|
|
69
70
|
// The property is maintained for backward compatibility.
|
|
70
71
|
plural: '__unstableBases',
|
|
72
|
+
supportsPagination: false,
|
|
71
73
|
},
|
|
72
74
|
{
|
|
73
75
|
label: __( 'Post Type' ),
|
|
@@ -77,6 +79,7 @@ export const rootEntitiesConfig = [
|
|
|
77
79
|
baseURL: '/wp/v2/types',
|
|
78
80
|
baseURLParams: { context: 'edit' },
|
|
79
81
|
plural: 'postTypes',
|
|
82
|
+
supportsPagination: false,
|
|
80
83
|
},
|
|
81
84
|
{
|
|
82
85
|
name: 'media',
|
|
@@ -96,6 +99,7 @@ export const rootEntitiesConfig = [
|
|
|
96
99
|
baseURLParams: { context: 'edit' },
|
|
97
100
|
plural: 'taxonomies',
|
|
98
101
|
label: __( 'Taxonomy' ),
|
|
102
|
+
supportsPagination: false,
|
|
99
103
|
},
|
|
100
104
|
{
|
|
101
105
|
name: 'sidebar',
|
|
@@ -105,6 +109,7 @@ export const rootEntitiesConfig = [
|
|
|
105
109
|
plural: 'sidebars',
|
|
106
110
|
transientEdits: { blocks: true },
|
|
107
111
|
label: __( 'Widget areas' ),
|
|
112
|
+
supportsPagination: false,
|
|
108
113
|
},
|
|
109
114
|
{
|
|
110
115
|
name: 'widget',
|
|
@@ -114,6 +119,7 @@ export const rootEntitiesConfig = [
|
|
|
114
119
|
plural: 'widgets',
|
|
115
120
|
transientEdits: { blocks: true },
|
|
116
121
|
label: __( 'Widgets' ),
|
|
122
|
+
supportsPagination: false,
|
|
117
123
|
},
|
|
118
124
|
{
|
|
119
125
|
name: 'widgetType',
|
|
@@ -122,6 +128,7 @@ export const rootEntitiesConfig = [
|
|
|
122
128
|
baseURLParams: { context: 'edit' },
|
|
123
129
|
plural: 'widgetTypes',
|
|
124
130
|
label: __( 'Widget types' ),
|
|
131
|
+
supportsPagination: false,
|
|
125
132
|
},
|
|
126
133
|
{
|
|
127
134
|
label: __( 'User' ),
|
|
@@ -141,6 +148,7 @@ export const rootEntitiesConfig = [
|
|
|
141
148
|
plural: 'comments',
|
|
142
149
|
label: __( 'Comment' ),
|
|
143
150
|
supportsPagination: true,
|
|
151
|
+
syncConfig: defaultCollectionSyncConfig,
|
|
144
152
|
},
|
|
145
153
|
{
|
|
146
154
|
name: 'menu',
|
|
@@ -169,6 +177,7 @@ export const rootEntitiesConfig = [
|
|
|
169
177
|
plural: 'menuLocations',
|
|
170
178
|
label: __( 'Menu Location' ),
|
|
171
179
|
key: 'name',
|
|
180
|
+
supportsPagination: false,
|
|
172
181
|
},
|
|
173
182
|
{
|
|
174
183
|
label: __( 'Global Styles' ),
|
|
@@ -192,6 +201,7 @@ export const rootEntitiesConfig = [
|
|
|
192
201
|
baseURLParams: { context: 'edit' },
|
|
193
202
|
plural: 'themes',
|
|
194
203
|
key: 'stylesheet',
|
|
204
|
+
supportsPagination: false,
|
|
195
205
|
},
|
|
196
206
|
{
|
|
197
207
|
label: __( 'Plugins' ),
|
|
@@ -201,6 +211,7 @@ export const rootEntitiesConfig = [
|
|
|
201
211
|
baseURLParams: { context: 'edit' },
|
|
202
212
|
plural: 'plugins',
|
|
203
213
|
key: 'plugin',
|
|
214
|
+
supportsPagination: false,
|
|
204
215
|
},
|
|
205
216
|
{
|
|
206
217
|
label: __( 'Status' ),
|
|
@@ -210,6 +221,7 @@ export const rootEntitiesConfig = [
|
|
|
210
221
|
baseURLParams: { context: 'edit' },
|
|
211
222
|
plural: 'statuses',
|
|
212
223
|
key: 'slug',
|
|
224
|
+
supportsPagination: false,
|
|
213
225
|
},
|
|
214
226
|
{
|
|
215
227
|
label: __( 'Registered Templates' ),
|
|
@@ -217,6 +229,7 @@ export const rootEntitiesConfig = [
|
|
|
217
229
|
kind: 'root',
|
|
218
230
|
baseURL: '/wp/v2/registered-templates',
|
|
219
231
|
key: 'id',
|
|
232
|
+
supportsPagination: false,
|
|
220
233
|
},
|
|
221
234
|
{
|
|
222
235
|
label: __( 'Font Collections' ),
|
|
@@ -236,15 +249,9 @@ export const rootEntitiesConfig = [
|
|
|
236
249
|
baseURLParams: { context: 'view' },
|
|
237
250
|
plural: 'icons',
|
|
238
251
|
key: 'name',
|
|
252
|
+
supportsPagination: false,
|
|
239
253
|
},
|
|
240
|
-
]
|
|
241
|
-
const syncEnabledRootEntities = new Set( [ 'comment' ] );
|
|
242
|
-
|
|
243
|
-
if ( syncEnabledRootEntities.has( entity.name ) ) {
|
|
244
|
-
entity.syncConfig = defaultSyncConfig;
|
|
245
|
-
}
|
|
246
|
-
return entity;
|
|
247
|
-
} );
|
|
254
|
+
];
|
|
248
255
|
|
|
249
256
|
export const deprecatedEntities = {
|
|
250
257
|
root: {
|
|
@@ -500,6 +507,7 @@ async function loadSiteEntity() {
|
|
|
500
507
|
kind: 'root',
|
|
501
508
|
key: false,
|
|
502
509
|
baseURL: '/wp/v2/settings',
|
|
510
|
+
supportsPagination: false,
|
|
503
511
|
meta: {},
|
|
504
512
|
};
|
|
505
513
|
|
package/src/hooks/index.ts
CHANGED
|
@@ -9,15 +9,15 @@ import type { WithPermissions } from './use-entity-records';
|
|
|
9
9
|
export type { WithPermissions };
|
|
10
10
|
export {
|
|
11
11
|
default as useEntityRecord,
|
|
12
|
-
__experimentalUseEntityRecord,
|
|
12
|
+
useDeprecatedEntityRecord as __experimentalUseEntityRecord,
|
|
13
13
|
} from './use-entity-record';
|
|
14
14
|
export {
|
|
15
15
|
default as useEntityRecords,
|
|
16
|
-
__experimentalUseEntityRecords,
|
|
16
|
+
useDeprecatedEntityRecords as __experimentalUseEntityRecords,
|
|
17
17
|
} from './use-entity-records';
|
|
18
18
|
export {
|
|
19
19
|
default as useResourcePermissions,
|
|
20
|
-
__experimentalUseResourcePermissions,
|
|
20
|
+
useDeprecatedResourcePermissions as __experimentalUseResourcePermissions,
|
|
21
21
|
} from './use-resource-permissions';
|
|
22
22
|
export { default as useEntityBlockEditor } from './use-entity-block-editor';
|
|
23
23
|
export { default as useEntityId } from './use-entity-id';
|
|
@@ -209,7 +209,7 @@ function useResourcePermissions< IdType = void >(
|
|
|
209
209
|
|
|
210
210
|
export default useResourcePermissions;
|
|
211
211
|
|
|
212
|
-
export function
|
|
212
|
+
export function useDeprecatedResourcePermissions(
|
|
213
213
|
resource: string,
|
|
214
214
|
id?: unknown
|
|
215
215
|
) {
|
|
@@ -51,6 +51,7 @@ export function getMergedItemIds(
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
const nextItemIdsStartIndex = offset ?? ( page - 1 ) * perPage;
|
|
54
|
+
const nextItemIdsRange = Math.max( perPage, nextItemIds.length );
|
|
54
55
|
|
|
55
56
|
// If later page has already been received, default to the larger known
|
|
56
57
|
// size of the existing array, else calculate as extending the existing.
|
|
@@ -67,7 +68,8 @@ export function getMergedItemIds(
|
|
|
67
68
|
// We need to check against the possible maximum upper boundary because
|
|
68
69
|
// a page could receive fewer than what was previously stored.
|
|
69
70
|
const isInNextItemsRange =
|
|
70
|
-
i >= nextItemIdsStartIndex &&
|
|
71
|
+
i >= nextItemIdsStartIndex &&
|
|
72
|
+
i < nextItemIdsStartIndex + nextItemIdsRange;
|
|
71
73
|
if ( isInNextItemsRange ) {
|
|
72
74
|
mergedItemIds[ i ] = nextItemIds[ i - nextItemIdsStartIndex ];
|
|
73
75
|
} else {
|
|
@@ -26,12 +26,15 @@ const queriedItemsCacheByState = new WeakMap();
|
|
|
26
26
|
/**
|
|
27
27
|
* Returns items for a given query, or null if the items are not known.
|
|
28
28
|
*
|
|
29
|
-
* @param {Object} state
|
|
30
|
-
* @param {?Object} query
|
|
29
|
+
* @param {Object} state State object.
|
|
30
|
+
* @param {?Object} query Optional query.
|
|
31
|
+
* @param {?Object} options Optional pagination options.
|
|
32
|
+
* @param {boolean} options.supportsPagination Whether the entity supports pagination. Default true.
|
|
31
33
|
*
|
|
32
34
|
* @return {?Array} Query items.
|
|
33
35
|
*/
|
|
34
|
-
function getQueriedItemsUncached( state, query ) {
|
|
36
|
+
function getQueriedItemsUncached( state, query, options = {} ) {
|
|
37
|
+
const { supportsPagination = true } = options;
|
|
35
38
|
const {
|
|
36
39
|
stableKey,
|
|
37
40
|
page,
|
|
@@ -47,17 +50,16 @@ function getQueriedItemsUncached( state, query ) {
|
|
|
47
50
|
return null;
|
|
48
51
|
}
|
|
49
52
|
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
const endOffset =
|
|
53
|
-
perPage
|
|
54
|
-
|
|
55
|
-
: Math.min( startOffset + perPage, itemIds.length );
|
|
53
|
+
const isPaginated = supportsPagination && perPage !== -1;
|
|
54
|
+
const startOffset = isPaginated ? queryOffset ?? ( page - 1 ) * perPage : 0;
|
|
55
|
+
const endOffset = isPaginated
|
|
56
|
+
? Math.min( startOffset + perPage, itemIds.length )
|
|
57
|
+
: itemIds.length;
|
|
56
58
|
|
|
57
59
|
// If the requested page range exceeds the stored itemIds, the data for
|
|
58
60
|
// this specific pagination window may not have been fetched yet. Return
|
|
59
61
|
// null unless totalItems confirms we already have all available items.
|
|
60
|
-
if (
|
|
62
|
+
if ( isPaginated && itemIds.length < startOffset + perPage ) {
|
|
61
63
|
const totalItems =
|
|
62
64
|
state.queries[ context ][ stableKey ].meta?.totalItems;
|
|
63
65
|
if ( Number.isFinite( totalItems ) && itemIds.length < totalItems ) {
|
|
@@ -118,27 +120,31 @@ function getQueriedItemsUncached( state, query ) {
|
|
|
118
120
|
*
|
|
119
121
|
* `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`
|
|
120
122
|
*
|
|
121
|
-
* @param {Object} state
|
|
122
|
-
* @param {?Object} query
|
|
123
|
+
* @param {Object} state State object.
|
|
124
|
+
* @param {?Object} query Optional query.
|
|
125
|
+
* @param {?Object} options Optional pagination options.
|
|
126
|
+
* @param {boolean} options.supportsPagination Whether the entity supports pagination. Default true.
|
|
123
127
|
*
|
|
124
128
|
* @return {?Array} Query items.
|
|
125
129
|
*/
|
|
126
|
-
export const getQueriedItems = createSelector(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
export const getQueriedItems = createSelector(
|
|
131
|
+
( state, query = {}, options = {} ) => {
|
|
132
|
+
let queriedItemsCache = queriedItemsCacheByState.get( state );
|
|
133
|
+
if ( queriedItemsCache ) {
|
|
134
|
+
const queriedItems = queriedItemsCache.get( query );
|
|
135
|
+
if ( queriedItems !== undefined ) {
|
|
136
|
+
return queriedItems;
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
queriedItemsCache = new EquivalentKeyMap();
|
|
140
|
+
queriedItemsCacheByState.set( state, queriedItemsCache );
|
|
132
141
|
}
|
|
133
|
-
} else {
|
|
134
|
-
queriedItemsCache = new EquivalentKeyMap();
|
|
135
|
-
queriedItemsCacheByState.set( state, queriedItemsCache );
|
|
136
|
-
}
|
|
137
142
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
143
|
+
const items = getQueriedItemsUncached( state, query, options );
|
|
144
|
+
queriedItemsCache.set( query, items );
|
|
145
|
+
return items;
|
|
146
|
+
}
|
|
147
|
+
);
|
|
142
148
|
|
|
143
149
|
export function getQueriedTotalItems( state, query = {} ) {
|
|
144
150
|
const { stableKey, context } = getQueryParts( query );
|
|
@@ -100,6 +100,13 @@ describe( 'getMergedItemIds', () => {
|
|
|
100
100
|
|
|
101
101
|
expect( result ).toEqual( [ 1, 2, 9, undefined, 5, 6 ] );
|
|
102
102
|
} );
|
|
103
|
+
|
|
104
|
+
it( 'should keep all received IDs when response exceeds default perPage', () => {
|
|
105
|
+
const nextItemIds = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ];
|
|
106
|
+
const result = getMergedItemIds( [], nextItemIds );
|
|
107
|
+
|
|
108
|
+
expect( result ).toEqual( nextItemIds );
|
|
109
|
+
} );
|
|
103
110
|
} );
|
|
104
111
|
|
|
105
112
|
describe( 'itemIsComplete', () => {
|
|
@@ -262,7 +262,11 @@ describe( 'getQueriedItems', () => {
|
|
|
262
262
|
},
|
|
263
263
|
};
|
|
264
264
|
|
|
265
|
-
const result = getQueriedItems(
|
|
265
|
+
const result = getQueriedItems(
|
|
266
|
+
state,
|
|
267
|
+
{ per_page: 3 },
|
|
268
|
+
{ supportsPagination: true }
|
|
269
|
+
);
|
|
266
270
|
expect( result ).toBe( null );
|
|
267
271
|
} );
|
|
268
272
|
|
|
@@ -296,10 +300,11 @@ describe( 'getQueriedItems', () => {
|
|
|
296
300
|
},
|
|
297
301
|
};
|
|
298
302
|
|
|
299
|
-
const result = getQueriedItems(
|
|
300
|
-
|
|
301
|
-
offset: 100,
|
|
302
|
-
|
|
303
|
+
const result = getQueriedItems(
|
|
304
|
+
state,
|
|
305
|
+
{ per_page: 50, offset: 100 },
|
|
306
|
+
{ supportsPagination: true }
|
|
307
|
+
);
|
|
303
308
|
expect( result ).toEqual( [ { id: 101 }, { id: 102 }, { id: 103 } ] );
|
|
304
309
|
} );
|
|
305
310
|
|
|
@@ -329,10 +334,11 @@ describe( 'getQueriedItems', () => {
|
|
|
329
334
|
},
|
|
330
335
|
};
|
|
331
336
|
|
|
332
|
-
const result = getQueriedItems(
|
|
333
|
-
|
|
334
|
-
offset: 50,
|
|
335
|
-
|
|
337
|
+
const result = getQueriedItems(
|
|
338
|
+
state,
|
|
339
|
+
{ per_page: 50, offset: 50 },
|
|
340
|
+
{ supportsPagination: true }
|
|
341
|
+
);
|
|
336
342
|
expect( result ).toBe( null );
|
|
337
343
|
} );
|
|
338
344
|
|
|
@@ -366,10 +372,11 @@ describe( 'getQueriedItems', () => {
|
|
|
366
372
|
},
|
|
367
373
|
};
|
|
368
374
|
|
|
369
|
-
const result = getQueriedItems(
|
|
370
|
-
|
|
371
|
-
offset: 3,
|
|
372
|
-
|
|
375
|
+
const result = getQueriedItems(
|
|
376
|
+
state,
|
|
377
|
+
{ per_page: 10, offset: 3 },
|
|
378
|
+
{ supportsPagination: true }
|
|
379
|
+
);
|
|
373
380
|
expect( result ).toBe( null );
|
|
374
381
|
} );
|
|
375
382
|
|
|
@@ -398,10 +405,11 @@ describe( 'getQueriedItems', () => {
|
|
|
398
405
|
};
|
|
399
406
|
|
|
400
407
|
// 2 items stored, but 5 total exist — should return null.
|
|
401
|
-
const result = getQueriedItems(
|
|
402
|
-
|
|
403
|
-
offset: 0,
|
|
404
|
-
|
|
408
|
+
const result = getQueriedItems(
|
|
409
|
+
state,
|
|
410
|
+
{ per_page: 3, offset: 0 },
|
|
411
|
+
{ supportsPagination: true }
|
|
412
|
+
);
|
|
405
413
|
expect( result ).toBe( null );
|
|
406
414
|
} );
|
|
407
415
|
|
|
@@ -429,10 +437,11 @@ describe( 'getQueriedItems', () => {
|
|
|
429
437
|
},
|
|
430
438
|
};
|
|
431
439
|
|
|
432
|
-
const result = getQueriedItems(
|
|
433
|
-
|
|
434
|
-
offset: 84,
|
|
435
|
-
|
|
440
|
+
const result = getQueriedItems(
|
|
441
|
+
state,
|
|
442
|
+
{ per_page: 7, offset: 84 },
|
|
443
|
+
{ supportsPagination: true }
|
|
444
|
+
);
|
|
436
445
|
expect( result ).toEqual( [] );
|
|
437
446
|
} );
|
|
438
447
|
} );
|
package/src/resolvers.js
CHANGED
|
@@ -578,7 +578,7 @@ export const getEntityRecords =
|
|
|
578
578
|
|
|
579
579
|
dispatch.__unstableReleaseStoreLock( lock );
|
|
580
580
|
} );
|
|
581
|
-
} catch
|
|
581
|
+
} catch {
|
|
582
582
|
dispatch.__unstableReleaseStoreLock( lock );
|
|
583
583
|
}
|
|
584
584
|
};
|
|
@@ -635,7 +635,7 @@ export const getEmbedPreview =
|
|
|
635
635
|
path: addQueryArgs( '/oembed/1.0/proxy', { url } ),
|
|
636
636
|
} );
|
|
637
637
|
dispatch.receiveEmbedPreview( url, embedProxyResponse );
|
|
638
|
-
} catch
|
|
638
|
+
} catch {
|
|
639
639
|
// Embed API 404s if the URL cannot be embedded, so we have to catch the error from the apiRequest here.
|
|
640
640
|
dispatch.receiveEmbedPreview( url, false );
|
|
641
641
|
}
|
|
@@ -706,7 +706,7 @@ export const canUser =
|
|
|
706
706
|
method: 'OPTIONS',
|
|
707
707
|
parse: false,
|
|
708
708
|
} );
|
|
709
|
-
} catch
|
|
709
|
+
} catch {
|
|
710
710
|
// Do nothing if our OPTIONS request comes back with an API error (4xx or
|
|
711
711
|
// 5xx). The previously determined isAllowed value will remain in the store.
|
|
712
712
|
return;
|
|
@@ -1077,7 +1077,7 @@ export const getRevisions =
|
|
|
1077
1077
|
entityConfig.supportsPagination && query.per_page !== -1;
|
|
1078
1078
|
try {
|
|
1079
1079
|
response = await apiFetch( { path, parse: ! isPaginated } );
|
|
1080
|
-
} catch
|
|
1080
|
+
} catch {
|
|
1081
1081
|
// Do nothing if our request comes back with an API error.
|
|
1082
1082
|
return;
|
|
1083
1083
|
}
|
|
@@ -1220,7 +1220,7 @@ export const getRevision =
|
|
|
1220
1220
|
let record;
|
|
1221
1221
|
try {
|
|
1222
1222
|
record = await apiFetch( { path } );
|
|
1223
|
-
} catch
|
|
1223
|
+
} catch {
|
|
1224
1224
|
// Do nothing if our request comes back with an API error.
|
|
1225
1225
|
return;
|
|
1226
1226
|
}
|
|
@@ -1257,7 +1257,7 @@ export const getRegisteredPostMeta =
|
|
|
1257
1257
|
path: `${ restNamespace }/${ restBase }/?context=edit`,
|
|
1258
1258
|
method: 'OPTIONS',
|
|
1259
1259
|
} );
|
|
1260
|
-
} catch
|
|
1260
|
+
} catch {
|
|
1261
1261
|
// Do nothing if the request comes back with an API error.
|
|
1262
1262
|
return;
|
|
1263
1263
|
}
|
package/src/selectors.ts
CHANGED
|
@@ -655,7 +655,10 @@ export const getEntityRecords = ( <
|
|
|
655
655
|
if ( ! queriedState ) {
|
|
656
656
|
return null;
|
|
657
657
|
}
|
|
658
|
-
return getQueriedItems( queriedState, query
|
|
658
|
+
return getQueriedItems( queriedState, query, {
|
|
659
|
+
supportsPagination: !! getEntityConfig( state, kind, name )
|
|
660
|
+
?.supportsPagination,
|
|
661
|
+
} );
|
|
659
662
|
} ) as GetEntityRecords;
|
|
660
663
|
|
|
661
664
|
/**
|
|
@@ -713,7 +716,10 @@ export const getEntityRecordsTotalPages = (
|
|
|
713
716
|
if ( ! queriedState ) {
|
|
714
717
|
return null;
|
|
715
718
|
}
|
|
716
|
-
if (
|
|
719
|
+
if (
|
|
720
|
+
! getEntityConfig( state, kind, name )?.supportsPagination ||
|
|
721
|
+
query?.per_page === -1
|
|
722
|
+
) {
|
|
717
723
|
return 1;
|
|
718
724
|
}
|
|
719
725
|
const totalItems = getQueriedTotalItems( queriedState, query );
|