diff --git a/packages/block-library/src/navigation-link/edit.js b/packages/block-library/src/navigation-link/edit.js index 11a281a44a76d..7dcd9efe80976 100644 --- a/packages/block-library/src/navigation-link/edit.js +++ b/packages/block-library/src/navigation-link/edit.js @@ -6,41 +6,42 @@ import clsx from 'clsx'; /** * WordPress dependencies */ -import { createBlock } from '@wordpress/blocks'; -import { useSelect, useDispatch } from '@wordpress/data'; -import { - __experimentalToolsPanel as ToolsPanel, - __experimentalToolsPanelItem as ToolsPanelItem, - TextControl, - TextareaControl, - ToolbarButton, - ToolbarGroup, -} from '@wordpress/components'; -import { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes'; -import { __ } from '@wordpress/i18n'; import { BlockControls, InspectorControls, RichText, - useBlockProps, store as blockEditorStore, getColorClassName, + useBlockProps, useInnerBlocksProps, } from '@wordpress/block-editor'; -import { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url'; -import { useState, useEffect, useRef } from '@wordpress/element'; +import { createBlock } from '@wordpress/blocks'; +import { + TextControl, + TextareaControl, + ToggleControl, + ToolbarButton, + ToolbarGroup, + __experimentalToolsPanel as ToolsPanel, + __experimentalToolsPanelItem as ToolsPanelItem, +} from '@wordpress/components'; +import { useMergeRefs, usePrevious } from '@wordpress/compose'; +import { store as coreStore } from '@wordpress/core-data'; +import { useDispatch, useSelect } from '@wordpress/data'; import { __unstableStripHTML as stripHTML } from '@wordpress/dom'; +import { useEffect, useRef, useState } from '@wordpress/element'; import { decodeEntities } from '@wordpress/html-entities'; -import { link as linkIcon, addSubmenu } from '@wordpress/icons'; -import { store as coreStore } from '@wordpress/core-data'; -import { useMergeRefs, usePrevious } from '@wordpress/compose'; +import { __ } from '@wordpress/i18n'; +import { addSubmenu, link as linkIcon } from '@wordpress/icons'; +import { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes'; +import { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url'; /** * Internal dependencies */ +import { getColors } from '../navigation/edit/utils'; import { LinkUI } from './link-ui'; import { updateAttributes } from './update-attributes'; -import { getColors } from '../navigation/edit/utils'; const DEFAULT_BLOCK = { name: 'core/navigation-link' }; @@ -159,7 +160,7 @@ function getMissingText( type ) { * Consider reusing this components for both blocks. */ function Controls( { attributes, setAttributes, setIsLabelFieldFocused } ) { - const { label, url, description, title, rel } = attributes; + const { label, url, description, title, rel, opensInNewTab } = attributes; return ( - + !! opensInNewTab } + label={ __( 'Open in new tab' ) } + onDeselect={ () => setAttributes( { opensInNewTab: false } ) } + isShownByDefault + > + + setAttributes( { opensInNewTab: ! opensInNewTab } ) + } + /> + !! description } label={ __( 'Description' ) }