From 4c192d8711c9cbfa57a3d5536dbf0e62cd05f194 Mon Sep 17 00:00:00 2001 From: Jarda Snajdr Date: Thu, 1 Oct 2020 15:19:34 +0200 Subject: [PATCH] core-data: use builtin data controls instead of the data-controls ones --- packages/core-data/src/actions.js | 34 ++++++++++++++------------ packages/core-data/src/entities.js | 5 ++-- packages/core-data/src/resolvers.js | 9 ++++--- packages/core-data/src/test/actions.js | 4 +-- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/packages/core-data/src/actions.js b/packages/core-data/src/actions.js index 7356d1ef0bb561..50781e41973c66 100644 --- a/packages/core-data/src/actions.js +++ b/packages/core-data/src/actions.js @@ -6,7 +6,8 @@ import { castArray, get, isEqual, find } from 'lodash'; /** * WordPress dependencies */ -import { apiFetch, syncSelect } from '@wordpress/data-controls'; +import { controls } from '@wordpress/data'; +import { apiFetch } from '@wordpress/data-controls'; import { addQueryArgs } from '@wordpress/url'; /** @@ -210,21 +211,21 @@ export function* deleteEntityRecord( kind, name, recordId, query ) { * @return {Object} Action object. */ export function* editEntityRecord( kind, name, recordId, edits, options = {} ) { - const entity = yield syncSelect( 'core', 'getEntity', kind, name ); + const entity = yield controls.select( 'core', 'getEntity', kind, name ); if ( ! entity ) { throw new Error( `The entity being edited (${ kind }, ${ name }) does not have a loaded config.` ); } const { transientEdits = {}, mergedEdits = {} } = entity; - const record = yield syncSelect( + const record = yield controls.select( 'core', 'getRawEntityRecord', kind, name, recordId ); - const editedRecord = yield syncSelect( + const editedRecord = yield controls.select( 'core', 'getEditedEntityRecord', kind, @@ -270,7 +271,7 @@ export function* editEntityRecord( kind, name, recordId, edits, options = {} ) { * an entity record, if any. */ export function* undo() { - const undoEdit = yield syncSelect( 'core', 'getUndoEdit' ); + const undoEdit = yield controls.select( 'core', 'getUndoEdit' ); if ( ! undoEdit ) { return; } @@ -288,7 +289,7 @@ export function* undo() { * edit to an entity record, if any. */ export function* redo() { - const redoEdit = yield syncSelect( 'core', 'getRedoEdit' ); + const redoEdit = yield controls.select( 'core', 'getRedoEdit' ); if ( ! redoEdit ) { return; } @@ -338,7 +339,7 @@ export function* saveEntityRecord( for ( const [ key, value ] of Object.entries( record ) ) { if ( typeof value === 'function' ) { const evaluatedValue = value( - yield syncSelect( + yield controls.select( 'core', 'getEditedEntityRecord', kind, @@ -372,7 +373,7 @@ export function* saveEntityRecord( let currentEdits; try { const path = `${ entity.baseURL }${ recordId ? '/' + recordId : '' }`; - const persistedRecord = yield syncSelect( + const persistedRecord = yield controls.select( 'core', 'getRawEntityRecord', kind, @@ -385,9 +386,12 @@ export function* saveEntityRecord( // This is fine for now as it is the only supported autosave, // but ideally this should all be handled in the back end, // so the client just sends and receives objects. - const currentUser = yield syncSelect( 'core', 'getCurrentUser' ); + const currentUser = yield controls.select( + 'core', + 'getCurrentUser' + ); const currentUserId = currentUser ? currentUser.id : undefined; - const autosavePost = yield syncSelect( + const autosavePost = yield controls.select( 'core', 'getAutosave', persistedRecord.type, @@ -479,14 +483,14 @@ export function* saveEntityRecord( // Get the full local version of the record before the update, // to merge it with the edits and then propagate it to subscribers - persistedEntity = yield syncSelect( + persistedEntity = yield controls.select( 'core', '__experimentalGetEntityRecordNoResolver', kind, name, recordId ); - currentEdits = yield syncSelect( + currentEdits = yield controls.select( 'core', 'getEntityRecordEdits', kind, @@ -533,7 +537,7 @@ export function* saveEntityRecord( recordId, { ...currentEdits, - ...( yield syncSelect( + ...( yield controls.select( 'core', 'getEntityRecordEdits', kind, @@ -567,7 +571,7 @@ export function* saveEntityRecord( */ export function* saveEditedEntityRecord( kind, name, recordId, options ) { if ( - ! ( yield syncSelect( + ! ( yield controls.select( 'core', 'hasEditsForEntityRecord', kind, @@ -577,7 +581,7 @@ export function* saveEditedEntityRecord( kind, name, recordId, options ) { ) { return; } - const edits = yield syncSelect( + const edits = yield controls.select( 'core', 'getEntityRecordNonTransientEdits', kind, diff --git a/packages/core-data/src/entities.js b/packages/core-data/src/entities.js index 6bf3da89d05e99..4c4262dbcc8dbb 100644 --- a/packages/core-data/src/entities.js +++ b/packages/core-data/src/entities.js @@ -6,7 +6,8 @@ import { upperFirst, camelCase, map, find, get, startCase } from 'lodash'; /** * WordPress dependencies */ -import { apiFetch, syncSelect } from '@wordpress/data-controls'; +import { controls } from '@wordpress/data'; +import { apiFetch } from '@wordpress/data-controls'; import { __ } from '@wordpress/i18n'; /** @@ -188,7 +189,7 @@ export const getMethodName = ( * @return {Array} Entities */ export function* getKindEntities( kind ) { - let entities = yield syncSelect( 'core', 'getEntitiesByKind', kind ); + let entities = yield controls.select( 'core', 'getEntitiesByKind', kind ); if ( entities && entities.length !== 0 ) { return entities; } diff --git a/packages/core-data/src/resolvers.js b/packages/core-data/src/resolvers.js index 69e452142554e8..6f8fa69423853f 100644 --- a/packages/core-data/src/resolvers.js +++ b/packages/core-data/src/resolvers.js @@ -8,7 +8,8 @@ import { find, includes, get, hasIn, compact, uniq } from 'lodash'; */ import { addQueryArgs } from '@wordpress/url'; import deprecated from '@wordpress/deprecated'; -import { apiFetch, select, syncSelect } from '@wordpress/data-controls'; +import { controls } from '@wordpress/data'; +import { apiFetch } from '@wordpress/data-controls'; /** * Internal dependencies @@ -91,7 +92,7 @@ export function* getEntityRecord( kind, name, key = '', query ) { // The resolution cache won't consider query as reusable based on the // fields, so it's tested here, prior to initiating the REST request, // and without causing `getEntityRecords` resolution to occur. - const hasRecords = yield syncSelect( + const hasRecords = yield controls.select( 'core', 'hasEntityRecords', kind, @@ -297,7 +298,7 @@ export function* canUser( action, resource, id ) { * @param {number} postId The id of the parent post. */ export function* getAutosaves( postType, postId ) { - const { rest_base: restBase } = yield select( + const { rest_base: restBase } = yield controls.resolveSelect( 'core', 'getPostType', postType @@ -321,5 +322,5 @@ export function* getAutosaves( postType, postId ) { * @param {number} postId The id of the parent post. */ export function* getAutosave( postType, postId ) { - yield select( 'core', 'getAutosaves', postType, postId ); + yield controls.resolveSelect( 'core', 'getAutosaves', postType, postId ); } diff --git a/packages/core-data/src/test/actions.js b/packages/core-data/src/test/actions.js index 2527c8bbe096ea..1a925e65881e2d 100644 --- a/packages/core-data/src/test/actions.js +++ b/packages/core-data/src/test/actions.js @@ -1,7 +1,7 @@ /** * WordPress dependencies */ -import { syncSelect } from '@wordpress/data-controls'; +import { controls } from '@wordpress/data'; /** * Internal dependencies @@ -26,7 +26,7 @@ describe( 'editEntityRecord', () => { {} ); expect( fulfillment.next().value ).toEqual( - syncSelect( 'core', 'getEntity', entity.kind, entity.name ) + controls.select( 'core', 'getEntity', entity.kind, entity.name ) ); // Don't pass back an entity config. expect( fulfillment.next.bind( fulfillment ) ).toThrow(