diff --git a/src/addons/badges/badges.module.ts b/src/addons/badges/badges.module.ts index b0b192970..42a91fa22 100644 --- a/src/addons/badges/badges.module.ts +++ b/src/addons/badges/badges.module.ts @@ -33,9 +33,7 @@ const mainMenuHomeSiblingRoutes: Routes = [ @NgModule({ imports: [ - CoreMainMenuTabRoutingModule.forChild({ - siblings: mainMenuHomeSiblingRoutes, - }), + CoreMainMenuTabRoutingModule.forChild(mainMenuHomeSiblingRoutes), ], providers: [ { diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 58f5f1650..256c558f4 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -22,13 +22,27 @@ function buildAppRoutes(injector: Injector): Routes { } export type ModuleRoutes = { children: Routes; siblings: Routes }; +export type ModuleRoutesConfig = Routes | Partial; -export function resolveModuleRoutes(injector: Injector, token: InjectionToken[]>): ModuleRoutes { - const routes = injector.get(token, []); +export function resolveModuleRoutes(injector: Injector, token: InjectionToken): ModuleRoutes { + const configs = injector.get(token, []); + const routes = configs.map(config => { + if (Array.isArray(config)) { + return { + children: [], + siblings: config, + }; + } + + return { + children: config.children || [], + siblings: config.siblings || [], + }; + }); return { - children: CoreArray.flatten(routes.map(r => r.children || [])), - siblings: CoreArray.flatten(routes.map(r => r.siblings || [])), + children: CoreArray.flatten(routes.map(r => r.children)), + siblings: CoreArray.flatten(routes.map(r => r.siblings)), }; } diff --git a/src/core/features/mainmenu/mainmenu-routing.module.ts b/src/core/features/mainmenu/mainmenu-routing.module.ts index c30b45479..5b9e25589 100644 --- a/src/core/features/mainmenu/mainmenu-routing.module.ts +++ b/src/core/features/mainmenu/mainmenu-routing.module.ts @@ -14,14 +14,14 @@ import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core'; -import { ModuleRoutes } from '@/app/app-routing.module'; +import { ModuleRoutesConfig } from '@/app/app-routing.module'; export const MAIN_MENU_ROUTES = new InjectionToken('MAIN_MENU_ROUTES'); @NgModule() export class CoreMainMenuRoutingModule { - static forChild(routes: Partial): ModuleWithProviders { + static forChild(routes: ModuleRoutesConfig): ModuleWithProviders { return { ngModule: CoreMainMenuRoutingModule, providers: [ diff --git a/src/core/features/mainmenu/mainmenu-tab-routing.module.ts b/src/core/features/mainmenu/mainmenu-tab-routing.module.ts index d673d2a34..05b1c1420 100644 --- a/src/core/features/mainmenu/mainmenu-tab-routing.module.ts +++ b/src/core/features/mainmenu/mainmenu-tab-routing.module.ts @@ -15,7 +15,7 @@ import { InjectionToken, Injector, ModuleWithProviders, NgModule } from '@angular/core'; import { Route, Routes } from '@angular/router'; -import { ModuleRoutes, resolveModuleRoutes } from '@/app/app-routing.module'; +import { ModuleRoutesConfig, resolveModuleRoutes } from '@/app/app-routing.module'; export const MAIN_MENU_TAB_ROUTES = new InjectionToken('MAIN_MENU_TAB_ROUTES'); @@ -35,7 +35,7 @@ export function buildTabMainRoutes(injector: Injector, mainRoute: Route): Routes @NgModule() export class CoreMainMenuTabRoutingModule { - static forChild(routes: Partial): ModuleWithProviders { + static forChild(routes: ModuleRoutesConfig): ModuleWithProviders { return { ngModule: CoreMainMenuTabRoutingModule, providers: [ diff --git a/src/core/features/mainmenu/pages/home/home-routing.module.ts b/src/core/features/mainmenu/pages/home/home-routing.module.ts index 73b3c4dc1..ab6a7634c 100644 --- a/src/core/features/mainmenu/pages/home/home-routing.module.ts +++ b/src/core/features/mainmenu/pages/home/home-routing.module.ts @@ -14,14 +14,14 @@ import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core'; -import { ModuleRoutes } from '@/app/app-routing.module'; +import { ModuleRoutesConfig } from '@/app/app-routing.module'; export const MAIN_MENU_HOME_ROUTES = new InjectionToken('MAIN_MENU_HOME_ROUTES'); @NgModule() export class CoreMainMenuHomeRoutingModule { - static forChild(routes: Partial): ModuleWithProviders { + static forChild(routes: ModuleRoutesConfig): ModuleWithProviders { return { ngModule: CoreMainMenuHomeRoutingModule, providers: [ diff --git a/src/core/features/settings/settings.module.ts b/src/core/features/settings/settings.module.ts index 2c7fe2a4d..c83228cc0 100644 --- a/src/core/features/settings/settings.module.ts +++ b/src/core/features/settings/settings.module.ts @@ -41,7 +41,7 @@ const mainMenuMoreRoutes: Routes = [ @NgModule({ imports: [ AppRoutingModule.forChild(appRoutes), - CoreMainMenuTabRoutingModule.forChild({ siblings: mainMenuMoreRoutes }), + CoreMainMenuTabRoutingModule.forChild(mainMenuMoreRoutes), ], providers: [ { diff --git a/src/core/features/user/user.module.ts b/src/core/features/user/user.module.ts index 669042ec1..8d0528ce9 100644 --- a/src/core/features/user/user.module.ts +++ b/src/core/features/user/user.module.ts @@ -37,7 +37,7 @@ const routes: Routes = [ @NgModule({ imports: [ - CoreMainMenuTabRoutingModule.forChild({ siblings: routes }), + CoreMainMenuTabRoutingModule.forChild(routes), CoreUserComponentsModule, ], providers: [