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 d1171a5d..3d210d7a 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 @@ -5,7 +5,8 @@ import { ViewChild, OnDestroy, EventEmitter, - Output + Output, + NgZone } from '@angular/core'; import { @@ -138,7 +139,8 @@ export class GroupComponent implements OnInit, OnDestroy { private dialogService: DialogService, private queryProtocolService: QueryProtocolService, private translateService: TranslateService, - private logger: NGXLogger + private logger: NGXLogger, + private ngZone: NgZone ) { this.environmentsInfo = this.sessionStorageService.get( KEY_ENVIRONMENTS_INFO @@ -689,115 +691,126 @@ export class GroupComponent implements OnInit, OnDestroy { break; case 'SEND_MESSAGE': { - let receiverList: UserInfo[] = []; - const isFavGroup = - group.seq < 0 && group.name === 'Favorit' ? true : false; + this.ngZone.run(() => { + let receiverList: UserInfo[] = []; + const isFavGroup = + group.seq < 0 && group.name === 'Favorit' ? true : false; - if (!!isFavGroup) { - receiverList = this.favoritBuddyList; - } else { - const curGroupBuddyList = this.groupBuddyList.filter( - groupInfo => groupInfo.group.seq === group.seq - ); - if (!!curGroupBuddyList && curGroupBuddyList.length > 0) { - receiverList = curGroupBuddyList[0].buddyList; - } - } - - if (receiverList.length > 0) { - this.dialogService.open< - MessageWriteDialogComponent, - MessageWriteDialogData, - MessageWriteDialogResult - >(MessageWriteDialogComponent, { - width: '600px', - height: '600px', - disableClose: true, - hasBackdrop: false, - data: { - loginRes: this.loginRes, - environmentsInfo: this.environmentsInfo, - receiverList + if (!!isFavGroup) { + receiverList = this.favoritBuddyList; + } else { + const curGroupBuddyList = this.groupBuddyList.filter( + groupInfo => groupInfo.group.seq === group.seq + ); + if (!!curGroupBuddyList && curGroupBuddyList.length > 0) { + receiverList = curGroupBuddyList[0].buddyList; } - }); - } + } + + if (receiverList.length > 0) { + this.dialogService.open< + MessageWriteDialogComponent, + MessageWriteDialogData, + MessageWriteDialogResult + >(MessageWriteDialogComponent, { + width: '600px', + height: '600px', + disableClose: true, + hasBackdrop: false, + data: { + loginRes: this.loginRes, + environmentsInfo: this.environmentsInfo, + receiverList + } + }); + } + }); } break; case 'RENAME': { - const result = await this.dialogService.open< - EditGroupDialogComponent, - EditGroupDialogData, - EditGroupDialogResult - >(EditGroupDialogComponent, { - data: { - title: this.translateService.instant('group.changeGroupName'), - group + this.ngZone.run(async () => { + const result = await this.dialogService.open< + EditGroupDialogComponent, + EditGroupDialogData, + EditGroupDialogResult + >(EditGroupDialogComponent, { + data: { + title: this.translateService.instant('group.changeGroupName'), + group + } + }); + + if (!!result && !!result.choice && result.choice) { + if (!!result.groupName && result.groupName.trim().length > 0) { + this.store.dispatch( + SyncStore.updateGroup({ + groupSeq: result.group.seq, + groupName: result.groupName, + userSeqs: result.group.userSeqs + }) + ); + } } }); - - if (!!result && !!result.choice && result.choice) { - if (!!result.groupName && result.groupName.trim().length > 0) { - this.store.dispatch( - SyncStore.updateGroup({ - groupSeq: result.group.seq, - groupName: result.groupName, - userSeqs: result.group.userSeqs - }) - ); - } - } } break; case 'EDIT_MEMBER': { - const result = await this.dialogService.open< - CreateChatDialogComponent, - CreateChatDialogData, - CreateChatDialogResult - >(CreateChatDialogComponent, { - width: '600px', - data: { - type: UserSelectDialogType.EditMember, - title: this.translateService.instant('group.modifyGroupMember'), - group + this.ngZone.run(async () => { + const result = await this.dialogService.open< + CreateChatDialogComponent, + CreateChatDialogData, + CreateChatDialogResult + >(CreateChatDialogComponent, { + width: '600px', + data: { + type: UserSelectDialogType.EditMember, + title: this.translateService.instant('group.modifyGroupMember'), + group + } + }); + + if (!!result && !!result.choice && result.choice) { + if (!!result.oldGroup) { + const userSeqs: number[] = []; + result.selectedUserList.map(user => userSeqs.push(user.seq)); + + this.store.dispatch( + SyncStore.updateGroupMember({ + oldGroup: group, + trgtUserSeq: userSeqs + }) + ); + } } }); - - if (!!result && !!result.choice && result.choice) { - if (!!result.oldGroup) { - const userSeqs: number[] = []; - result.selectedUserList.map(user => userSeqs.push(user.seq)); - - this.store.dispatch( - SyncStore.updateGroupMember({ - oldGroup: group, - trgtUserSeq: userSeqs - }) - ); - } - } } break; case 'DELETE': { - const result = await this.dialogService.open< - ConfirmDialogComponent, - ConfirmDialogData, - ConfirmDialogResult - >(ConfirmDialogComponent, { - width: '360px', - data: { - title: this.translateService.instant('group.removeGroup'), - html: this.translateService.instant('group.confirmRemoveGroup', { - nameOfGroup: `${group.name}` - }) + this.ngZone.run(async () => { + const result = await this.dialogService.open< + ConfirmDialogComponent, + ConfirmDialogData, + ConfirmDialogResult + >(ConfirmDialogComponent, { + width: '360px', + data: { + title: this.translateService.instant('group.removeGroup'), + html: this.translateService.instant( + 'group.confirmRemoveGroup', + { + nameOfGroup: `${group.name}` + } + ) + } + }); + + if (!!result && !!result.choice && result.choice) { + this.store.dispatch(SyncStore.delGroup({ group })); } }); - - if (!!result && !!result.choice && result.choice) { - this.store.dispatch(SyncStore.delGroup({ group })); - } } break; default: diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts index 01f5cdd6..3fe9b96c 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/dialogs/chat/create-chat.dialog.component.ts @@ -21,10 +21,9 @@ import { combineLatest, Subscription, of, - BehaviorSubject, - forkJoin + BehaviorSubject } from 'rxjs'; -import { map, tap, catchError, take } from 'rxjs/operators'; +import { map, tap, catchError } from 'rxjs/operators'; import { Store, select } from '@ngrx/store'; import * as AppStore from '@app/store'; @@ -67,7 +66,7 @@ import { AlertDialogResult, AlertDialogData } from '@ucap-webmessenger/ui'; -import { TranslateService, TranslateParser } from '@ngx-translate/core'; +import { TranslateService } from '@ngx-translate/core'; import { environment } from '../../../../../environments/environment'; import { StringUtil } from '@ucap-webmessenger/core'; import { AppService } from '@app/services/app.service';