From baf3d9a270ed0ce3b9deed75a0d8e38ac90d2bcd Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Tue, 30 Sep 2025 12:49:32 +0300 Subject: [PATCH] default layout token added --- .../core/src/lib/components/dynamic-layout.component.ts | 4 +++- .../packages/core/src/lib/tokens/default-layout.token.ts | 4 ++++ npm/ng-packs/packages/core/src/lib/tokens/index.ts | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 npm/ng-packs/packages/core/src/lib/tokens/default-layout.token.ts diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 7dca0cd388..35632ee9a0 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts @@ -14,6 +14,7 @@ import { DYNAMIC_LAYOUTS_TOKEN } from '../tokens/dynamic-layout.token'; import { EnvironmentService } from '../services'; import { NgComponentOutlet } from '@angular/common'; import { filter, take } from 'rxjs'; +import { DEFAULT_LAYOUT } from '../tokens'; @Component({ selector: 'abp-dynamic-layout', @@ -39,6 +40,7 @@ export class DynamicLayoutComponent { protected readonly subscription = inject(SubscriptionService); protected readonly routerEvents = inject(RouterEvents); protected readonly environment = inject(EnvironmentService); + protected readonly defaultLayout = inject(DEFAULT_LAYOUT, { optional: true }); constructor() { const dynamicLayoutComponent = inject(DynamicLayoutComponent, { optional: true, skipSelf: true }); @@ -89,7 +91,7 @@ export class DynamicLayoutComponent { break; } } - return expectedLayout; + return expectedLayout ?? this.defaultLayout; } showLayoutNotFoundError(layoutName: string) { diff --git a/npm/ng-packs/packages/core/src/lib/tokens/default-layout.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/default-layout.token.ts new file mode 100644 index 0000000000..d72c6a62a9 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/default-layout.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; +import { eLayoutType } from '@abp/ng.core'; + +export const DEFAULT_LAYOUT = new InjectionToken(''); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index 6c7fd859c6..9b6f95f3ec 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -18,3 +18,4 @@ export * from './compare-func.token'; export * from './dynamic-layout.token'; export * from './title-strategy-disable-project-name.token'; export * from './ssr-state.token'; +export * from './default-layout.token';