From fef82a7aa6e3d5d473550beefad4fb4bfa76dd7b Mon Sep 17 00:00:00 2001 From: epiqueras Date: Fri, 21 Feb 2020 10:41:19 -0800 Subject: [PATCH 1/2] Edit Site: Update template navigation to use new link control. --- .../src/components/link-control/index.js | 12 ++++++++++++ .../src/components/url-popover/link-viewer.js | 14 +++----------- .../edit-site/src/components/block-editor/index.js | 6 +++--- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/block-editor/src/components/link-control/index.js b/packages/block-editor/src/components/link-control/index.js index dcd9c54dbd49d4..4aecdb3826d843 100644 --- a/packages/block-editor/src/components/link-control/index.js +++ b/packages/block-editor/src/components/link-control/index.js @@ -12,6 +12,7 @@ import { ExternalLink, Spinner, VisuallyHidden, + createSlotFill, } from '@wordpress/components'; import { __, sprintf } from '@wordpress/i18n'; import { @@ -21,6 +22,7 @@ import { Fragment, useEffect, createElement, + useMemo, } from '@wordpress/element'; import { safeDecodeURI, @@ -41,6 +43,10 @@ import LinkControlSearchItem from './search-item'; import LinkControlSearchInput from './search-input'; import LinkControlSearchCreate from './search-create-button'; +const { Slot: ViewerSlot, Fill: ViewerFill } = createSlotFill( + 'BlockEditorLinkControlViewer' +); + // Used as a unique identifier for the "Create" option within search results. // Used to help distinguish the "Create" suggestion within the search results in // order to handle it as a unique case. @@ -510,6 +516,9 @@ function LinkControl( { ); }; + const viewerSlotFillProps = useMemo( () => ( { url: value.url } ), [ + value.url, + ] ); return (
{ __( 'Edit' ) } +
) } @@ -586,4 +596,6 @@ function LinkControl( { ); } +LinkControl.ViewerFill = ViewerFill; + export default LinkControl; diff --git a/packages/block-editor/src/components/url-popover/link-viewer.js b/packages/block-editor/src/components/url-popover/link-viewer.js index ba957fac9de9f2..f5cbd7459355f8 100644 --- a/packages/block-editor/src/components/url-popover/link-viewer.js +++ b/packages/block-editor/src/components/url-popover/link-viewer.js @@ -7,12 +7,9 @@ import classnames from 'classnames'; * WordPress dependencies */ import { __ } from '@wordpress/i18n'; -import { pencil } from '@wordpress/icons'; -import { createSlotFill, ExternalLink, Button } from '@wordpress/components'; +import { ExternalLink, Button } from '@wordpress/components'; import { safeDecodeURI, filterURLForDisplay } from '@wordpress/url'; -import { useMemo } from '@wordpress/element'; - -const { Slot, Fill } = createSlotFill( 'BlockEditorURLPopoverLinkViewer' ); +import { pencil } from '@wordpress/icons'; function LinkViewerUrl( { url, urlLabel, className } ) { const linkClassName = classnames( @@ -31,7 +28,7 @@ function LinkViewerUrl( { url, urlLabel, className } ) { ); } -function LinkViewer( { +export default function LinkViewer( { className, linkClassName, onEditLinkClick, @@ -59,11 +56,6 @@ function LinkViewer( { onClick={ onEditLinkClick } /> ) } - ( { url } ), [ url ] ) } /> ); } - -LinkViewer.Fill = Fill; - -export default LinkViewer; diff --git a/packages/edit-site/src/components/block-editor/index.js b/packages/edit-site/src/components/block-editor/index.js index 8438927f338cbc..3bcfbcda557405 100644 --- a/packages/edit-site/src/components/block-editor/index.js +++ b/packages/edit-site/src/components/block-editor/index.js @@ -8,7 +8,7 @@ import { useEntityBlockEditor } from '@wordpress/core-data'; import { BlockEditorProvider, BlockEditorKeyboardShortcuts, - URLPopover, + __experimentalLinkControl, BlockInspector, WritingFlow, ObserveTyping, @@ -69,7 +69,7 @@ export default function BlockEditor() { useSubRegistry={ false } > - + <__experimentalLinkControl.ViewerFill> { useCallback( ( fillProps ) => ( + From 5432e83b302481349b0421d4855e75cc0c1d9eac Mon Sep 17 00:00:00 2001 From: epiqueras Date: Mon, 24 Feb 2020 17:09:34 -0800 Subject: [PATCH 2/2] Edit Site: Append query vars in `NavigateToLink` properly. --- package-lock.json | 5 +++-- packages/block-editor/src/components/link-control/index.js | 7 ++++--- packages/edit-site/package.json | 1 + .../edit-site/src/components/navigate-to-link/index.js | 3 ++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7082f93ae92e6f..c7019a3c28bfb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10418,6 +10418,7 @@ "@wordpress/i18n": "file:packages/i18n", "@wordpress/media-utils": "file:packages/media-utils", "@wordpress/notices": "file:packages/notices", + "@wordpress/url": "file:packages/url", "file-saver": "^2.0.2", "jszip": "^3.2.2" } @@ -19703,7 +19704,7 @@ }, "node-pre-gyp": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", + "resolved": false, "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "dev": true, "optional": true, @@ -19722,7 +19723,7 @@ }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "resolved": false, "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, diff --git a/packages/block-editor/src/components/link-control/index.js b/packages/block-editor/src/components/link-control/index.js index 4aecdb3826d843..1a47f3283550f8 100644 --- a/packages/block-editor/src/components/link-control/index.js +++ b/packages/block-editor/src/components/link-control/index.js @@ -516,9 +516,10 @@ function LinkControl( { ); }; - const viewerSlotFillProps = useMemo( () => ( { url: value.url } ), [ - value.url, - ] ); + const viewerSlotFillProps = useMemo( + () => ( { url: value && value.url } ), + [ value && value.url ] + ); return (
{ try { const { success, data } = await fetch( - `${ url }?_wp-find-template` + addQueryArgs( url, { '_wp-find-template': true } ) ).then( ( res ) => res.json() ); if ( success ) { let newTemplateId = data.ID;