diff --git a/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js index 8a493130ad27d..22d9d841dc6fd 100644 --- a/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +++ b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js @@ -1,23 +1,18 @@ /** * WordPress dependencies */ -import { useEntityProp } from '@wordpress/core-data'; import { __ } from '@wordpress/i18n'; /** * Internal dependencies */ import SidebarNavigationItem from '../sidebar-navigation-item'; +import useNavigationMenuTitle from './use-navigation-menu-title'; import { useLink } from '../routes/link'; import { NAVIGATION_POST_TYPE } from '../../utils/constants'; export default function TemplatePartNavigationMenuListItem( { id } ) { - const [ title ] = useEntityProp( - 'postType', - NAVIGATION_POST_TYPE, - 'title', - id - ); + const title = useNavigationMenuTitle( id ); const linkInfo = useLink( { postId: id, diff --git a/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js index 40012ec46a85e..b7f9b5295fd0f 100644 --- a/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +++ b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js @@ -3,21 +3,15 @@ */ import { __ } from '@wordpress/i18n'; import { __experimentalHeading as Heading } from '@wordpress/components'; -import { useEntityProp } from '@wordpress/core-data'; /** * Internal dependencies */ import NavigationMenuEditor from '../sidebar-navigation-screen-navigation-menu/navigation-menu-editor'; -import { NAVIGATION_POST_TYPE } from '../../utils/constants'; +import useNavigationMenuTitle from './use-navigation-menu-title'; export default function TemplatePartNavigationMenu( { id } ) { - const [ title ] = useEntityProp( - 'postType', - NAVIGATION_POST_TYPE, - 'title', - id - ); + const title = useNavigationMenuTitle( id ); if ( ! id || title === undefined ) { return null; diff --git a/packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js new file mode 100644 index 0000000000000..4585c98ce3e1f --- /dev/null +++ b/packages/edit-site/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js @@ -0,0 +1,32 @@ +/** + * WordPress dependencies + */ +import { useSelect } from '@wordpress/data'; +import { store as coreStore } from '@wordpress/core-data'; + +/** + * Internal dependencies + */ +import { NAVIGATION_POST_TYPE } from '../../utils/constants'; + +export default function useNavigationMenuTitle( id ) { + return useSelect( + ( select ) => { + if ( ! id ) { + return undefined; + } + + const editedRecord = select( coreStore ).getEditedEntityRecord( + 'postType', + NAVIGATION_POST_TYPE, + id + ); + + // Do not display a 'trashed' navigation menu. + return editedRecord.status === 'trash' + ? undefined + : editedRecord.title; + }, + [ id ] + ); +}