diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html index 9adbde2d55..8d76e6cb9c 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/nav-items/current-user.component.html @@ -48,8 +48,13 @@ - - {{ item.text }} + + {{ item.textTemplate.text | abpLocalization }} diff --git a/npm/ng-packs/packages/theme-basic/src/lib/providers/user-menu.provider.ts b/npm/ng-packs/packages/theme-basic/src/lib/providers/user-menu.provider.ts index 5c36cc5347..dbf5815d55 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/providers/user-menu.provider.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/providers/user-menu.provider.ts @@ -1,12 +1,6 @@ -import { - AuthService, - ConfigStateService, - LocalizationService, - NAVIGATE_TO_MANAGE_PROFILE, -} from '@abp/ng.core'; +import { AuthService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core'; import { UserMenuService } from '@abp/ng.theme.shared'; import { APP_INITIALIZER, Injector } from '@angular/core'; -import { filter } from 'rxjs/operators'; import { eUserMenuItems } from '../enums/user-menu-items'; export const BASIC_THEME_USER_MENU_PROVIDERS = [ @@ -19,41 +13,32 @@ export const BASIC_THEME_USER_MENU_PROVIDERS = [ ]; export function configureUserMenu(injector: Injector) { - const configState = injector.get(ConfigStateService); const userMenu = injector.get(UserMenuService); - const localization = injector.get(LocalizationService); const authService = injector.get(AuthService); const navigateToManageProfile = injector.get(NAVIGATE_TO_MANAGE_PROFILE); return () => { - configState - .getAll$() - .pipe(filter(res => !!res?.localization)) - .subscribe(() => { - userMenu.addItems([ - { - id: eUserMenuItems.MyAccount, - order: 100, - html: ` - ${localization.instant('AbpAccount::MyAccount')} - `, - action: () => navigateToManageProfile(), - }, - { - id: eUserMenuItems.Logout, - order: 101, - html: ` - ${localization.instant('AbpUi::Logout')} - `, - action: () => { - authService.logout().subscribe(); - }, - }, - ]); - }); + userMenu.addItems([ + { + id: eUserMenuItems.MyAccount, + order: 100, + textTemplate: { + text: 'AbpAccount::MyAccount', + icon: 'fa fa-cog', + }, + action: () => navigateToManageProfile(), + }, + { + id: eUserMenuItems.Logout, + order: 101, + textTemplate: { + text: 'AbpUi::Logout', + icon: 'fa fa-power-off', + }, + action: () => { + authService.logout().subscribe(); + }, + }, + ]); }; } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/models/user-menu.ts b/npm/ng-packs/packages/theme-shared/src/lib/models/user-menu.ts index e3b33cb1f2..c45ea84396 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/models/user-menu.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/models/user-menu.ts @@ -1,5 +1,10 @@ import { NavItem } from './nav-item'; export class UserMenu extends NavItem { - text?: string; + textTemplate?: UserMenuTextTemplate; +} + +export interface UserMenuTextTemplate { + text: string; + icon?: string; }