From d57d3ca32abefb365f3d762132cc0de1cbf1bd38 Mon Sep 17 00:00:00 2001 From: Camila Belo Date: Fri, 13 May 2022 10:10:41 +0200 Subject: [PATCH] fix(techdocs): dedupe addons locations Signed-off-by: Camila Belo --- .../TechDocsReaderPageContent.tsx | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx index 7c76f75eff..fb6878a281 100644 --- a/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx +++ b/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.tsx @@ -113,18 +113,36 @@ export const TechDocsReaderPageContent = withTechDocsReaderProvider( const contentElement = shadowRoot?.querySelector( '[data-md-component="content"]', ); + const primarySidebarElement = shadowRoot?.querySelector( 'div[data-md-component="sidebar"][data-md-type="navigation"], div[data-md-component="navigation"]', ); + let primarySidebarAddonLocation = primarySidebarElement?.querySelector( + '[data-techdocs-addons-location="primary sidebar"]', + ); + if (!primarySidebarAddonLocation) { + primarySidebarAddonLocation = document.createElement('div'); + primarySidebarAddonLocation.setAttribute( + 'data-techdocs-addons-location', + 'primary sidebar', + ); + primarySidebarElement?.prepend(primarySidebarAddonLocation); + } + const secondarySidebarElement = shadowRoot?.querySelector( 'div[data-md-component="sidebar"][data-md-type="toc"], div[data-md-component="toc"]', ); - - const primarySidebarAddonLocation = document.createElement('div'); - primarySidebarElement?.prepend(primarySidebarAddonLocation); - - const secondarySidebarAddonLocation = document.createElement('div'); - secondarySidebarElement?.prepend(secondarySidebarAddonLocation); + let secondarySidebarAddonLocation = secondarySidebarElement?.querySelector( + '[data-techdocs-addons-location="secondary sidebar"]', + ); + if (!secondarySidebarAddonLocation) { + secondarySidebarAddonLocation = document.createElement('div'); + secondarySidebarAddonLocation.setAttribute( + 'data-techdocs-addons-location', + 'secondary sidebar', + ); + secondarySidebarElement?.prepend(secondarySidebarAddonLocation); + } // No entity metadata = 404. Don't render content at all. if (entityMetadataLoading === false && !entityMetadata)