UNPKG

@backstage/plugin-techdocs-react

Version:

Shared frontend utilities for TechDocs and Addons

39 lines (36 loc) 1.34 kB
import { createElement } from 'react'; import { getComponentData, attachComponentData } from '@backstage/core-plugin-api'; import { TECHDOCS_ADDONS_KEY, getDataKeyByName } from './addons.esm.js'; import { createExtensionDataRef, createExtensionBlueprint } from '@backstage/frontend-plugin-api'; const techDocsAddonDataRef = createExtensionDataRef().with({ id: "techdocs.addon" }); const AddonBlueprint = createExtensionBlueprint({ kind: "addon", attachTo: [ { id: "page:techdocs/reader", input: "addons" }, { id: "entity-content:techdocs", input: "addons" } ], output: [techDocsAddonDataRef], factory: (params) => [techDocsAddonDataRef(params)], dataRefs: { addon: techDocsAddonDataRef } }); const attachTechDocsAddonComponentData = (techDocsAddon, data) => { const element = createElement(techDocsAddon); const isDataAttached = getComponentData( element, TECHDOCS_ADDONS_KEY ); if (!isDataAttached) { attachComponentData(techDocsAddon, TECHDOCS_ADDONS_KEY, data); } const dataKey = getDataKeyByName(data.name); const isDataKeyAttached = getComponentData(element, dataKey); if (!isDataKeyAttached) { attachComponentData(techDocsAddon, dataKey, true); } }; export { AddonBlueprint, attachTechDocsAddonComponentData, techDocsAddonDataRef }; //# sourceMappingURL=alpha.esm.js.map