NFS - Added App Root Elements

Signed-off-by: Andre Wanlin <awanlin@spotify.com>
This commit is contained in:
Andre Wanlin
2025-07-04 11:09:25 -05:00
parent 72f52b6ff9
commit d52d67f700
8 changed files with 64 additions and 2 deletions
+1
View File
@@ -51,6 +51,7 @@
"test": "backstage-cli package test"
},
"dependencies": {
"@backstage/core-compat-api": "workspace:^",
"@backstage/core-components": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
"@backstage/frontend-plugin-api": "workspace:^",
+16
View File
@@ -7,6 +7,7 @@ import { AnyApiFactory } from '@backstage/frontend-plugin-api';
import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api';
import { ExtensionDefinition } from '@backstage/frontend-plugin-api';
import { FrontendPlugin } from '@backstage/frontend-plugin-api';
import { JSX as JSX_2 } from 'react';
// @alpha (undocumented)
const _default: FrontendPlugin<
@@ -28,6 +29,21 @@ const _default: FrontendPlugin<
factory: AnyApiFactory;
};
}>;
'app-root-element:signals/signals-display': ExtensionDefinition<{
kind: 'app-root-element';
name: 'signals-display';
config: {};
configInput: {};
output: ConfigurableExtensionDataRef<
JSX_2.Element,
'core.reactElement',
{}
>;
inputs: {};
params: {
element: JSX.Element | (() => JSX.Element);
};
}>;
}
>;
export default _default;
+11 -1
View File
@@ -16,6 +16,7 @@
import {
ApiBlueprint,
AppRootElementBlueprint,
createApiFactory,
createFrontendPlugin,
discoveryApiRef,
@@ -23,6 +24,8 @@ import {
} from '@backstage/frontend-plugin-api';
import { signalApiRef } from '@backstage/plugin-signals-react';
import { SignalClient } from './api/SignalClient';
import { SignalsDisplay } from './plugin';
import { compatWrapper } from '@backstage/core-compat-api';
const api = ApiBlueprint.make({
params: {
@@ -42,9 +45,16 @@ const api = ApiBlueprint.make({
},
});
const signalsDisplayAppRootElement = AppRootElementBlueprint.make({
name: 'signals-display',
params: {
element: compatWrapper(<SignalsDisplay />),
},
});
/** @alpha */
export default createFrontendPlugin({
pluginId: 'signals',
info: { packageJson: () => import('../package.json') },
extensions: [api],
extensions: [api, signalsDisplayAppRootElement],
});