diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html
index b04ad574..55021b72 100644
--- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html
+++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html
@@ -81,6 +81,9 @@
+
diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts
index 9c3e903a..6bcfd2b7 100644
--- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts
+++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts
@@ -40,6 +40,7 @@ import * as AppStore from '@app/store';
import * as EventStore from '@app/store/messenger/event';
import * as ChatStore from '@app/store/messenger/chat';
import * as RoomStore from '@app/store/messenger/room';
+import * as SyncStore from '@app/store/messenger/sync';
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
import {
@@ -84,6 +85,8 @@ import {
EditChatRoomDialogResult,
EditChatRoomDialogData
} from '../dialogs/chat/edit-chat-room.dialog.component';
+import { SelectGroupDialogComponent, SelectGroupDialogResult, SelectGroupDialogData } from '../dialogs/group/select-group.dialog.component';
+import { GroupDetailData } from '@ucap-webmessenger/protocol-sync';
@Component({
selector: 'app-layout-messenger-messages',
@@ -838,6 +841,40 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit {
}
}
break;
+ case 'ADD_GROUP':
+ {
+ const result = await this.dialogService.open<
+ SelectGroupDialogComponent,
+ SelectGroupDialogData,
+ SelectGroupDialogResult
+ >(SelectGroupDialogComponent, {
+ width: '600px',
+ data: {
+ title: 'Group Select'
+ }
+ });
+
+ if (!!result && !!result.choice && result.choice) {
+ if (!!result.group) {
+ const oldGroup: GroupDetailData = result.group;
+ const trgtUserSeq: number[] = [];
+ result.group.userSeqs.map(seq => trgtUserSeq.push(seq));
+ this.userInfoList
+ .filter(v => result.group.userSeqs.indexOf(v.seq) < 0)
+ .forEach(user => {
+ trgtUserSeq.push(user.seq);
+ });
+
+ this.store.dispatch(
+ SyncStore.updateGroupMember({
+ oldGroup,
+ trgtUserSeq
+ })
+ );
+ }
+ }
+ }
+ break;
case 'EDIT_ROOM':
{
const result = await this.dialogService.open<