-
account_circle
-
- @if (userDisplayName$ | async; as userDisplayName) {
- {{ userDisplayName }}
- }
- @if (authorityName$ | async; as authorityName) {
- {{ authorityName | translate }}
- }
-
+
+
+ @if (authority$ | async; as authority) {
+
}
-
-
- @if (authority$ | async; as authority) {
-
- }
-
-
+
diff --git a/ui-ngx/src/app/shared/components/user-menu.component.scss b/ui-ngx/src/app/shared/components/user-menu.component.scss
index 92befac2b1..995e82765a 100644
--- a/ui-ngx/src/app/shared/components/user-menu.component.scss
+++ b/ui-ngx/src/app/shared/components/user-menu.component.scss
@@ -14,37 +14,47 @@
* limitations under the License.
*/
:host {
- div.tb-user-info {
+ button.tb-user-menu {
+ width: 250px;
+ height: 100%;
+ padding: 16px;
+ display: flex;
+ flex-direction: row;
+ justify-content: start;
+ gap: 8px;
line-height: 1.5;
span {
text-transform: none;
+ text-align: start;
}
span.tb-user-display-name {
- font-size: .8rem;
- font-weight: 300;
- letter-spacing: .008em;
+ color: rgba(0, 0, 0, 0.76);
+ font-size: 14px;
+ line-height: 16px;
+ font-weight: 500;
+ letter-spacing: 0.25px;
}
span.tb-user-authority {
- font-size: .8rem;
- font-weight: 300;
- letter-spacing: .005em;
- opacity: .8;
+ color: rgba(0, 0, 0, 0.54);
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: 400;
+ letter-spacing: 0.25px;
}
}
.mat-icon.tb-mini-avatar {
- width: 36px;
- height: 36px;
- margin: auto 8px;
- font-size: 36px;
- cursor: default;
+ width: 32px;
+ height: 32px;
+ font-size: 32px;
+ margin: 0;
}
}
.tb-user-menu-items {
- min-width: 256px;
+ min-width: 250px;
}
diff --git a/ui-ngx/src/app/shared/components/user-menu.component.ts b/ui-ngx/src/app/shared/components/user-menu.component.ts
index 15c56dfb3f..1fcde5a1b6 100644
--- a/ui-ngx/src/app/shared/components/user-menu.component.ts
+++ b/ui-ngx/src/app/shared/components/user-menu.component.ts
@@ -14,7 +14,7 @@
/// limitations under the License.
///
-import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core';
+import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { User } from '@shared/models/user.model';
import { Authority } from '@shared/models/authority.enum';
import { select, Store } from '@ngrx/store';
@@ -23,6 +23,7 @@ import { selectAuthUser, selectUserDetails } from '@core/auth/auth.selectors';
import { map } from 'rxjs/operators';
import { AuthService } from '@core/auth/auth.service';
import { Router } from '@angular/router';
+import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
@Component({
selector: 'tb-user-menu',
@@ -33,8 +34,6 @@ import { Router } from '@angular/router';
})
export class UserMenuComponent implements OnInit, OnDestroy {
- @Input() displayUserInfo: boolean;
-
authorities = Authority;
authority$ = this.store.pipe(