diff --git a/.changeset/honest-seas-repeat.md b/.changeset/honest-seas-repeat.md
new file mode 100644
index 0000000000..99f1ceaeb2
--- /dev/null
+++ b/.changeset/honest-seas-repeat.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-app': minor
+---
+
+**BREAKING**: The `app-root-element` extension now only accepts `JSX.Element` in its `element` param, meaning overrides need to be updated.
diff --git a/.changeset/small-trams-do.md b/.changeset/small-trams-do.md
new file mode 100644
index 0000000000..a3d0e394a6
--- /dev/null
+++ b/.changeset/small-trams-do.md
@@ -0,0 +1,5 @@
+---
+'@backstage/frontend-plugin-api': minor
+---
+
+**BREAKING**: The `element` param for `AppRootElementBlueprint` no longer accepts a component. If you are currently passing a component such as `element: () => ` or `element: MyComponent`, simply switch to `element: `.
diff --git a/.changeset/thick-breads-add.md b/.changeset/thick-breads-add.md
new file mode 100644
index 0000000000..94b19d258d
--- /dev/null
+++ b/.changeset/thick-breads-add.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-signals': patch
+'@backstage/plugin-home': patch
+---
+
+**BREAKING ALPHA**: The `app-root-element` extension now only accepts `JSX.Element` in its `element` param, meaning overrides need to be updated.
diff --git a/packages/frontend-plugin-api/report.api.md b/packages/frontend-plugin-api/report.api.md
index 8ae1960221..2b2fec28a2 100644
--- a/packages/frontend-plugin-api/report.api.md
+++ b/packages/frontend-plugin-api/report.api.md
@@ -254,7 +254,7 @@ export const AppRootElementBlueprint: ExtensionBlueprint<{
kind: 'app-root-element';
name: undefined;
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
output: ConfigurableExtensionDataRef;
inputs: {};
diff --git a/packages/frontend-plugin-api/src/blueprints/AppRootElementBlueprint.ts b/packages/frontend-plugin-api/src/blueprints/AppRootElementBlueprint.ts
index c823fa56cd..d1c71155f2 100644
--- a/packages/frontend-plugin-api/src/blueprints/AppRootElementBlueprint.ts
+++ b/packages/frontend-plugin-api/src/blueprints/AppRootElementBlueprint.ts
@@ -26,9 +26,7 @@ export const AppRootElementBlueprint = createExtensionBlueprint({
kind: 'app-root-element',
attachTo: { id: 'app/root', input: 'elements' },
output: [coreExtensionData.reactElement],
- *factory(params: { element: JSX.Element | (() => JSX.Element) }) {
- yield coreExtensionData.reactElement(
- typeof params.element === 'function' ? params.element() : params.element,
- );
+ *factory(params: { element: JSX.Element }) {
+ yield coreExtensionData.reactElement(params.element);
},
});
diff --git a/plugins/app/report.api.md b/plugins/app/report.api.md
index 15001d2961..fc0c60daf7 100644
--- a/plugins/app/report.api.md
+++ b/plugins/app/report.api.md
@@ -816,7 +816,7 @@ const appPlugin: FrontendPlugin<
kind: 'app-root-element';
name: 'alert-display';
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
}>;
'app-root-element:app/dialog-display': ExtensionDefinition<{
@@ -839,7 +839,7 @@ const appPlugin: FrontendPlugin<
kind: 'app-root-element';
name: 'dialog-display';
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
}>;
'app-root-element:app/oauth-request-dialog': ExtensionDefinition<{
@@ -854,7 +854,7 @@ const appPlugin: FrontendPlugin<
>;
inputs: {};
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
}>;
'sign-in-page:app': ExtensionDefinition<{
diff --git a/plugins/app/src/extensions/elements.tsx b/plugins/app/src/extensions/elements.tsx
index 5a9644e4ef..b6519ef707 100644
--- a/plugins/app/src/extensions/elements.tsx
+++ b/plugins/app/src/extensions/elements.tsx
@@ -41,7 +41,7 @@ export const alertDisplayAppRootElement =
},
factory: (originalFactory, { config }) => {
return originalFactory({
- element: () => ,
+ element: ,
});
},
});
diff --git a/plugins/home/report-alpha.api.md b/plugins/home/report-alpha.api.md
index 010918b029..6baf00f0d1 100644
--- a/plugins/home/report-alpha.api.md
+++ b/plugins/home/report-alpha.api.md
@@ -53,7 +53,7 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
}>;
'page:home': ExtensionDefinition<{
diff --git a/plugins/signals/report-alpha.api.md b/plugins/signals/report-alpha.api.md
index 13091a9032..b1f50f1891 100644
--- a/plugins/signals/report-alpha.api.md
+++ b/plugins/signals/report-alpha.api.md
@@ -47,7 +47,7 @@ const _default: FrontendPlugin<
>;
inputs: {};
params: {
- element: JSX.Element | (() => JSX.Element);
+ element: JSX.Element;
};
}>;
}