From 2dcd0036d028c2e781c92bbf2ac222345b5ee909 Mon Sep 17 00:00:00 2001 From: leejinho Date: Mon, 9 Dec 2019 16:52:43 +0900 Subject: [PATCH] =?UTF-8?q?##=20=EB=B0=A9=EC=A0=95=EB=B3=B4.=EC=B0=B8?= =?UTF-8?q?=EC=97=AC=EC=9E=90=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95.?= =?UTF-8?q?=201.=20isJoinRoom=20=EA=B0=92=EC=97=90=20=EB=94=B0=EB=A5=B8=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=EB=B3=84=20=EC=B2=98=EB=A6=AC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 강퇴기능 씽크 제반 작업. 1. 모바일 씽크작업. 2. 강퇴 메시지 처리. ## 사용자 초대 :: 1. 모바일과 씽크. 2. 초대시 방정보 갱신되지 않는 문제 수정. --- .../components/messages.component.ts | 20 ++-- .../right-drawer/room-user-list.component.ts | 14 ++- .../src/app/services/notification.service.ts | 39 +++++++- .../src/app/store/messenger/room/actions.ts | 8 +- .../src/app/store/messenger/room/effects.ts | 97 ++++++++++++++++--- .../src/lib/models/info.ts | 2 + .../src/lib/protocols/event-json/codec.ts | 2 +- .../src/lib/protocols/info.ts | 5 +- .../src/lib/protocols/send.ts | 22 +++-- .../src/lib/protocols/info.ts | 14 +-- .../src/lib/services/room-protocol.service.ts | 19 +++- .../src/lib/protocols/room.ts | 2 +- .../message-box/information.component.ts | 6 ++ .../lib/components/messages.component.html | 6 ++ .../src/lib/components/messages.component.ts | 1 + .../src/lib/components/list-item.component.ts | 5 +- .../src/lib/utils/string.util.ts | 7 +- 17 files changed, 210 insertions(+), 59 deletions(-) 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 0fa78e52..91181546 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 @@ -84,11 +84,7 @@ import { FileViewerDialogData, FileViewerDialogResult } from '@app/layouts/common/dialogs/file-viewer.dialog.component'; -import { - CONST, - FileUtil, - StickerFilesInfo -} from '@ucap-webmessenger/core'; +import { CONST, FileUtil, StickerFilesInfo } from '@ucap-webmessenger/core'; import { PerfectScrollbarComponent } from 'ngx-perfect-scrollbar'; import { StatusCode } from '@ucap-webmessenger/api'; import { @@ -311,7 +307,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { case RoomType.Bot: case RoomType.Allim: return this.userInfoList - .filter(user => user.seq !== this.loginRes.userSeq) + .filter(user => user.seq !== this.loginRes.userSeq && user.isJoinRoom) .map(user => user.name); } @@ -323,7 +319,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { if (this.roomInfo.roomType === RoomType.Single) { return user.seq !== this.loginRes.userSeq; } else { - return true; + return user.isJoinRoom; } }) .sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0)) @@ -959,15 +955,17 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { type: UserSelectDialogType.EditChatMember, title: 'Edit Chat Member', curRoomUser: this.userInfoList.filter( - user => user.seq !== this.loginRes.userSeq + user => user.seq !== this.loginRes.userSeq && user.isJoinRoom ) } }); if (!!result && !!result.choice && result.choice) { - const userSeqs: number[] = this.userInfoList.map( - userInfo => userInfo.seq - ); + const userSeqs: number[] = this.userInfoList.map(userInfo => { + if (userInfo.isJoinRoom) { + return userInfo.seq; + } + }); if ( !!result.selectedUserList && result.selectedUserList.length > 0 diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/room-user-list.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/room-user-list.component.ts index af0f218b..5d733c14 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/room-user-list.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/room-user-list.component.ts @@ -66,7 +66,9 @@ export class RoomUserListComponent implements OnInit, OnDestroy { .pipe( select(AppStore.MessengerSelector.RoomSelector.selectUserinfolist), tap(userInfoList => { - this.userInfoList = userInfoList; + this.userInfoList = userInfoList + .filter(userInfo => userInfo.isJoinRoom === true) + .sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0)); }) ) .subscribe(); @@ -104,15 +106,17 @@ export class RoomUserListComponent implements OnInit, OnDestroy { type: UserSelectDialogType.EditChatMember, title: 'Edit Chat Member', curRoomUser: this.userInfoList.filter( - user => user.seq !== this.loginRes.userSeq + user => user.seq !== this.loginRes.userSeq && user.isJoinRoom ) } }); if (!!result && !!result.choice && result.choice) { - const userSeqs: number[] = this.userInfoList.map( - userInfo => userInfo.seq - ); + const userSeqs: number[] = this.userInfoList.map(userInfo => { + if (userInfo.isJoinRoom) { + return userInfo.seq; + } + }); if (!!result.selectedUserList && result.selectedUserList.length > 0) { result.selectedUserList.forEach(user => { if (userSeqs.indexOf(user.seq) < 0) { diff --git a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts index 64711b2c..0966a8ec 100644 --- a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts +++ b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts @@ -37,7 +37,10 @@ import { SSVC_TYPE_ROOM_FONT_UPD_NOTI, InviteNotification, UpdateNotification as RoomUpdateNotification, - SSVC_TYPE_ROOM_UPD_RES + SSVC_TYPE_ROOM_UPD_RES, + SSVC_TYPE_ROOM_EXIT_FORCING_RES, + SSVC_TYPE_ROOM_EXIT_RES, + SSVC_TYPE_ROOM_INVITE_RES } from '@ucap-webmessenger/protocol-room'; import { StatusProtocolService, @@ -342,6 +345,20 @@ export class AppNotificationService { .pipe( tap(notiOrRes => { switch (notiOrRes.SSVC_TYPE) { + case SSVC_TYPE_ROOM_INVITE_RES: + { + const noti = notiOrRes as InviteNotification; + this.logger.debug( + 'Notification::roomProtocolService::InviteNotification', + noti + ); + this.store.dispatch( + RoomStore.inviteSuccess({ + roomSeq: noti.roomSeq + }) + ); + } + break; case SSVC_TYPE_ROOM_UPD_RES: { const noti = notiOrRes as RoomUpdateNotification; @@ -393,15 +410,31 @@ export class AppNotificationService { ); } break; - case SSVC_TYPE_ROOM_EXIT_FORCING_NOTI: + case SSVC_TYPE_ROOM_EXIT_FORCING_RES: { + // 내가 강퇴 진행. const noti = notiOrRes as ExitForcingNotification; this.logger.debug( 'Notification::roomProtocolService::ExitForcingNotification', noti ); this.store.dispatch( - RoomStore.exitForcingNotification({ + RoomStore.exitForcingNotificationRes({ + noti + }) + ); + } + break; + case SSVC_TYPE_ROOM_EXIT_FORCING_NOTI: + { + // 내가 강퇴 됨. + const noti = notiOrRes as ExitForcingNotification; + this.logger.debug( + 'Notification::roomProtocolService::ExitForcingNotification', + noti + ); + this.store.dispatch( + RoomStore.exitForcingNotificationNoti({ noti }) ); diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/room/actions.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/room/actions.ts index c87465f0..09201b0e 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/room/actions.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/room/actions.ts @@ -52,8 +52,12 @@ export const exitNotification = createAction( props<{ noti: ExitNotification }>() ); -export const exitForcingNotification = createAction( - '[Messenger::Room] Exit Forcing Notification', +export const exitForcingNotificationRes = createAction( + '[Messenger::Room] Exit Forcing Notification // Do Forcing', + props<{ noti: ExitForcingNotification }>() +); +export const exitForcingNotificationNoti = createAction( + '[Messenger::Room] Exit Forcing Notification // Forcing Me', props<{ noti: ExitForcingNotification }>() ); diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/room/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/room/effects.ts index 3d937630..e92cc014 100644 --- a/projects/ucap-webmessenger-app/src/app/store/messenger/room/effects.ts +++ b/projects/ucap-webmessenger-app/src/app/store/messenger/room/effects.ts @@ -36,7 +36,9 @@ import { UpdateTimerSetResponse } from '@ucap-webmessenger/protocol-room'; +import * as AppStore from '@app/store'; import * as ChatStore from '@app/store/messenger/chat'; +import * as SyncStore from '@app/store/messenger/sync'; import { info, @@ -44,7 +46,8 @@ import { infoFailure, inviteNotification, exitNotification, - exitForcingNotification, + exitForcingNotificationRes, + exitForcingNotificationNoti, updateFontNotification, updateOnlyAlarm, update, @@ -266,16 +269,29 @@ export class Effects { inviteSuccess$ = createEffect(() => this.actions$.pipe( ofType(inviteSuccess), - map(action => { - return ChatStore.selectedRoom({ roomSeq: action.roomSeq }); - // const loginInfo = this.sessionStorageService.get( - // KEY_LOGIN_INFO - // ); - // return info({ - // roomSeq: action.roomSeq, - // isDetail: true, - // localeCode: loginInfo.localeCode - // }); + withLatestFrom( + this.store.pipe( + select((state: any) => state.messenger.room.roomInfo as RoomInfo) + ), + this.store.pipe( + select(AppStore.MessengerSelector.SyncSelector.selectRoomSyncDate) + ) + ), + map(([action, roomInfo, roomSyncDate]) => { + const loginInfo = this.sessionStorageService.get( + KEY_LOGIN_INFO + ); + + this.store.dispatch( + SyncStore.room({ + syncDate: roomSyncDate, + localeCode: loginInfo.localeCode + }) + ); + + if (!!roomInfo && roomInfo.roomSeq === action.roomSeq) { + return ChatStore.selectedRoom({ roomSeq: action.roomSeq }); + } }) ) ); @@ -338,16 +354,67 @@ export class Effects { }, { dispatch: false } ); - exitForcingNotification$ = createEffect( + exitForcingNotificationRes$ = createEffect( () => { return this.actions$.pipe( - ofType(exitForcingNotification), - map(action => action.noti), - tap(noti => {}) + ofType(exitForcingNotificationRes), + withLatestFrom( + this.store.pipe( + select((state: any) => state.messenger.room.roomInfo as RoomInfo) + ), + this.store.pipe( + select(AppStore.MessengerSelector.SyncSelector.selectRoomSyncDate) + ) + ), + tap(([action, roomInfo, roomSyncDate]) => { + if (!!roomInfo && roomInfo.roomSeq === action.noti.roomSeq) { + this.store.dispatch( + ChatStore.selectedRoom({ roomSeq: action.noti.roomSeq }) + ); + } + + const loginInfo = this.sessionStorageService.get( + KEY_LOGIN_INFO + ); + + this.store.dispatch( + SyncStore.room({ + syncDate: roomSyncDate, + localeCode: loginInfo.localeCode + }) + ); + }) ); }, { dispatch: false } ); + exitForcingNotificationNoti$ = createEffect( + () => { + return this.actions$.pipe( + ofType(exitForcingNotificationNoti), + withLatestFrom( + this.store.pipe( + select((state: any) => state.messenger.room.roomInfo as RoomInfo) + ) + ), + tap(([action, roomInfo]) => { + if (!!roomInfo && roomInfo.roomSeq === action.noti.roomSeq) { + this.store.dispatch(ChatStore.clearSelectedRoom()); + } + + this.store.dispatch( + exitSuccess({ + res: { + roomSeq: action.noti.roomSeq + } + }) + ); + }) + ); + }, + { dispatch: false } + ); + updateFontNotification$ = createEffect( () => { return this.actions$.pipe( diff --git a/projects/ucap-webmessenger-protocol-event/src/lib/models/info.ts b/projects/ucap-webmessenger-protocol-event/src/lib/models/info.ts index 4ee754b1..6f972c83 100644 --- a/projects/ucap-webmessenger-protocol-event/src/lib/models/info.ts +++ b/projects/ucap-webmessenger-protocol-event/src/lib/models/info.ts @@ -15,6 +15,8 @@ export interface Info { sentMessageJson?: T; // 수신자수 receiverCount: number; + // 강퇴 요청자명 + exitForcingRequestUserName?: string; } export function isCopyable(eventType: EventType): boolean { diff --git a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/event-json/codec.ts b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/event-json/codec.ts index 50a636b9..4fad1050 100644 --- a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/event-json/codec.ts +++ b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/event-json/codec.ts @@ -107,7 +107,7 @@ export const decodeEventJson = ( case EventType.Before2MonthsAgo: return message; case EventType.ForcedExit: - return message; + return decodeCharacterEventJson(message); case EventType.ChatbotStart: return message; case EventType.ChatbotEnd: diff --git a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/info.ts b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/info.ts index 8a52a81c..ec029b81 100644 --- a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/info.ts +++ b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/info.ts @@ -60,6 +60,8 @@ export const decodeInfoData: ProtocolDecoder = ( if (info.length > 5) { const eventType = info[1] as EventType; + const exitForcingRequestUserName = info.length > 6 ? info[6] : ''; + infoList.push({ seq: Number(info[0]), type: eventType, @@ -67,7 +69,8 @@ export const decodeInfoData: ProtocolDecoder = ( sendDate: info[3], sentMessage: info[4], sentMessageJson: decodeEventJson(eventType, info[4]), - receiverCount: Number(info[5]) + receiverCount: Number(info[5]), + exitForcingRequestUserName }); } } diff --git a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/send.ts b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/send.ts index 42c22eb9..4f510805 100644 --- a/projects/ucap-webmessenger-protocol-event/src/lib/protocols/send.ts +++ b/projects/ucap-webmessenger-protocol-event/src/lib/protocols/send.ts @@ -40,7 +40,7 @@ export interface SendResponse extends ProtocolResponse { // 알림상태(s) PC 경우에만 관여됨 N: 푸시를 보내지 않은 이벤트 S: 푸시를 보낸 이벤트 pushStatus: PushStatus; // 강퇴 타입(s) - ForcedExitType: string; + forcedExitType: string; // 요청자 이름(s) senderName: string; /** Decoded Info */ @@ -63,7 +63,7 @@ export interface SendNotification extends ProtocolNotification { /** 알림상태(s) PC 경우에만 관여됨 N: 푸시를 보내지 않은 이벤트 S: 푸시를 보낸 이벤트 */ pushStatus: PushStatus; /** 강퇴 타입(s) */ - ForcedExitType: string; + forcedExitType: string; /** 요청자 이름(s) */ senderName: string; /** 사용자아이디(s) */ @@ -94,6 +94,8 @@ export const decodeSend: ProtocolDecoder = ( const sendDate = message.bodyList[3]; const sentMessage = message.bodyList[4]; const receiverCount = message.bodyList[5] || 0; + const forcedExitType = message.bodyList[7]; + const senderName = message.bodyList[8]; return decodeProtocolMessage(message, { roomSeq: message.bodyList[0], @@ -103,8 +105,8 @@ export const decodeSend: ProtocolDecoder = ( message: sentMessage, receiverCount, pushStatus: message.bodyList[6] as PushStatus, - ForcedExitType: message.bodyList[7], - senderName: message.bodyList[8], + forcedExitType, + senderName, info: { seq, type: eventType, @@ -112,7 +114,8 @@ export const decodeSend: ProtocolDecoder = ( sendDate, sentMessage, sentMessageJson: decodeEventJson(eventType, sentMessage), - receiverCount + receiverCount, + exitForcingRequestUserName: senderName } } as SendResponse); }; @@ -125,6 +128,8 @@ export const decodeSendNotification: ProtocolDecoder = ( const sendDate = message.bodyList[3]; const sentMessage = message.bodyList[4]; const receiverCount = message.bodyList[5] || 0; + const forcedExitType = message.bodyList[7]; + const senderName = message.bodyList[8]; return decodeProtocolMessage(message, { roomSeq: message.bodyList[0], @@ -134,8 +139,8 @@ export const decodeSendNotification: ProtocolDecoder = ( message: sentMessage, receiverCount, pushStatus: message.bodyList[6] as PushStatus, - ForcedExitType: message.bodyList[7], - senderName: message.bodyList[8], + forcedExitType, + senderName, id: message.bodyList[9], companyCode: message.bodyList[10], info: { @@ -145,7 +150,8 @@ export const decodeSendNotification: ProtocolDecoder = ( sendDate, sentMessage, sentMessageJson: decodeEventJson(eventType, sentMessage), - receiverCount + receiverCount, + exitForcingRequestUserName: senderName } } as SendNotification); }; diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/protocols/info.ts b/projects/ucap-webmessenger-protocol-room/src/lib/protocols/info.ts index 4bfcbf5f..412cfda9 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/protocols/info.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/protocols/info.ts @@ -115,7 +115,7 @@ export const decodeUserShortData: ProtocolDecoder = ( seq: Number(info[0]), name: info[1], profileImageFile: info[2], - isJoinRoom: info[3], + isJoinRoom: info[3] === 'Y' ? true : false, lastReadEventSeq: Number(info[4]), madn: info[5], hardSadn: info[6], @@ -192,17 +192,17 @@ export interface UserStatusOfflineResponse extends ProtocolResponse { // 사용자SEQ(n)... userSeqs: number[]; } -export const encodeUserStatusOffline: ProtocolEncoder< - UserStatusOfflineRequest -> = (req: UserStatusOfflineRequest) => { +export const encodeUserStatusOffline: ProtocolEncoder = ( + req: UserStatusOfflineRequest +) => { const bodyList: PacketBody[] = []; bodyList.push({ type: PacketBodyValue.String, value: req.roomSeq }); return bodyList; }; -export const decodeUserStatusOffline: ProtocolDecoder< - UserStatusOfflineResponse -> = (message: ProtocolMessage) => { +export const decodeUserStatusOffline: ProtocolDecoder = ( + message: ProtocolMessage +) => { let userSeqs: number[] = []; if (message.bodyList.length > 1) { userSeqs = message.bodyList.slice(1); diff --git a/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts b/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts index 091d98fa..4014bd0f 100644 --- a/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts +++ b/projects/ucap-webmessenger-protocol-room/src/lib/services/room-protocol.service.ts @@ -27,7 +27,10 @@ import { SSVC_TYPE_ROOM_EXIT_NOTI, SSVC_TYPE_ROOM_EXIT_FORCING_NOTI, SSVC_TYPE_ROOM_FONT_UPD_NOTI, - SSVC_TYPE_ROOM_UPD_RES + SSVC_TYPE_ROOM_UPD_RES, + SSVC_TYPE_ROOM_EXIT_FORCING_RES, + SSVC_TYPE_ROOM_EXIT_RES, + SSVC_TYPE_ROOM_INVITE_RES } from '../types/service'; import { OpenRequest, @@ -131,6 +134,13 @@ export class RoomProtocolService { filter(message => message.serviceType === SVC_TYPE_ROOM), tap(message => { switch (message.subServiceType) { + case SSVC_TYPE_ROOM_INVITE_RES: + { + this.notificationSubject.next( + decodeInviteNotification(message) + ); + } + break; case SSVC_TYPE_ROOM_UPD_RES: { this.notificationSubject.next( @@ -151,6 +161,13 @@ export class RoomProtocolService { this.notificationSubject.next(decodeExitNotification(message)); } break; + case SSVC_TYPE_ROOM_EXIT_FORCING_RES: + { + this.notificationSubject.next( + decodeExitForcingNotification(message) + ); + } + break; case SSVC_TYPE_ROOM_EXIT_FORCING_NOTI: { this.notificationSubject.next( diff --git a/projects/ucap-webmessenger-protocol-sync/src/lib/protocols/room.ts b/projects/ucap-webmessenger-protocol-sync/src/lib/protocols/room.ts index 2fffe788..55c7d729 100644 --- a/projects/ucap-webmessenger-protocol-sync/src/lib/protocols/room.ts +++ b/projects/ucap-webmessenger-protocol-sync/src/lib/protocols/room.ts @@ -109,7 +109,7 @@ export const decodeRoomUserData: ProtocolDecoder = ( seq: Number(info[0]), name: info[1], profileImageFile: info[2], - isJoinRoom: info[3], + isJoinRoom: info[3] === 'Y' ? true : false, lastReadEventSeq: Number(info[4]), madn: info[5], hardSadn: info[6], diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/information.component.ts b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/information.component.ts index 85f4e5ef..4f80f96a 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/information.component.ts +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/message-box/information.component.ts @@ -47,6 +47,12 @@ export class InformationComponent implements OnInit { this.contents = `${m.sentMessage}님이 퇴장하셨습니다.`; } break; + case EventType.ForcedExit: + { + const m = this.message as Info; + this.contents = `${m.exitForcingRequestUserName} 님이 ${m.sentMessage} 님을 퇴장 시키셨습니다.`; + } + break; case EventType.RenameRoom: { const m = this.message as Info; diff --git a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html index 51eb1c00..c5e4891a 100644 --- a/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html +++ b/projects/ucap-webmessenger-ui-chat/src/lib/components/messages.component.html @@ -40,6 +40,12 @@ class="information-msg" > + + { - if (this.loginRes.userSeq === roomUserInfo.seq) { + if ( + this.loginRes.userSeq === roomUserInfo.seq || + !roomUserInfo.isJoinRoom + ) { return; } if ('' === roomName.trim()) { diff --git a/projects/ucap-webmessenger-ui/src/lib/utils/string.util.ts b/projects/ucap-webmessenger-ui/src/lib/utils/string.util.ts index af71eb99..939a00eb 100644 --- a/projects/ucap-webmessenger-ui/src/lib/utils/string.util.ts +++ b/projects/ucap-webmessenger-ui/src/lib/utils/string.util.ts @@ -2,7 +2,7 @@ import { EventType, EventJson, FileEventJson, - MassTextEventJson, + MassTextEventJson } from '@ucap-webmessenger/protocol-event'; import { FileType } from '@ucap-webmessenger/protocol-file'; @@ -79,7 +79,7 @@ export class StringUtil { '수요일', '목요일', '금요일', - '토요일', + '토요일' ]; const weekKorShortName = ['일', '월', '화', '수', '목', '금', '토']; @@ -91,7 +91,7 @@ export class StringUtil { 'Wednesday', 'Thursday', 'Friday', - 'Saturday', + 'Saturday' ]; const weekEngShortName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; @@ -158,6 +158,7 @@ export class StringUtil { switch (eventType) { case EventType.Join: case EventType.Exit: + case EventType.ForcedExit: case EventType.RenameRoom: case EventType.NotificationForTimerRoom: case EventType.GuideForRoomTimerChanged: