MOBILE-3320 routes: Refactor module routes config
parent
de38835518
commit
acefa8c35a
|
@ -33,9 +33,7 @@ const mainMenuHomeSiblingRoutes: Routes = [
|
|||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CoreMainMenuTabRoutingModule.forChild({
|
||||
siblings: mainMenuHomeSiblingRoutes,
|
||||
}),
|
||||
CoreMainMenuTabRoutingModule.forChild(mainMenuHomeSiblingRoutes),
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
|
|
|
@ -22,13 +22,27 @@ function buildAppRoutes(injector: Injector): Routes {
|
|||
}
|
||||
|
||||
export type ModuleRoutes = { children: Routes; siblings: Routes };
|
||||
export type ModuleRoutesConfig = Routes | Partial<ModuleRoutes>;
|
||||
|
||||
export function resolveModuleRoutes(injector: Injector, token: InjectionToken<Partial<ModuleRoutes>[]>): ModuleRoutes {
|
||||
const routes = injector.get(token, []);
|
||||
export function resolveModuleRoutes(injector: Injector, token: InjectionToken<ModuleRoutesConfig[]>): 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)),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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<ModuleRoutes>): ModuleWithProviders<CoreMainMenuRoutingModule> {
|
||||
static forChild(routes: ModuleRoutesConfig): ModuleWithProviders<CoreMainMenuRoutingModule> {
|
||||
return {
|
||||
ngModule: CoreMainMenuRoutingModule,
|
||||
providers: [
|
||||
|
|
|
@ -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<ModuleRoutes>): ModuleWithProviders<CoreMainMenuTabRoutingModule> {
|
||||
static forChild(routes: ModuleRoutesConfig): ModuleWithProviders<CoreMainMenuTabRoutingModule> {
|
||||
return {
|
||||
ngModule: CoreMainMenuTabRoutingModule,
|
||||
providers: [
|
||||
|
|
|
@ -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<ModuleRoutes>): ModuleWithProviders<CoreMainMenuHomeRoutingModule> {
|
||||
static forChild(routes: ModuleRoutesConfig): ModuleWithProviders<CoreMainMenuHomeRoutingModule> {
|
||||
return {
|
||||
ngModule: CoreMainMenuHomeRoutingModule,
|
||||
providers: [
|
||||
|
|
|
@ -41,7 +41,7 @@ const mainMenuMoreRoutes: Routes = [
|
|||
@NgModule({
|
||||
imports: [
|
||||
AppRoutingModule.forChild(appRoutes),
|
||||
CoreMainMenuTabRoutingModule.forChild({ siblings: mainMenuMoreRoutes }),
|
||||
CoreMainMenuTabRoutingModule.forChild(mainMenuMoreRoutes),
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
|
|
|
@ -37,7 +37,7 @@ const routes: Routes = [
|
|||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CoreMainMenuTabRoutingModule.forChild({ siblings: routes }),
|
||||
CoreMainMenuTabRoutingModule.forChild(routes),
|
||||
CoreUserComponentsModule,
|
||||
],
|
||||
providers: [
|
||||
|
|
Loading…
Reference in New Issue