From baa7e32f18c0662f551a0c17b7fc660b4e1931b6 Mon Sep 17 00:00:00 2001 From: Ella Date: Thu, 18 Jan 2024 21:55:39 +0100 Subject: [PATCH 1/3] Site editor: avoid fetching themes on load --- .../src/components/save-button/index.js | 11 ++++--- .../sidebar-navigation-screen/index.js | 29 ++++++++++++------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/packages/edit-site/src/components/save-button/index.js b/packages/edit-site/src/components/save-button/index.js index e7eac94de5f314..6bd4daedb980f3 100644 --- a/packages/edit-site/src/components/save-button/index.js +++ b/packages/edit-site/src/components/save-button/index.js @@ -34,9 +34,7 @@ export default function SaveButton( { const dirtyEntityRecords = __experimentalGetDirtyEntityRecords(); const { isSaveViewOpened } = select( editSiteStore ); const isActivatingTheme = isResolving( 'activateTheme' ); - const previewingTheme = select( coreStore ).getTheme( - currentlyPreviewingTheme() - ); + const currentlyPreviewingThemeId = currentlyPreviewingTheme(); return { isDirty: dirtyEntityRecords.length > 0, @@ -49,7 +47,12 @@ export default function SaveButton( { ) ) || isActivatingTheme, isSaveViewOpen: isSaveViewOpened(), - previewingThemeName: previewingTheme?.name?.rendered, + // Do note call `getTheme` with null, it will cause a request to + // the server. + previewingThemeName: currentlyPreviewingThemeId + ? select( coreStore ).getTheme( currentlyPreviewingThemeId ) + ?.name?.rendered + : undefined, }; }, [] ); const { setIsSaveViewOpened } = useDispatch( editSiteStore ); diff --git a/packages/edit-site/src/components/sidebar-navigation-screen/index.js b/packages/edit-site/src/components/sidebar-navigation-screen/index.js index 9ab6f58c81b212..0fc3d6147f1d5a 100644 --- a/packages/edit-site/src/components/sidebar-navigation-screen/index.js +++ b/packages/edit-site/src/components/sidebar-navigation-screen/index.js @@ -41,17 +41,26 @@ export default function SidebarNavigationScreen( { description, backPath: backPathProp, } ) { - const { dashboardLink, dashboardLinkText } = useSelect( ( select ) => { - const { getSettings } = unlock( select( editSiteStore ) ); - return { - dashboardLink: getSettings().__experimentalDashboardLink, - dashboardLinkText: getSettings().__experimentalDashboardLinkText, - }; - }, [] ); - const { getTheme } = useSelect( coreStore ); + const { dashboardLink, dashboardLinkText, previewingThemeName } = useSelect( + ( select ) => { + const { getSettings } = unlock( select( editSiteStore ) ); + const currentlyPreviewingThemeId = currentlyPreviewingTheme(); + return { + dashboardLink: getSettings().__experimentalDashboardLink, + dashboardLinkText: + getSettings().__experimentalDashboardLinkText, + // Do note call `getTheme` with null, it will cause a request to + // the server. + previewingThemeName: currentlyPreviewingThemeId + ? select( coreStore ).getTheme( currentlyPreviewingThemeId ) + ?.name?.rendered + : undefined, + }; + }, + [] + ); const location = useLocation(); const navigator = useNavigator(); - const theme = getTheme( currentlyPreviewingTheme() ); const icon = isRTL() ? chevronRight : chevronLeft; return ( @@ -108,7 +117,7 @@ export default function SidebarNavigationScreen( { ? title : sprintf( 'Previewing %1$s: %2$s', - theme?.name?.rendered, + previewingThemeName, title ) } From 78b67f8c022cec8e09ce88b86a029dde84c91b4f Mon Sep 17 00:00:00 2001 From: Miguel Fonseca <150562+mcsf@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:05:27 +0000 Subject: [PATCH 2/3] Update packages/edit-site/src/components/save-button/index.js --- packages/edit-site/src/components/save-button/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/edit-site/src/components/save-button/index.js b/packages/edit-site/src/components/save-button/index.js index 6bd4daedb980f3..461264bd5a5633 100644 --- a/packages/edit-site/src/components/save-button/index.js +++ b/packages/edit-site/src/components/save-button/index.js @@ -47,7 +47,7 @@ export default function SaveButton( { ) ) || isActivatingTheme, isSaveViewOpen: isSaveViewOpened(), - // Do note call `getTheme` with null, it will cause a request to + // Do not call `getTheme` with null, it will cause a request to // the server. previewingThemeName: currentlyPreviewingThemeId ? select( coreStore ).getTheme( currentlyPreviewingThemeId ) From 466fe0bfe8895ac70f68de42b133593ea4384031 Mon Sep 17 00:00:00 2001 From: Miguel Fonseca <150562+mcsf@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:05:34 +0000 Subject: [PATCH 3/3] Update packages/edit-site/src/components/sidebar-navigation-screen/index.js --- .../edit-site/src/components/sidebar-navigation-screen/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/edit-site/src/components/sidebar-navigation-screen/index.js b/packages/edit-site/src/components/sidebar-navigation-screen/index.js index 0fc3d6147f1d5a..becefe8841fa6f 100644 --- a/packages/edit-site/src/components/sidebar-navigation-screen/index.js +++ b/packages/edit-site/src/components/sidebar-navigation-screen/index.js @@ -49,7 +49,7 @@ export default function SidebarNavigationScreen( { dashboardLink: getSettings().__experimentalDashboardLink, dashboardLinkText: getSettings().__experimentalDashboardLinkText, - // Do note call `getTheme` with null, it will cause a request to + // Do not call `getTheme` with null, it will cause a request to // the server. previewingThemeName: currentlyPreviewingThemeId ? select( coreStore ).getTheme( currentlyPreviewingThemeId )