diff --git a/packages/frontend-app-api/src/extensions/Root.ts b/packages/frontend-app-api/src/extensions/Root.ts index a613a8dcfa..3b1c237e7a 100644 --- a/packages/frontend-app-api/src/extensions/Root.ts +++ b/packages/frontend-app-api/src/extensions/Root.ts @@ -32,6 +32,6 @@ export const Root = createExtension({ replaces: [{ id: 'app', input: 'apis' }], }), }, - output: [], - factory: () => [], + output: [coreExtensionData.reactElement], + factory: ({ inputs }) => inputs.app, }); diff --git a/packages/frontend-app-api/src/wiring/createApp.tsx b/packages/frontend-app-api/src/wiring/createApp.tsx index 537c6c1d91..109bb0b0ed 100644 --- a/packages/frontend-app-api/src/wiring/createApp.tsx +++ b/packages/frontend-app-api/src/wiring/createApp.tsx @@ -309,9 +309,8 @@ export function createSpecializedApp(options?: { ], }); - for (const appNode of tree.root.edges.attachments.get('app') ?? []) { - instantiateAppNodeTree(appNode, apiHolder); - } + // Now instantiate the entire tree, which will skip anything that's already been instantiated + instantiateAppNodeTree(tree.root, apiHolder); routeResolutionApi.initialize(); appTreeApi.initialize(); @@ -335,9 +334,7 @@ export function createSpecializedApp(options?: { } } - const rootEl = tree.root.edges.attachments - .get('app')![0] - .instance!.getData(coreExtensionData.reactElement); + const rootEl = tree.root.instance!.getData(coreExtensionData.reactElement); const AppComponent = () => rootEl;