@backstage/plugin-techdocs
Version:
The Backstage plugin that renders technical documentation for your components
48 lines (45 loc) • 2.28 kB
JavaScript
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