diff --git a/npm/ng-packs/packages/account/config/src/account-config.module.ts b/npm/ng-packs/packages/account/config/src/account-config.module.ts index 60b2f8a6ef..2c1345927b 100644 --- a/npm/ng-packs/packages/account/config/src/account-config.module.ts +++ b/npm/ng-packs/packages/account/config/src/account-config.module.ts @@ -1,12 +1,21 @@ -import { ModuleWithProviders, NgModule } from '@angular/core'; +import { Injector, ModuleWithProviders, NgModule } from '@angular/core'; +import { NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core'; import { ACCOUNT_ROUTE_PROVIDERS } from './providers/route.provider'; +import { navigateToManageProfileFactory } from './utils/factories'; @NgModule() export class AccountConfigModule { static forRoot(): ModuleWithProviders { return { ngModule: AccountConfigModule, - providers: [ACCOUNT_ROUTE_PROVIDERS], + providers: [ + ACCOUNT_ROUTE_PROVIDERS, + { + provide: NAVIGATE_TO_MANAGE_PROFILE, + useFactory: navigateToManageProfileFactory, + deps: [Injector], + }, + ], }; } } diff --git a/npm/ng-packs/packages/account/config/src/utils/factories.ts b/npm/ng-packs/packages/account/config/src/utils/factories.ts new file mode 100644 index 0000000000..8adf52c9fb --- /dev/null +++ b/npm/ng-packs/packages/account/config/src/utils/factories.ts @@ -0,0 +1,13 @@ +import { Injector } from '@angular/core'; +import { RoutesService } from '@abp/ng.core'; +import { Router } from '@angular/router'; +import { eAccountRouteNames } from '../enums/route-names'; + +export function navigateToManageProfileFactory(injector: Injector) { + return () => { + const router = injector.get(Router); + const routes = injector.get(RoutesService); + const { path } = routes.find(item => item.name === eAccountRouteNames.ManageProfile); + router.navigateByUrl(path); + }; +}