diff --git a/packages/block-library/src/page-list/edit.js b/packages/block-library/src/page-list/edit.js index 837e9d0cf67291..e4c28a22111c61 100644 --- a/packages/block-library/src/page-list/edit.js +++ b/packages/block-library/src/page-list/edit.js @@ -183,63 +183,66 @@ export default function PageListEdit( { style: { ...context.style?.color }, } ); - const getBlockList = ( parentId = parentPageID ) => { - const childPages = pagesByParentId.get( parentId ); + const pagesTree = useMemo( + function makePagesTree( parentId = 0, level = 0 ) { + const childPages = pagesByParentId.get( parentId ); - if ( ! childPages?.length ) { - return []; - } - - return childPages.reduce( ( template, page ) => { - const hasChildren = pagesByParentId.has( page.id ); - const pageProps = { - id: page.id, - label: - // translators: displayed when a page has an empty title. - page.title?.rendered?.trim() !== '' - ? page.title?.rendered - : __( '(no title)' ), - title: page.title?.rendered, - link: page.url, - hasChildren, - }; - let item = null; - const children = getBlockList( page.id ); - item = createBlock( 'core/page-list-item', pageProps, children ); - template.push( item ); - - return template; - }, [] ); - }; + if ( ! childPages?.length ) { + return []; + } - const makePagesTree = ( parentId = 0, level = 0 ) => { - const childPages = pagesByParentId.get( parentId ); + return childPages.reduce( ( tree, page ) => { + const hasChildren = pagesByParentId.has( page.id ); + const item = { + value: page.id, + label: '— '.repeat( level ) + page.title.rendered, + rawName: page.title.rendered, + }; + tree.push( item ); + if ( hasChildren ) { + tree.push( ...makePagesTree( page.id, level + 1 ) ); + } + return tree; + }, [] ); + }, + [ pagesByParentId ] + ); - if ( ! childPages?.length ) { - return []; - } + const blockList = useMemo( + function getBlockList( parentId = parentPageID ) { + const childPages = pagesByParentId.get( parentId ); - return childPages.reduce( ( tree, page ) => { - const hasChildren = pagesByParentId.has( page.id ); - const item = { - value: page.id, - label: '— '.repeat( level ) + page.title.rendered, - rawName: page.title.rendered, - }; - tree.push( item ); - if ( hasChildren ) { - tree.push( ...makePagesTree( page.id, level + 1 ) ); + if ( ! childPages?.length ) { + return []; } - return tree; - }, [] ); - }; - const pagesTree = useMemo( makePagesTree, [ pagesByParentId ] ); - - const blockList = useMemo( getBlockList, [ - pagesByParentId, - parentPageID, - ] ); + return childPages.reduce( ( template, page ) => { + const hasChildren = pagesByParentId.has( page.id ); + const pageProps = { + id: page.id, + label: + // translators: displayed when a page has an empty title. + page.title?.rendered?.trim() !== '' + ? page.title?.rendered + : __( '(no title)' ), + title: page.title?.rendered, + link: page.url, + hasChildren, + }; + let item = null; + const children = getBlockList( page.id ); + item = createBlock( + 'core/page-list-item', + pageProps, + children + ); + template.push( item ); + + return template; + }, [] ); + }, + [ pagesByParentId, parentPageID ] + ); const { isNested,