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;
}