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 3672db1a..ba4ec505 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 @@ -1666,14 +1666,13 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { } onClickOpenProfile(userSeq: number) { + const roomType = this.roomInfoSubject.value.roomType; if ( - [ - RoomType.Allim, - RoomType.Bot, - RoomType.Link, - RoomType.Allim_Elephant, - RoomType.Allim_TMS - ].some(v => v === this.roomInfoSubject.value.roomType) + roomType !== RoomType.Allim && + roomType !== RoomType.Bot && + roomType !== RoomType.Link && + roomType !== RoomType.Allim_Elephant && + roomType !== RoomType.Allim_TMS ) { this.openProfile.emit({ userSeq }); } 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 d2fbc690..c718c1c0 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 @@ -58,7 +58,7 @@ [mine]="message.senderSeq === loginRes.userSeq" [highlight]="isHighlightedEvent(message.seq)" [existReadToHere]=" - readToHereEvent && readToHereEvent.seq === message.seq + !!readToHereEvent && readToHereEvent.seq === message.seq " [dateChanged]="getDateSplitter(message)" [senderName]="getUserName(message.senderSeq)" 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 4c20b283..dc65835c 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 @@ -169,20 +169,26 @@ export class MessagesComponent implements OnInit, OnDestroy { this.roomInfo = roomInfo; }); this.eventListSubscription = this.eventList$.subscribe(eventList => { + if (!!eventList && eventList.length > 0 && this.baseEventSeq === 0) { + this.initRoomLastEventSeq = eventList[eventList.length - 1].seq; + } + if ( !!eventList && eventList.length > 0 && + this.baseEventSeq > 0 && !!this.roomInfo && !!this.roomInfo.lastReadEventSeq && this.baseEventSeq <= this.roomInfo.lastReadEventSeq ) { - // 조회된 내용중에 read here 가 있을 경우. + // 기존 대화 내용이 있는 상태에서 추가로 조회된 내용중에 read here 가 있을 경우. this.firstCheckReadHere = false; } - this.readToHereEvent = eventList.find(e => this.getReadHere(e)); - this.eventList = eventList; + + this.readToHereEvent = this.getReadHere(); + this.changeDetectorRef.detectChanges(); if (this.searchingMode) { @@ -339,7 +345,7 @@ export class MessagesComponent implements OnInit, OnDestroy { return false; } - getReadHere(message: Info): boolean { + getReadHere(): Info | undefined { if ( !!this.roomInfo && !!this.roomInfo.lastReadEventSeq && @@ -351,20 +357,13 @@ export class MessagesComponent implements OnInit, OnDestroy { this.roomInfo.roomType === RoomType.Multi ) { if (!this.roomInfo.isTimeRoom) { - const messageIndex = this.eventList.findIndex( - v => v.seq === message.seq + return this.eventList.find( + v => v.seq === this.roomInfo.lastReadEventSeq + 1 ); - - if ( - this.eventList[messageIndex].seq === - this.roomInfo.lastReadEventSeq + 1 - ) { - return true; - } } } } - return false; + return undefined; } getStringReadHereMore(): string {