diff --git a/packages/app-next/src/App.tsx b/packages/app-next/src/App.tsx index b2ea86feb4..d64c4dbb15 100644 --- a/packages/app-next/src/App.tsx +++ b/packages/app-next/src/App.tsx @@ -20,7 +20,9 @@ import { pagesPlugin } from './examples/pagesPlugin'; import graphiqlPlugin from '@backstage/plugin-graphiql/alpha'; import techRadarPlugin from '@backstage/plugin-tech-radar/alpha'; import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; -import homePlugin from '@backstage/plugin-home/alpha'; +import homePlugin, { + titleExtensionDataRef, +} from '@backstage/plugin-home/alpha'; import { coreExtensionData, @@ -74,9 +76,10 @@ const homePageExtension = createExtension({ attachTo: { id: 'home', input: 'props' }, output: { children: coreExtensionData.reactElement, + title: titleExtensionDataRef, }, factory({ bind }) { - bind({ children: homePage }); + bind({ children: homePage, title: 'just a title' }); }, }); diff --git a/plugins/home/alpha-api-report.md b/plugins/home/alpha-api-report.md index 3ae9f14973..35ce0bb86c 100644 --- a/plugins/home/alpha-api-report.md +++ b/plugins/home/alpha-api-report.md @@ -4,10 +4,14 @@ ```ts import { BackstagePlugin } from '@backstage/frontend-plugin-api'; +import { ConfigurableExtensionDataRef } from '@backstage/frontend-plugin-api'; // @alpha (undocumented) -const _default: BackstagePlugin; +const _default: BackstagePlugin<{}, {}>; export default _default; +// @alpha (undocumented) +export const titleExtensionDataRef: ConfigurableExtensionDataRef; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/home/src/alpha.tsx b/plugins/home/src/alpha.tsx index d712769cb0..c8308f7c0a 100644 --- a/plugins/home/src/alpha.tsx +++ b/plugins/home/src/alpha.tsx @@ -16,22 +16,33 @@ import React from 'react'; -import { rootRouteRef } from './routes'; import { coreExtensionData, + createExtensionDataRef, createExtensionInput, createPageExtension, createPlugin, + createRouteRef, } from '@backstage/frontend-plugin-api'; +const rootRouteRef = createRouteRef(); + +/** + * @alpha + */ +export const titleExtensionDataRef = createExtensionDataRef('title'); + const HomepageCompositionRootExtension = createPageExtension({ id: 'home', defaultPath: '/home', routeRef: rootRouteRef, inputs: { props: createExtensionInput( - { children: coreExtensionData.reactElement.optional() }, - // TODO(vinzscam): title + { + children: coreExtensionData.reactElement.optional(), + title: titleExtensionDataRef.optional(), + }, + { singleton: true, optional: true, @@ -40,7 +51,10 @@ const HomepageCompositionRootExtension = createPageExtension({ }, loader: ({ inputs }) => import('./components/').then(m => ( - + )), });