From ad7c0ba55298e46fe77671f0a326b43ecf6f6412 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Thu, 2 Feb 2023 13:54:09 +0100 Subject: [PATCH] Save panel only visible when there are unsaved changes --- .../edit-site/src/components/sidebar/index.js | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/edit-site/src/components/sidebar/index.js b/packages/edit-site/src/components/sidebar/index.js index d8602745380263..5fa49717b69080 100644 --- a/packages/edit-site/src/components/sidebar/index.js +++ b/packages/edit-site/src/components/sidebar/index.js @@ -2,7 +2,9 @@ * WordPress dependencies */ import { memo } from '@wordpress/element'; +import { useSelect } from '@wordpress/data'; import { __experimentalNavigatorProvider as NavigatorProvider } from '@wordpress/components'; +import { store as coreStore } from '@wordpress/core-data'; /** * Internal dependencies @@ -27,6 +29,16 @@ function SidebarScreens() { } function Sidebar() { + const { isDirty } = useSelect( ( select ) => { + const { __experimentalGetDirtyEntityRecords } = select( coreStore ); + const dirtyEntityRecords = __experimentalGetDirtyEntityRecords(); + // The currently selected entity to display. + // Typically template or template part in the site editor. + return { + isDirty: dirtyEntityRecords.length > 0, + }; + }, [] ); + return ( <> -
- -
+ { isDirty && ( +
+ +
+ ) } ); }