From 1a0d7d00d3229045024e7a40a636ac28f336ca6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Tue, 16 Aug 2022 13:36:09 +0200 Subject: [PATCH 1/4] Remove useState from useEntityRecord usage examples --- packages/core-data/README.md | 10 ++++++---- packages/core-data/src/hooks/use-entity-record.ts | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/core-data/README.md b/packages/core-data/README.md index 2a5631013e77a..6ff56a8612615 100644 --- a/packages/core-data/README.md +++ b/packages/core-data/README.md @@ -765,8 +765,8 @@ application, the page and the resolution details will be retrieved from the store state using `getEntityRecord()`, or resolved if missing. ```js -import { useState } from '@wordpress/data'; import { useDispatch } from '@wordpress/data'; +import { useCallback } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { TextControl } from '@wordpress/components'; import { store as noticeStore } from '@wordpress/notices'; @@ -774,17 +774,19 @@ import { useEntityRecord } from '@wordpress/core-data'; function PageRenameForm( { id } ) { const page = useEntityRecord( 'postType', 'page', id ); - const [ title, setTitle ] = useState( () => page.record.title.rendered ); const { createSuccessNotice, createErrorNotice } = useDispatch( noticeStore ); + const setTitle = useCallback( ( title ) => { + page.edit( { title } ); + } ); + if ( page.isResolving ) { return 'Loading...'; } async function onRename( event ) { event.preventDefault(); - page.edit( { title } ); try { await page.save(); createSuccessNotice( __( 'Page renamed.' ), { @@ -799,7 +801,7 @@ function PageRenameForm( { id } ) {
diff --git a/packages/core-data/src/hooks/use-entity-record.ts b/packages/core-data/src/hooks/use-entity-record.ts index a1f1a6c89fa07..34b251376f20f 100644 --- a/packages/core-data/src/hooks/use-entity-record.ts +++ b/packages/core-data/src/hooks/use-entity-record.ts @@ -84,8 +84,8 @@ export interface Options { * * @example * ```js - * import { useState } from '@wordpress/data'; * import { useDispatch } from '@wordpress/data'; + * import { useCallback } from '@wordpress/element'; * import { __ } from '@wordpress/i18n'; * import { TextControl } from '@wordpress/components'; * import { store as noticeStore } from '@wordpress/notices'; @@ -93,17 +93,19 @@ export interface Options { * * function PageRenameForm( { id } ) { * const page = useEntityRecord( 'postType', 'page', id ); - * const [ title, setTitle ] = useState( () => page.record.title.rendered ); * const { createSuccessNotice, createErrorNotice } = * useDispatch( noticeStore ); * + * const setTitle = useCallback( ( title ) => { + * page.edit( { title } ); + * } ); + * * if ( page.isResolving ) { * return 'Loading...'; * } * * async function onRename( event ) { * event.preventDefault(); - * page.edit( { title } ); * try { * await page.save(); * createSuccessNotice( __( 'Page renamed.' ), { @@ -118,7 +120,7 @@ export interface Options { * * * From b138a9dc9b05fceedd0b91e3c4637e68fe494ddd Mon Sep 17 00:00:00 2001 From: Adam Zielinski Date: Wed, 17 Aug 2022 09:20:13 +0200 Subject: [PATCH 2/4] Update packages/core-data/README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Greg Ziółkowski --- packages/core-data/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-data/README.md b/packages/core-data/README.md index 6ff56a8612615..ddb9fc50c5d28 100644 --- a/packages/core-data/README.md +++ b/packages/core-data/README.md @@ -779,7 +779,7 @@ function PageRenameForm( { id } ) { const setTitle = useCallback( ( title ) => { page.edit( { title } ); - } ); + }, [ page.edit ] ); if ( page.isResolving ) { return 'Loading...'; From 1a21e199187c0c2cc1a01689924b17f4e9e544eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Wed, 17 Aug 2022 11:28:27 +0200 Subject: [PATCH 3/4] Update docs --- packages/core-data/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-data/README.md b/packages/core-data/README.md index ddb9fc50c5d28..6ff56a8612615 100644 --- a/packages/core-data/README.md +++ b/packages/core-data/README.md @@ -779,7 +779,7 @@ function PageRenameForm( { id } ) { const setTitle = useCallback( ( title ) => { page.edit( { title } ); - }, [ page.edit ] ); + } ); if ( page.isResolving ) { return 'Loading...'; From 9e5864e915bdd64b11a252857197c3c7d1ce68e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Wed, 17 Aug 2022 12:48:31 +0200 Subject: [PATCH 4/4] Add page.edit as a dependency in the example --- packages/core-data/README.md | 9 ++++++--- packages/core-data/src/hooks/use-entity-record.ts | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/core-data/README.md b/packages/core-data/README.md index 6ff56a8612615..6ccdf605cc777 100644 --- a/packages/core-data/README.md +++ b/packages/core-data/README.md @@ -777,9 +777,12 @@ function PageRenameForm( { id } ) { const { createSuccessNotice, createErrorNotice } = useDispatch( noticeStore ); - const setTitle = useCallback( ( title ) => { - page.edit( { title } ); - } ); + const setTitle = useCallback( + ( title ) => { + page.edit( { title } ); + }, + [ page.edit ] + ); if ( page.isResolving ) { return 'Loading...'; diff --git a/packages/core-data/src/hooks/use-entity-record.ts b/packages/core-data/src/hooks/use-entity-record.ts index 34b251376f20f..4bd4c9293073e 100644 --- a/packages/core-data/src/hooks/use-entity-record.ts +++ b/packages/core-data/src/hooks/use-entity-record.ts @@ -98,7 +98,7 @@ export interface Options { * * const setTitle = useCallback( ( title ) => { * page.edit( { title } ); - * } ); + * }, [ page.edit ] ); * * if ( page.isResolving ) { * return 'Loading...';