UNPKG

@backstage/plugin-techdocs

Version:

The Backstage plugin that renders technical documentation for your components

48 lines (45 loc) 2.28 kB
import { jsxs, Fragment, jsx } from 'react/jsx-runtime'; import Portal from '@material-ui/core/Portal'; import { useTechDocsAddons, useTechDocsReaderPage, TechDocsAddonLocations } from '@backstage/plugin-techdocs-react'; const TechDocsReaderPageContentAddons = () => { const addons = useTechDocsAddons(); const { shadowRoot } = useTechDocsReaderPage(); 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"]' ); 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); } return /* @__PURE__ */ jsxs(Fragment, { children: [ /* @__PURE__ */ jsx(Portal, { container: primarySidebarAddonLocation, children: addons.renderComponentsByLocation(TechDocsAddonLocations.PrimarySidebar) }), /* @__PURE__ */ jsx(Portal, { container: contentElement, children: addons.renderComponentsByLocation(TechDocsAddonLocations.Content) }), /* @__PURE__ */ jsx(Portal, { container: secondarySidebarAddonLocation, children: addons.renderComponentsByLocation(TechDocsAddonLocations.SecondarySidebar) }) ] }); }; export { TechDocsReaderPageContentAddons }; //# sourceMappingURL=TechDocsReaderPageContentAddons.esm.js.map