@wordpress/core-data 6.20.1 → 6.21.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 +6 -0
- package/README.md +147 -0
- package/build/actions.js +4 -3
- package/build/actions.js.map +1 -1
- package/build/entities.js +14 -2
- package/build/entities.js.map +1 -1
- package/build/hooks/use-entity-records.js +18 -0
- package/build/hooks/use-entity-records.js.map +1 -1
- package/build/private-apis.js +1 -1
- package/build/private-apis.js.map +1 -1
- package/build/queried-data/actions.js +7 -4
- package/build/queried-data/actions.js.map +1 -1
- package/build/queried-data/reducer.js +9 -3
- package/build/queried-data/reducer.js.map +1 -1
- package/build/queried-data/selectors.js +10 -1
- package/build/queried-data/selectors.js.map +1 -1
- package/build/resolvers.js +19 -5
- package/build/resolvers.js.map +1 -1
- package/build/selectors.js +64 -2
- package/build/selectors.js.map +1 -1
- package/build/utils/index.js +7 -0
- package/build/utils/index.js.map +1 -1
- package/build/utils/is-numeric-id.js +17 -0
- package/build/utils/is-numeric-id.js.map +1 -0
- package/build-module/actions.js +4 -3
- package/build-module/actions.js.map +1 -1
- package/build-module/entities.js +14 -2
- package/build-module/entities.js.map +1 -1
- package/build-module/hooks/use-entity-records.js +18 -0
- package/build-module/hooks/use-entity-records.js.map +1 -1
- package/build-module/private-apis.js +1 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/queried-data/actions.js +7 -4
- package/build-module/queried-data/actions.js.map +1 -1
- package/build-module/queried-data/reducer.js +9 -3
- package/build-module/queried-data/reducer.js.map +1 -1
- package/build-module/queried-data/selectors.js +9 -1
- package/build-module/queried-data/selectors.js.map +1 -1
- package/build-module/resolvers.js +19 -5
- package/build-module/resolvers.js.map +1 -1
- package/build-module/selectors.js +62 -2
- package/build-module/selectors.js.map +1 -1
- package/build-module/utils/index.js +1 -0
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/is-numeric-id.js +11 -0
- package/build-module/utils/is-numeric-id.js.map +1 -0
- package/build-types/actions.d.ts +2 -1
- package/build-types/actions.d.ts.map +1 -1
- package/build-types/entities.d.ts +27 -0
- package/build-types/entities.d.ts.map +1 -1
- package/build-types/hooks/use-entity-records.d.ts +8 -0
- package/build-types/hooks/use-entity-records.d.ts.map +1 -1
- package/build-types/index.d.ts +7 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/queried-data/actions.d.ts +4 -2
- package/build-types/queried-data/actions.d.ts.map +1 -1
- package/build-types/queried-data/selectors.d.ts +1 -0
- package/build-types/queried-data/selectors.d.ts.map +1 -1
- package/build-types/resolvers.d.ts.map +1 -1
- package/build-types/selectors.d.ts +29 -0
- package/build-types/selectors.d.ts.map +1 -1
- package/build-types/utils/index.d.ts +1 -0
- package/build-types/utils/is-numeric-id.d.ts +9 -0
- package/build-types/utils/is-numeric-id.d.ts.map +1 -0
- package/package.json +17 -17
- package/src/actions.js +5 -3
- package/src/entities.js +11 -0
- package/src/hooks/test/use-entity-records.js +4 -0
- package/src/hooks/use-entity-records.ts +37 -0
- package/src/private-apis.js +1 -1
- package/src/queried-data/actions.js +6 -3
- package/src/queried-data/reducer.js +17 -10
- package/src/queried-data/selectors.js +7 -1
- package/src/queried-data/test/reducer.js +9 -9
- package/src/queried-data/test/selectors.js +8 -8
- package/src/resolvers.js +24 -3
- package/src/selectors.ts +85 -1
- package/src/test/resolvers.js +4 -1
- package/src/test/selectors.js +28 -3
- package/src/utils/index.js +1 -0
- package/src/utils/is-numeric-id.js +10 -0
- package/src/utils/test/is-numeric-id.js +22 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,5 @@ export { default as withWeakMapCache } from "./with-weak-map-cache";
|
|
|
8
8
|
export { default as isRawAttribute } from "./is-raw-attribute";
|
|
9
9
|
export { default as setNestedValue } from "./set-nested-value";
|
|
10
10
|
export { default as getNestedValue } from "./get-nested-value";
|
|
11
|
+
export { default as isNumericID } from "./is-numeric-id";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks argument to determine if it's a numeric ID.
|
|
3
|
+
* For example, '123' is a numeric ID, but '123abc' is not.
|
|
4
|
+
*
|
|
5
|
+
* @param {any} id the argument to determine if it's a numeric ID.
|
|
6
|
+
* @return {boolean} true if the string is a numeric ID, false otherwise.
|
|
7
|
+
*/
|
|
8
|
+
export default function isNumericID(id: any): boolean;
|
|
9
|
+
//# sourceMappingURL=is-numeric-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-numeric-id.d.ts","sourceRoot":"","sources":["../../src/utils/is-numeric-id.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wCAHW,GAAG,GACF,OAAO,CAIlB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/core-data",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.21.0",
|
|
4
4
|
"description": "Access to and manipulation of core WordPress entities.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -31,21 +31,21 @@
|
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@babel/runtime": "^7.16.0",
|
|
34
|
-
"@wordpress/api-fetch": "^6.
|
|
35
|
-
"@wordpress/block-editor": "^12.
|
|
36
|
-
"@wordpress/blocks": "^12.
|
|
37
|
-
"@wordpress/compose": "^6.
|
|
38
|
-
"@wordpress/data": "^9.
|
|
39
|
-
"@wordpress/deprecated": "^3.
|
|
40
|
-
"@wordpress/element": "^5.
|
|
41
|
-
"@wordpress/html-entities": "^3.
|
|
42
|
-
"@wordpress/i18n": "^4.
|
|
43
|
-
"@wordpress/is-shallow-equal": "^4.
|
|
44
|
-
"@wordpress/private-apis": "^0.
|
|
45
|
-
"@wordpress/rich-text": "^6.
|
|
46
|
-
"@wordpress/sync": "^0.
|
|
47
|
-
"@wordpress/undo-manager": "^0.
|
|
48
|
-
"@wordpress/url": "^3.
|
|
34
|
+
"@wordpress/api-fetch": "^6.41.0",
|
|
35
|
+
"@wordpress/block-editor": "^12.12.0",
|
|
36
|
+
"@wordpress/blocks": "^12.21.0",
|
|
37
|
+
"@wordpress/compose": "^6.21.0",
|
|
38
|
+
"@wordpress/data": "^9.14.0",
|
|
39
|
+
"@wordpress/deprecated": "^3.44.0",
|
|
40
|
+
"@wordpress/element": "^5.21.0",
|
|
41
|
+
"@wordpress/html-entities": "^3.44.0",
|
|
42
|
+
"@wordpress/i18n": "^4.44.0",
|
|
43
|
+
"@wordpress/is-shallow-equal": "^4.44.0",
|
|
44
|
+
"@wordpress/private-apis": "^0.26.0",
|
|
45
|
+
"@wordpress/rich-text": "^6.21.0",
|
|
46
|
+
"@wordpress/sync": "^0.6.0",
|
|
47
|
+
"@wordpress/undo-manager": "^0.4.0",
|
|
48
|
+
"@wordpress/url": "^3.45.0",
|
|
49
49
|
"change-case": "^4.1.2",
|
|
50
50
|
"equivalent-key-map": "^0.2.2",
|
|
51
51
|
"fast-deep-equal": "^3.1.3",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"publishConfig": {
|
|
61
61
|
"access": "public"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "f83bb1a71e8fa416131b81a9f282a72a1dc6c694"
|
|
64
64
|
}
|
package/src/actions.js
CHANGED
|
@@ -80,6 +80,7 @@ export function addEntities( entities ) {
|
|
|
80
80
|
* @param {?Object} query Query Object.
|
|
81
81
|
* @param {?boolean} invalidateCache Should invalidate query caches.
|
|
82
82
|
* @param {?Object} edits Edits to reset.
|
|
83
|
+
* @param {?Object} meta Meta information about pagination.
|
|
83
84
|
* @return {Object} Action object.
|
|
84
85
|
*/
|
|
85
86
|
export function receiveEntityRecords(
|
|
@@ -88,7 +89,8 @@ export function receiveEntityRecords(
|
|
|
88
89
|
records,
|
|
89
90
|
query,
|
|
90
91
|
invalidateCache = false,
|
|
91
|
-
edits
|
|
92
|
+
edits,
|
|
93
|
+
meta
|
|
92
94
|
) {
|
|
93
95
|
// Auto drafts should not have titles, but some plugins rely on them so we can't filter this
|
|
94
96
|
// on the server.
|
|
@@ -102,9 +104,9 @@ export function receiveEntityRecords(
|
|
|
102
104
|
}
|
|
103
105
|
let action;
|
|
104
106
|
if ( query ) {
|
|
105
|
-
action = receiveQueriedItems( records, query, edits );
|
|
107
|
+
action = receiveQueriedItems( records, query, edits, meta );
|
|
106
108
|
} else {
|
|
107
|
-
action = receiveItems( records, edits );
|
|
109
|
+
action = receiveItems( records, edits, meta );
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
return {
|
package/src/entities.js
CHANGED
|
@@ -120,6 +120,7 @@ export const rootEntitiesConfig = [
|
|
|
120
120
|
plural: 'mediaItems',
|
|
121
121
|
label: __( 'Media' ),
|
|
122
122
|
rawAttributes: [ 'caption', 'title', 'description' ],
|
|
123
|
+
supportsPagination: true,
|
|
123
124
|
},
|
|
124
125
|
{
|
|
125
126
|
name: 'taxonomy',
|
|
@@ -223,6 +224,15 @@ export const rootEntitiesConfig = [
|
|
|
223
224
|
baseURLParams: { context: 'edit' },
|
|
224
225
|
key: 'plugin',
|
|
225
226
|
},
|
|
227
|
+
{
|
|
228
|
+
label: __( 'Status' ),
|
|
229
|
+
name: 'status',
|
|
230
|
+
kind: 'root',
|
|
231
|
+
baseURL: '/wp/v2/statuses',
|
|
232
|
+
baseURLParams: { context: 'edit' },
|
|
233
|
+
plural: 'statuses',
|
|
234
|
+
key: 'slug',
|
|
235
|
+
},
|
|
226
236
|
];
|
|
227
237
|
|
|
228
238
|
export const additionalEntityConfigLoaders = [
|
|
@@ -317,6 +327,7 @@ async function loadPostTypeEntities() {
|
|
|
317
327
|
},
|
|
318
328
|
syncObjectType: 'postType/' + postType.name,
|
|
319
329
|
getSyncObjectId: ( id ) => id,
|
|
330
|
+
supportsPagination: true,
|
|
320
331
|
};
|
|
321
332
|
} );
|
|
322
333
|
}
|
|
@@ -51,6 +51,8 @@ describe( 'useEntityRecords', () => {
|
|
|
51
51
|
hasResolved: false,
|
|
52
52
|
isResolving: false,
|
|
53
53
|
status: 'IDLE',
|
|
54
|
+
totalItems: null,
|
|
55
|
+
totalPages: null,
|
|
54
56
|
} );
|
|
55
57
|
|
|
56
58
|
// Fetch request should have been issued
|
|
@@ -65,6 +67,8 @@ describe( 'useEntityRecords', () => {
|
|
|
65
67
|
hasResolved: true,
|
|
66
68
|
isResolving: false,
|
|
67
69
|
status: 'SUCCESS',
|
|
70
|
+
totalItems: null,
|
|
71
|
+
totalPages: null,
|
|
68
72
|
} );
|
|
69
73
|
} );
|
|
70
74
|
} );
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { addQueryArgs } from '@wordpress/url';
|
|
5
5
|
import deprecated from '@wordpress/deprecated';
|
|
6
|
+
import { useSelect } from '@wordpress/data';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Internal dependencies
|
|
@@ -28,6 +29,16 @@ interface EntityRecordsResolution< RecordType > {
|
|
|
28
29
|
|
|
29
30
|
/** Resolution status */
|
|
30
31
|
status: Status;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The total number of available items (if not paginated).
|
|
35
|
+
*/
|
|
36
|
+
totalItems: number | null;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The total number of pages.
|
|
40
|
+
*/
|
|
41
|
+
totalPages: number | null;
|
|
31
42
|
}
|
|
32
43
|
|
|
33
44
|
const EMPTY_ARRAY = [];
|
|
@@ -97,8 +108,34 @@ export default function useEntityRecords< RecordType >(
|
|
|
97
108
|
[ kind, name, queryAsString, options.enabled ]
|
|
98
109
|
);
|
|
99
110
|
|
|
111
|
+
const { totalItems, totalPages } = useSelect(
|
|
112
|
+
( select ) => {
|
|
113
|
+
if ( ! options.enabled ) {
|
|
114
|
+
return {
|
|
115
|
+
totalItems: null,
|
|
116
|
+
totalPages: null,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
totalItems: select( coreStore ).getEntityRecordsTotalItems(
|
|
121
|
+
kind,
|
|
122
|
+
name,
|
|
123
|
+
queryArgs
|
|
124
|
+
),
|
|
125
|
+
totalPages: select( coreStore ).getEntityRecordsTotalPages(
|
|
126
|
+
kind,
|
|
127
|
+
name,
|
|
128
|
+
queryArgs
|
|
129
|
+
),
|
|
130
|
+
};
|
|
131
|
+
},
|
|
132
|
+
[ kind, name, queryAsString, options.enabled ]
|
|
133
|
+
);
|
|
134
|
+
|
|
100
135
|
return {
|
|
101
136
|
records,
|
|
137
|
+
totalItems,
|
|
138
|
+
totalPages,
|
|
102
139
|
...rest,
|
|
103
140
|
};
|
|
104
141
|
}
|
package/src/private-apis.js
CHANGED
|
@@ -5,6 +5,6 @@ import { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/pri
|
|
|
5
5
|
|
|
6
6
|
export const { lock, unlock } =
|
|
7
7
|
__dangerousOptInToUnstableAPIsOnlyForCoreModules(
|
|
8
|
-
'I know using unstable features means my
|
|
8
|
+
'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',
|
|
9
9
|
'@wordpress/core-data'
|
|
10
10
|
);
|
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @param {Array} items Items received.
|
|
5
5
|
* @param {?Object} edits Optional edits to reset.
|
|
6
|
+
* @param {?Object} meta Meta information about pagination.
|
|
6
7
|
*
|
|
7
8
|
* @return {Object} Action object.
|
|
8
9
|
*/
|
|
9
|
-
export function receiveItems( items, edits ) {
|
|
10
|
+
export function receiveItems( items, edits, meta ) {
|
|
10
11
|
return {
|
|
11
12
|
type: 'RECEIVE_ITEMS',
|
|
12
13
|
items: Array.isArray( items ) ? items : [ items ],
|
|
13
14
|
persistedEdits: edits,
|
|
15
|
+
meta,
|
|
14
16
|
};
|
|
15
17
|
}
|
|
16
18
|
|
|
@@ -41,12 +43,13 @@ export function removeItems( kind, name, records, invalidateCache = false ) {
|
|
|
41
43
|
* @param {Array} items Queried items received.
|
|
42
44
|
* @param {?Object} query Optional query object.
|
|
43
45
|
* @param {?Object} edits Optional edits to reset.
|
|
46
|
+
* @param {?Object} meta Meta information about pagination.
|
|
44
47
|
*
|
|
45
48
|
* @return {Object} Action object.
|
|
46
49
|
*/
|
|
47
|
-
export function receiveQueriedItems( items, query = {}, edits ) {
|
|
50
|
+
export function receiveQueriedItems( items, query = {}, edits, meta ) {
|
|
48
51
|
return {
|
|
49
|
-
...receiveItems( items, edits ),
|
|
52
|
+
...receiveItems( items, edits, meta ),
|
|
50
53
|
query,
|
|
51
54
|
};
|
|
52
55
|
}
|
|
@@ -222,19 +222,22 @@ const receiveQueries = compose( [
|
|
|
222
222
|
// Queries shape is shared, but keyed by query `stableKey` part. Original
|
|
223
223
|
// reducer tracks only a single query object.
|
|
224
224
|
onSubKey( 'stableKey' ),
|
|
225
|
-
] )( ( state =
|
|
225
|
+
] )( ( state = {}, action ) => {
|
|
226
226
|
const { type, page, perPage, key = DEFAULT_ENTITY_KEY } = action;
|
|
227
227
|
|
|
228
228
|
if ( type !== 'RECEIVE_ITEMS' ) {
|
|
229
229
|
return state;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
return
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
232
|
+
return {
|
|
233
|
+
itemIds: getMergedItemIds(
|
|
234
|
+
state?.itemIds || [],
|
|
235
|
+
action.items.map( ( item ) => item[ key ] ),
|
|
236
|
+
page,
|
|
237
|
+
perPage
|
|
238
|
+
),
|
|
239
|
+
meta: action.meta,
|
|
240
|
+
};
|
|
238
241
|
} );
|
|
239
242
|
|
|
240
243
|
/**
|
|
@@ -263,9 +266,13 @@ const queries = ( state = {}, action ) => {
|
|
|
263
266
|
Object.entries( contextQueries ).map(
|
|
264
267
|
( [ query, queryItems ] ) => [
|
|
265
268
|
query,
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
+
{
|
|
270
|
+
...queryItems,
|
|
271
|
+
itemIds: queryItems.itemIds.filter(
|
|
272
|
+
( queryId ) =>
|
|
273
|
+
! removedItems[ queryId ]
|
|
274
|
+
),
|
|
275
|
+
},
|
|
269
276
|
]
|
|
270
277
|
)
|
|
271
278
|
),
|
|
@@ -33,7 +33,7 @@ function getQueriedItemsUncached( state, query ) {
|
|
|
33
33
|
let itemIds;
|
|
34
34
|
|
|
35
35
|
if ( state.queries?.[ context ]?.[ stableKey ] ) {
|
|
36
|
-
itemIds = state.queries[ context ][ stableKey ];
|
|
36
|
+
itemIds = state.queries[ context ][ stableKey ].itemIds;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
if ( ! itemIds ) {
|
|
@@ -118,3 +118,9 @@ export const getQueriedItems = createSelector( ( state, query = {} ) => {
|
|
|
118
118
|
queriedItemsCache.set( query, items );
|
|
119
119
|
return items;
|
|
120
120
|
} );
|
|
121
|
+
|
|
122
|
+
export function getQueriedTotalItems( state, query = {} ) {
|
|
123
|
+
const { stableKey, context } = getQueryParts( query );
|
|
124
|
+
|
|
125
|
+
return state.queries?.[ context ]?.[ stableKey ]?.meta?.totalItems ?? null;
|
|
126
|
+
}
|
|
@@ -159,7 +159,7 @@ describe( 'reducer', () => {
|
|
|
159
159
|
default: { 1: true },
|
|
160
160
|
},
|
|
161
161
|
queries: {
|
|
162
|
-
default: { 's=a': [ 1 ] },
|
|
162
|
+
default: { 's=a': { itemIds: [ 1 ] } },
|
|
163
163
|
},
|
|
164
164
|
} );
|
|
165
165
|
} );
|
|
@@ -200,8 +200,8 @@ describe( 'reducer', () => {
|
|
|
200
200
|
},
|
|
201
201
|
queries: {
|
|
202
202
|
default: {
|
|
203
|
-
'': [ 1, 2, 3, 4 ],
|
|
204
|
-
's=a': [ 1, 3 ],
|
|
203
|
+
'': { itemIds: [ 1, 2, 3, 4 ] },
|
|
204
|
+
's=a': { itemIds: [ 1, 3 ] },
|
|
205
205
|
},
|
|
206
206
|
},
|
|
207
207
|
} );
|
|
@@ -218,8 +218,8 @@ describe( 'reducer', () => {
|
|
|
218
218
|
},
|
|
219
219
|
queries: {
|
|
220
220
|
default: {
|
|
221
|
-
'': [ 1, 2, 4 ],
|
|
222
|
-
's=a': [ 1 ],
|
|
221
|
+
'': { itemIds: [ 1, 2, 4 ] },
|
|
222
|
+
's=a': { itemIds: [ 1 ] },
|
|
223
223
|
},
|
|
224
224
|
},
|
|
225
225
|
} );
|
|
@@ -238,8 +238,8 @@ describe( 'reducer', () => {
|
|
|
238
238
|
},
|
|
239
239
|
queries: {
|
|
240
240
|
default: {
|
|
241
|
-
'': [ 'foo//bar1', 'foo//bar2', 'foo//bar3' ],
|
|
242
|
-
's=2': [ 'foo//bar2' ],
|
|
241
|
+
'': { itemIds: [ 'foo//bar1', 'foo//bar2', 'foo//bar3' ] },
|
|
242
|
+
's=2': { itemIds: [ 'foo//bar2' ] },
|
|
243
243
|
},
|
|
244
244
|
},
|
|
245
245
|
} );
|
|
@@ -258,8 +258,8 @@ describe( 'reducer', () => {
|
|
|
258
258
|
},
|
|
259
259
|
queries: {
|
|
260
260
|
default: {
|
|
261
|
-
'': [ 'foo//bar1', 'foo//bar3' ],
|
|
262
|
-
's=2': [],
|
|
261
|
+
'': { itemIds: [ 'foo//bar1', 'foo//bar3' ] },
|
|
262
|
+
's=2': { itemIds: [] },
|
|
263
263
|
},
|
|
264
264
|
},
|
|
265
265
|
} );
|
|
@@ -32,7 +32,7 @@ describe( 'getQueriedItems', () => {
|
|
|
32
32
|
},
|
|
33
33
|
queries: {
|
|
34
34
|
default: {
|
|
35
|
-
'': [ 1, 2 ],
|
|
35
|
+
'': { itemIds: [ 1, 2 ] },
|
|
36
36
|
},
|
|
37
37
|
},
|
|
38
38
|
};
|
|
@@ -56,7 +56,7 @@ describe( 'getQueriedItems', () => {
|
|
|
56
56
|
2: true,
|
|
57
57
|
},
|
|
58
58
|
},
|
|
59
|
-
queries: [ 1, 2 ],
|
|
59
|
+
queries: { itemIds: [ 1, 2 ] },
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
const resultA = getQueriedItems( state, {} );
|
|
@@ -81,8 +81,8 @@ describe( 'getQueriedItems', () => {
|
|
|
81
81
|
},
|
|
82
82
|
queries: {
|
|
83
83
|
default: {
|
|
84
|
-
'': [ 1, 2 ],
|
|
85
|
-
'include=1': [ 1 ],
|
|
84
|
+
'': { itemIds: [ 1, 2 ] },
|
|
85
|
+
'include=1': { itemIds: [ 1 ] },
|
|
86
86
|
},
|
|
87
87
|
},
|
|
88
88
|
};
|
|
@@ -116,7 +116,7 @@ describe( 'getQueriedItems', () => {
|
|
|
116
116
|
},
|
|
117
117
|
queries: {
|
|
118
118
|
default: {
|
|
119
|
-
'_fields=content': [ 1, 2 ],
|
|
119
|
+
'_fields=content': { itemIds: [ 1, 2 ] },
|
|
120
120
|
},
|
|
121
121
|
},
|
|
122
122
|
};
|
|
@@ -161,7 +161,7 @@ describe( 'getQueriedItems', () => {
|
|
|
161
161
|
},
|
|
162
162
|
queries: {
|
|
163
163
|
default: {
|
|
164
|
-
'_fields=content%2Cmeta.template': [ 1, 2 ],
|
|
164
|
+
'_fields=content%2Cmeta.template': { itemIds: [ 1, 2 ] },
|
|
165
165
|
},
|
|
166
166
|
},
|
|
167
167
|
};
|
|
@@ -198,7 +198,7 @@ describe( 'getQueriedItems', () => {
|
|
|
198
198
|
},
|
|
199
199
|
queries: {
|
|
200
200
|
default: {
|
|
201
|
-
'': [ 1, 2 ],
|
|
201
|
+
'': { itemIds: [ 1, 2 ] },
|
|
202
202
|
},
|
|
203
203
|
},
|
|
204
204
|
};
|
|
@@ -230,7 +230,7 @@ describe( 'getQueriedItems', () => {
|
|
|
230
230
|
},
|
|
231
231
|
queries: {
|
|
232
232
|
default: {
|
|
233
|
-
'': [ 1, 2 ],
|
|
233
|
+
'': { itemIds: [ 1, 2 ] },
|
|
234
234
|
},
|
|
235
235
|
},
|
|
236
236
|
};
|
package/src/resolvers.js
CHANGED
|
@@ -7,6 +7,7 @@ import { camelCase } from 'change-case';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { addQueryArgs } from '@wordpress/url';
|
|
10
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
10
11
|
import apiFetch from '@wordpress/api-fetch';
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -228,7 +229,19 @@ export const getEntityRecords =
|
|
|
228
229
|
...query,
|
|
229
230
|
} );
|
|
230
231
|
|
|
231
|
-
let records
|
|
232
|
+
let records, meta;
|
|
233
|
+
if ( entityConfig.supportsPagination && query.per_page !== -1 ) {
|
|
234
|
+
const response = await apiFetch( { path, parse: false } );
|
|
235
|
+
records = Object.values( await response.json() );
|
|
236
|
+
meta = {
|
|
237
|
+
totalItems: parseInt(
|
|
238
|
+
response.headers.get( 'X-WP-Total' )
|
|
239
|
+
),
|
|
240
|
+
};
|
|
241
|
+
} else {
|
|
242
|
+
records = Object.values( await apiFetch( { path } ) );
|
|
243
|
+
}
|
|
244
|
+
|
|
232
245
|
// If we request fields but the result doesn't contain the fields,
|
|
233
246
|
// explicitly set these fields as "undefined"
|
|
234
247
|
// that way we consider the query "fullfilled".
|
|
@@ -244,7 +257,15 @@ export const getEntityRecords =
|
|
|
244
257
|
} );
|
|
245
258
|
}
|
|
246
259
|
|
|
247
|
-
dispatch.receiveEntityRecords(
|
|
260
|
+
dispatch.receiveEntityRecords(
|
|
261
|
+
kind,
|
|
262
|
+
name,
|
|
263
|
+
records,
|
|
264
|
+
query,
|
|
265
|
+
false,
|
|
266
|
+
undefined,
|
|
267
|
+
meta
|
|
268
|
+
);
|
|
248
269
|
|
|
249
270
|
// When requesting all fields, the list of results can be used to
|
|
250
271
|
// resolve the `getEntityRecord` selector in addition to `getEntityRecords`.
|
|
@@ -636,7 +657,7 @@ export const getUserPatternCategories =
|
|
|
636
657
|
const mappedPatternCategories =
|
|
637
658
|
patternCategories?.map( ( userCategory ) => ( {
|
|
638
659
|
...userCategory,
|
|
639
|
-
label: userCategory.name,
|
|
660
|
+
label: decodeEntities( userCategory.name ),
|
|
640
661
|
name: userCategory.slug,
|
|
641
662
|
} ) ) || [];
|
|
642
663
|
|
package/src/selectors.ts
CHANGED
|
@@ -14,12 +14,13 @@ import deprecated from '@wordpress/deprecated';
|
|
|
14
14
|
* Internal dependencies
|
|
15
15
|
*/
|
|
16
16
|
import { STORE_NAME } from './name';
|
|
17
|
-
import { getQueriedItems } from './queried-data';
|
|
17
|
+
import { getQueriedItems, getQueriedTotalItems } from './queried-data';
|
|
18
18
|
import { DEFAULT_ENTITY_KEY } from './entities';
|
|
19
19
|
import {
|
|
20
20
|
getNormalizedCommaSeparable,
|
|
21
21
|
isRawAttribute,
|
|
22
22
|
setNestedValue,
|
|
23
|
+
isNumericID,
|
|
23
24
|
} from './utils';
|
|
24
25
|
import type * as ET from './entity-types';
|
|
25
26
|
import type { UndoManager } from '@wordpress/undo-manager';
|
|
@@ -95,6 +96,13 @@ type Optional< T > = T | undefined;
|
|
|
95
96
|
*/
|
|
96
97
|
type GetRecordsHttpQuery = Record< string, any >;
|
|
97
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Arguments for EntityRecord selectors.
|
|
101
|
+
*/
|
|
102
|
+
type EntityRecordArgs =
|
|
103
|
+
| [ string, string, EntityRecordKey ]
|
|
104
|
+
| [ string, string, EntityRecordKey, GetRecordsHttpQuery ];
|
|
105
|
+
|
|
98
106
|
/**
|
|
99
107
|
* Shared reference to an empty object for cases where it is important to avoid
|
|
100
108
|
* returning a new object reference on every invocation, as in a connected or
|
|
@@ -292,6 +300,7 @@ export interface GetEntityRecord {
|
|
|
292
300
|
key: EntityRecordKey,
|
|
293
301
|
query?: GetRecordsHttpQuery
|
|
294
302
|
) => EntityRecord | undefined;
|
|
303
|
+
__unstableNormalizeArgs?: ( args: EntityRecordArgs ) => EntityRecordArgs;
|
|
295
304
|
}
|
|
296
305
|
|
|
297
306
|
/**
|
|
@@ -365,6 +374,24 @@ export const getEntityRecord = createSelector(
|
|
|
365
374
|
}
|
|
366
375
|
) as GetEntityRecord;
|
|
367
376
|
|
|
377
|
+
/**
|
|
378
|
+
* Normalizes `recordKey`s that look like numeric IDs to numbers.
|
|
379
|
+
*
|
|
380
|
+
* @param args EntityRecordArgs the selector arguments.
|
|
381
|
+
* @return EntityRecordArgs the normalized arguments.
|
|
382
|
+
*/
|
|
383
|
+
getEntityRecord.__unstableNormalizeArgs = (
|
|
384
|
+
args: EntityRecordArgs
|
|
385
|
+
): EntityRecordArgs => {
|
|
386
|
+
const newArgs = [ ...args ] as EntityRecordArgs;
|
|
387
|
+
const recordKey = newArgs?.[ 2 ];
|
|
388
|
+
|
|
389
|
+
// If recordKey looks to be a numeric ID then coerce to number.
|
|
390
|
+
newArgs[ 2 ] = isNumericID( recordKey ) ? Number( recordKey ) : recordKey;
|
|
391
|
+
|
|
392
|
+
return newArgs;
|
|
393
|
+
};
|
|
394
|
+
|
|
368
395
|
/**
|
|
369
396
|
* Returns the Entity's record object by key. Doesn't trigger a resolver nor requests the entity records from the API if the entity record isn't available in the local state.
|
|
370
397
|
*
|
|
@@ -523,6 +550,63 @@ export const getEntityRecords = ( <
|
|
|
523
550
|
return getQueriedItems( queriedState, query );
|
|
524
551
|
} ) as GetEntityRecords;
|
|
525
552
|
|
|
553
|
+
/**
|
|
554
|
+
* Returns the Entity's total available records for a given query (ignoring pagination).
|
|
555
|
+
*
|
|
556
|
+
* @param state State tree
|
|
557
|
+
* @param kind Entity kind.
|
|
558
|
+
* @param name Entity name.
|
|
559
|
+
* @param query Optional terms query. If requesting specific
|
|
560
|
+
* fields, fields must always include the ID. For valid query parameters see the [Reference](https://developer.wordpress.org/rest-api/reference/) in the REST API Handbook and select the entity kind. Then see the arguments available for "List [Entity kind]s".
|
|
561
|
+
*
|
|
562
|
+
* @return number | null.
|
|
563
|
+
*/
|
|
564
|
+
export const getEntityRecordsTotalItems = (
|
|
565
|
+
state: State,
|
|
566
|
+
kind: string,
|
|
567
|
+
name: string,
|
|
568
|
+
query: GetRecordsHttpQuery
|
|
569
|
+
): number | null => {
|
|
570
|
+
// Queried data state is prepopulated for all known entities. If this is not
|
|
571
|
+
// assigned for the given parameters, then it is known to not exist.
|
|
572
|
+
const queriedState =
|
|
573
|
+
state.entities.records?.[ kind ]?.[ name ]?.queriedData;
|
|
574
|
+
if ( ! queriedState ) {
|
|
575
|
+
return null;
|
|
576
|
+
}
|
|
577
|
+
return getQueriedTotalItems( queriedState, query );
|
|
578
|
+
};
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Returns the number of available pages for the given query.
|
|
582
|
+
*
|
|
583
|
+
* @param state State tree
|
|
584
|
+
* @param kind Entity kind.
|
|
585
|
+
* @param name Entity name.
|
|
586
|
+
* @param query Optional terms query. If requesting specific
|
|
587
|
+
* fields, fields must always include the ID. For valid query parameters see the [Reference](https://developer.wordpress.org/rest-api/reference/) in the REST API Handbook and select the entity kind. Then see the arguments available for "List [Entity kind]s".
|
|
588
|
+
*
|
|
589
|
+
* @return number | null.
|
|
590
|
+
*/
|
|
591
|
+
export const getEntityRecordsTotalPages = (
|
|
592
|
+
state: State,
|
|
593
|
+
kind: string,
|
|
594
|
+
name: string,
|
|
595
|
+
query: GetRecordsHttpQuery
|
|
596
|
+
): number | null => {
|
|
597
|
+
// Queried data state is prepopulated for all known entities. If this is not
|
|
598
|
+
// assigned for the given parameters, then it is known to not exist.
|
|
599
|
+
const queriedState =
|
|
600
|
+
state.entities.records?.[ kind ]?.[ name ]?.queriedData;
|
|
601
|
+
if ( ! queriedState ) {
|
|
602
|
+
return null;
|
|
603
|
+
}
|
|
604
|
+
if ( query.per_page === -1 ) return 1;
|
|
605
|
+
const totalItems = getQueriedTotalItems( queriedState, query );
|
|
606
|
+
if ( ! totalItems ) return totalItems;
|
|
607
|
+
return Math.ceil( totalItems / query.per_page );
|
|
608
|
+
};
|
|
609
|
+
|
|
526
610
|
type DirtyEntityRecord = {
|
|
527
611
|
title: string;
|
|
528
612
|
key: EntityRecordKey;
|