@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.
Files changed (83) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +147 -0
  3. package/build/actions.js +4 -3
  4. package/build/actions.js.map +1 -1
  5. package/build/entities.js +14 -2
  6. package/build/entities.js.map +1 -1
  7. package/build/hooks/use-entity-records.js +18 -0
  8. package/build/hooks/use-entity-records.js.map +1 -1
  9. package/build/private-apis.js +1 -1
  10. package/build/private-apis.js.map +1 -1
  11. package/build/queried-data/actions.js +7 -4
  12. package/build/queried-data/actions.js.map +1 -1
  13. package/build/queried-data/reducer.js +9 -3
  14. package/build/queried-data/reducer.js.map +1 -1
  15. package/build/queried-data/selectors.js +10 -1
  16. package/build/queried-data/selectors.js.map +1 -1
  17. package/build/resolvers.js +19 -5
  18. package/build/resolvers.js.map +1 -1
  19. package/build/selectors.js +64 -2
  20. package/build/selectors.js.map +1 -1
  21. package/build/utils/index.js +7 -0
  22. package/build/utils/index.js.map +1 -1
  23. package/build/utils/is-numeric-id.js +17 -0
  24. package/build/utils/is-numeric-id.js.map +1 -0
  25. package/build-module/actions.js +4 -3
  26. package/build-module/actions.js.map +1 -1
  27. package/build-module/entities.js +14 -2
  28. package/build-module/entities.js.map +1 -1
  29. package/build-module/hooks/use-entity-records.js +18 -0
  30. package/build-module/hooks/use-entity-records.js.map +1 -1
  31. package/build-module/private-apis.js +1 -1
  32. package/build-module/private-apis.js.map +1 -1
  33. package/build-module/queried-data/actions.js +7 -4
  34. package/build-module/queried-data/actions.js.map +1 -1
  35. package/build-module/queried-data/reducer.js +9 -3
  36. package/build-module/queried-data/reducer.js.map +1 -1
  37. package/build-module/queried-data/selectors.js +9 -1
  38. package/build-module/queried-data/selectors.js.map +1 -1
  39. package/build-module/resolvers.js +19 -5
  40. package/build-module/resolvers.js.map +1 -1
  41. package/build-module/selectors.js +62 -2
  42. package/build-module/selectors.js.map +1 -1
  43. package/build-module/utils/index.js +1 -0
  44. package/build-module/utils/index.js.map +1 -1
  45. package/build-module/utils/is-numeric-id.js +11 -0
  46. package/build-module/utils/is-numeric-id.js.map +1 -0
  47. package/build-types/actions.d.ts +2 -1
  48. package/build-types/actions.d.ts.map +1 -1
  49. package/build-types/entities.d.ts +27 -0
  50. package/build-types/entities.d.ts.map +1 -1
  51. package/build-types/hooks/use-entity-records.d.ts +8 -0
  52. package/build-types/hooks/use-entity-records.d.ts.map +1 -1
  53. package/build-types/index.d.ts +7 -1
  54. package/build-types/index.d.ts.map +1 -1
  55. package/build-types/queried-data/actions.d.ts +4 -2
  56. package/build-types/queried-data/actions.d.ts.map +1 -1
  57. package/build-types/queried-data/selectors.d.ts +1 -0
  58. package/build-types/queried-data/selectors.d.ts.map +1 -1
  59. package/build-types/resolvers.d.ts.map +1 -1
  60. package/build-types/selectors.d.ts +29 -0
  61. package/build-types/selectors.d.ts.map +1 -1
  62. package/build-types/utils/index.d.ts +1 -0
  63. package/build-types/utils/is-numeric-id.d.ts +9 -0
  64. package/build-types/utils/is-numeric-id.d.ts.map +1 -0
  65. package/package.json +17 -17
  66. package/src/actions.js +5 -3
  67. package/src/entities.js +11 -0
  68. package/src/hooks/test/use-entity-records.js +4 -0
  69. package/src/hooks/use-entity-records.ts +37 -0
  70. package/src/private-apis.js +1 -1
  71. package/src/queried-data/actions.js +6 -3
  72. package/src/queried-data/reducer.js +17 -10
  73. package/src/queried-data/selectors.js +7 -1
  74. package/src/queried-data/test/reducer.js +9 -9
  75. package/src/queried-data/test/selectors.js +8 -8
  76. package/src/resolvers.js +24 -3
  77. package/src/selectors.ts +85 -1
  78. package/src/test/resolvers.js +4 -1
  79. package/src/test/selectors.js +28 -3
  80. package/src/utils/index.js +1 -0
  81. package/src/utils/is-numeric-id.js +10 -0
  82. package/src/utils/test/is-numeric-id.js +22 -0
  83. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../src/selectors.ts"],"names":[],"mappings":"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"}
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.20.1",
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.40.0",
35
- "@wordpress/block-editor": "^12.11.1",
36
- "@wordpress/blocks": "^12.20.1",
37
- "@wordpress/compose": "^6.20.0",
38
- "@wordpress/data": "^9.13.1",
39
- "@wordpress/deprecated": "^3.43.0",
40
- "@wordpress/element": "^5.20.0",
41
- "@wordpress/html-entities": "^3.43.0",
42
- "@wordpress/i18n": "^4.43.0",
43
- "@wordpress/is-shallow-equal": "^4.43.0",
44
- "@wordpress/private-apis": "^0.25.0",
45
- "@wordpress/rich-text": "^6.20.1",
46
- "@wordpress/sync": "^0.5.0",
47
- "@wordpress/undo-manager": "^0.3.0",
48
- "@wordpress/url": "^3.44.0",
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": "e17f760ed0dc11cce78157d7c2f2086b1b3c09d8"
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
  }
@@ -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 plugin or theme will inevitably break on the next WordPress release.',
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 = null, action ) => {
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 getMergedItemIds(
233
- state || [],
234
- action.items.map( ( item ) => item[ key ] ),
235
- page,
236
- perPage
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
- queryItems.filter(
267
- ( queryId ) => ! removedItems[ queryId ]
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 = Object.values( await apiFetch( { path } ) );
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( kind, name, records, query );
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;
@@ -172,7 +172,10 @@ describe( 'getEntityRecords', () => {
172
172
  'root',
173
173
  'postType',
174
174
  Object.values( POST_TYPES ),
175
- {}
175
+ {},
176
+ false,
177
+ undefined,
178
+ undefined
176
179
  );
177
180
  } );
178
181