diff --git a/packages/e2e-tests/specs/experiments/navigation-editor.test.js b/packages/e2e-tests/specs/experiments/navigation-editor.test.js index 0002e78a12e1e..db7a560055f1a 100644 --- a/packages/e2e-tests/specs/experiments/navigation-editor.test.js +++ b/packages/e2e-tests/specs/experiments/navigation-editor.test.js @@ -126,7 +126,7 @@ describe( 'Navigation editor', () => { await visitNavigationEditor(); // Wait for the header to show that no menus are available. - await page.waitForXPath( '//h2[contains(., "No menus available")]', { + await page.waitForXPath( '//h3[.="Create your first menu"]', { visible: true, } ); @@ -139,21 +139,12 @@ describe( 'Navigation editor', () => { ...getMenuItemMocks( { GET: [] } ), ] ); - // Add a new menu. - const [ addNewButton ] = await page.$x( - '//button[contains(., "Add new")]' - ); - await addNewButton.click(); - await page.keyboard.type( 'Main Menu' ); const createMenuButton = await page.waitForXPath( '//button[contains(., "Create menu")]' ); await createMenuButton.click(); - // Close the dropdown. - await page.keyboard.press( 'Escape' ); - // A snackbar will appear when menu creation has completed. await page.waitForXPath( '//div[contains(., "Menu created")]' ); diff --git a/packages/edit-navigation/src/components/header/add-menu-form.js b/packages/edit-navigation/src/components/add-menu/index.js similarity index 72% rename from packages/edit-navigation/src/components/header/add-menu-form.js rename to packages/edit-navigation/src/components/add-menu/index.js index d46aa886ea427..a2170721ce7f6 100644 --- a/packages/edit-navigation/src/components/header/add-menu-form.js +++ b/packages/edit-navigation/src/components/add-menu/index.js @@ -2,7 +2,7 @@ * External dependencies */ import { some } from 'lodash'; - +import classnames from 'classnames'; /** * WordPress dependencies */ @@ -15,13 +15,10 @@ import { store as noticesStore } from '@wordpress/notices'; const menuNameMatches = ( menuName ) => ( menu ) => menu.name.toLowerCase() === menuName.toLowerCase(); -export default function AddMenuForm( { menus, onCreate } ) { +export default function AddMenu( { className, menus, onCreate } ) { const [ menuName, setMenuName ] = useState( '' ); - const { createErrorNotice, createInfoNotice } = useDispatch( noticesStore ); - const [ isCreatingMenu, setIsCreatingMenu ] = useState( false ); - const { saveMenu } = useDispatch( 'core' ); const createMenu = async ( event ) => { @@ -51,29 +48,43 @@ export default function AddMenuForm( { menus, onCreate } ) { type: 'snackbar', isDismissible: true, } ); - onCreate( menu.id ); + if ( onCreate ) { + onCreate( menu.id ); + } } setIsCreatingMenu( false ); }; + const hasMenus = menus?.length; + + const titleText = hasMenus + ? __( 'Create a new menu' ) + : __( 'Create your first menu' ); + + const helpText = hasMenus + ? __( 'A short descriptive name for your menu.' ) + : __( 'A short descriptive name for your first menu.' ); + return (