@backstage/plugin-techdocs-react
Version:
Shared frontend utilities for TechDocs and Addons
39 lines (36 loc) • 1.34 kB
JavaScript
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