From 291eb4538c64efb8110849e75e9e4dfdfff09b0b Mon Sep 17 00:00:00 2001 From: Richard Park Date: Tue, 15 Oct 2019 18:20:50 +0900 Subject: [PATCH] bug of context menu is fixed --- .../left-sidenav/group.component.html | 75 ++++++++++++++++--- .../left-sidenav/group.component.ts | 34 ++++++++- .../messenger/messenger.layout.module.ts | 2 + .../src/lib/components/messages.component.ts | 2 + .../components/expansion-panel.component.ts | 3 - 5 files changed, 101 insertions(+), 15 deletions(-) diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.html index 963bccc2..17475b8b 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.html @@ -67,9 +67,52 @@ [matMenuTriggerFor]="profileContextMenu" > - - - + + + + + + + + + @@ -80,11 +123,25 @@ [matMenuTriggerFor]="groupContextMenu" > - - - - - - + + + + + + + diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts index ffa93c1e..b013d799 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/group.component.ts @@ -7,7 +7,7 @@ import { } from '@angular/core'; import { Observable, combineLatest, Subscription } from 'rxjs'; -import { map, tap } from 'rxjs/operators'; +import { map, tap, take } from 'rxjs/operators'; import { Store, select } from '@ngrx/store'; @@ -52,12 +52,10 @@ export class GroupComponent implements OnInit { @ViewChild('profileContextMenu', { static: true }) profileContextMenu: MatMenu; - profileContextMenuPosition = { x: '0px', y: '0px' }; @ViewChild('groupContextMenu', { static: true }) groupContextMenu: MatMenu; - groupContextMenuPosition = { x: '0px', y: '0px' }; groupBuddyList$: Observable< @@ -206,6 +204,19 @@ export class GroupComponent implements OnInit { ); } + onClickProfileContextMenu( + menuType: string, + userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN + ) { + this.logger.debug( + 'onClickProfileContextMenu', + 'menuType', + menuType, + 'userInfo', + userInfo + ); + } + onContextMenuProfile( event: MouseEvent, userInfo: UserInfo | UserInfoSS | UserInfoF | UserInfoDN @@ -213,6 +224,8 @@ export class GroupComponent implements OnInit { event.preventDefault(); event.stopPropagation(); + this.profileContextMenu.focusFirstItem('mouse'); + this.profileContextMenuPosition.x = event.clientX + 'px'; this.profileContextMenuPosition.y = event.clientY + 'px'; const profileContextMenuTrigger = this.menuTriggerList.toArray()[1]; @@ -220,7 +233,22 @@ export class GroupComponent implements OnInit { profileContextMenuTrigger.openMenu(); } + onClickGroupContextMenu(menuType: string, group: GroupDetailData) { + this.logger.debug( + 'onClickGroupContextMenu', + 'menuType', + menuType, + 'group', + group + ); + } + onMoreGroup(params: { event: MouseEvent; group: GroupDetailData }) { + params.event.preventDefault(); + params.event.stopPropagation(); + + this.groupContextMenu.focusFirstItem('mouse'); + this.groupContextMenuPosition.x = params.event.clientX + 'px'; this.groupContextMenuPosition.y = params.event.clientY + 'px'; const groupContextMenuTrigger = this.menuTriggerList.toArray()[2]; diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/messenger.layout.module.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/messenger.layout.module.ts index 3dc60ce6..e366a70f 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/messenger.layout.module.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/messenger.layout.module.ts @@ -6,6 +6,7 @@ import { FlexLayoutModule } from '@angular/flex-layout'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatDialogModule } from '@angular/material/dialog'; +import { MatDividerModule } from '@angular/material/divider'; import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule } from '@angular/material/menu'; import { MatProgressBarModule } from '@angular/material/progress-bar'; @@ -32,6 +33,7 @@ import { DIALOGS } from './dialogs'; MatButtonModule, MatCardModule, MatDialogModule, + MatDividerModule, MatIconModule, MatMenuModule, MatProgressBarModule, diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.ts index 81833375..07ab8840 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.ts +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.ts @@ -158,6 +158,8 @@ export class MessagesComponent implements OnInit { onContextMenuMessage(event: MouseEvent, eventType: EventType, message: Info) { event.preventDefault(); + this.messageContextMenu.focusFirstItem('mouse'); + this.messageContextMenuPosition.x = event.clientX + 'px'; this.messageContextMenuPosition.y = event.clientY + 'px'; const messageContextMenuTrigger = this.menuTriggerList.toArray()[0]; diff --git a/projects/ucap-webmessenger-ui-group/src/lib/components/expansion-panel.component.ts b/projects/ucap-webmessenger-ui-group/src/lib/components/expansion-panel.component.ts index f815e831..04b4bee3 100644 --- a/projects/ucap-webmessenger-ui-group/src/lib/components/expansion-panel.component.ts +++ b/projects/ucap-webmessenger-ui-group/src/lib/components/expansion-panel.component.ts @@ -55,9 +55,6 @@ export class ExpansionPanelComponent implements OnInit { } onClickMore(event: MouseEvent, group: GroupDetailData) { - event.preventDefault(); - event.stopPropagation(); - this.more.emit({ event, group }); } }