From 27f1df69faea39adb838f645554181bec8ca4070 Mon Sep 17 00:00:00 2001 From: Eduardo Speroni Date: Wed, 15 Feb 2023 18:27:55 -0300 Subject: [PATCH] feat: support embedded applications --- packages/angular/src/lib/application.ts | 27 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/packages/angular/src/lib/application.ts b/packages/angular/src/lib/application.ts index fa522da..9548ada 100644 --- a/packages/angular/src/lib/application.ts +++ b/packages/angular/src/lib/application.ts @@ -60,6 +60,7 @@ export interface AppRunOptions { appModuleBootstrap: (reason: NgModuleReason) => Promise>; loadingModule?: (reason: NgModuleReason) => Promise>; launchView?: (reason: NgModuleReason) => AppLaunchView; + embedded?: boolean; } if (import.meta['webpackHot']) { @@ -213,10 +214,10 @@ export function runNativeScriptAngularApp(options: AppRunOptions) { if (NativeScriptDebug.isLogEnabled()) { NativeScriptDebug.bootstrapLog(`Setting RootView to ${ref}`); } - if (launchEventDone) { - Application.resetRootView({ - create: () => ref, - }); + if (options.embedded) { + Application.run({ create: () => ref }); + } else if (launchEventDone) { + Application.resetRootView({ create: () => ref }); } else { targetRootView = ref; } @@ -227,10 +228,10 @@ export function runNativeScriptAngularApp(options: AppRunOptions) { if (NativeScriptDebug.isLogEnabled()) { NativeScriptDebug.bootstrapLog(`Setting RootView to ${newRoot}`); } - if (launchEventDone) { - Application.resetRootView({ - create: () => newRoot, - }); + if (options.embedded) { + Application.run({ create: () => newRoot }); + } else if (launchEventDone) { + Application.resetRootView({ create: () => newRoot }); } else { targetRootView = newRoot; } @@ -393,7 +394,9 @@ export function runNativeScriptAngularApp(options: AppRunOptions) { oldAddEventListener = global.NativeScriptGlobals.events.addEventListener; global.NativeScriptGlobals.events.addEventListener = global.NativeScriptGlobals.events[Zone.__symbol__('addEventListener')]; } - Application.on(Application.launchEvent, launchCallback); + if (!options.embedded) { + Application.on(Application.launchEvent, launchCallback); + } Application.on(Application.exitEvent, exitCallback); if (oldAddEventListener) { global.NativeScriptGlobals.events.addEventListener = oldAddEventListener; @@ -431,5 +434,9 @@ export function runNativeScriptAngularApp(options: AppRunOptions) { return; } - Application.run(); + if (options.embedded) { + bootstrapRoot('applaunch'); + } else { + Application.run(); + } }