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 0d3b73fa..474b3ae8 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 @@ -145,65 +145,6 @@ > more_vert - - - - - - - - - - -
@@ -251,6 +192,7 @@ [eventRemained$]="eventRemainedSubject.asObservable()" [userInfos$]="userInfoListSubject.asObservable()" [loginRes$]="loginResSubject.asObservable()" + [lock$]="lockSubject.asObservable()" [sessionVerInfo]="sessionVerInfo" [isShowUnreadCount]="getShowUnreadCount()" [clearReadHere]="clearReadHere" @@ -335,6 +277,65 @@
+ + + + + + + + + + +
{{ 'chat.forwardEventTo' | translate }} 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 b3cca3fc..1831165f 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 @@ -177,6 +177,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { eventRemainedSubscription: Subscription; eventRemainedSubject = new BehaviorSubject(false); // 이전대화가 남아 있는지 여부 + lockSubject = new BehaviorSubject(false); + sessionVerInfo: VersionInfo2Response; baseEventSeq = 0; @@ -305,6 +307,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { ) ) .subscribe(process => { + this.lockSubject.next(process); this.searchEventListProcessing = process; if (!process && this.isShowSearchArea) { this.doSearchTextInEvent(this.searchText); @@ -1355,7 +1358,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { } } break; - case 'REPLAY': + case 'FORWARD': { const result = await this.dialogService.open< CreateChatDialogComponent, @@ -1401,7 +1404,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { } } break; - case 'REPLAY_TO_ME': + case 'FORWARD_TO_ME': { if (this.loginResSubject.value.talkWithMeBotSeq > -1) { this.store.dispatch( @@ -1795,7 +1798,8 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { this.store.dispatch(EventStore.infoForSearchEnd({})); - this.chatMessages.gotoPosition(this.searchedFocusEvent.seq); + // this.chatMessages.gotoPosition(this.searchedFocusEvent.seq); + this.chatMessages.initEventMore(this.searchedFocusEvent.seq); } else { this.searchTotalCount = 0; this.searchCurrentIndex = 0; 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 f48c3fda..c9c1b5d7 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 @@ -60,6 +60,9 @@ export class MessagesComponent implements OnInit, OnDestroy { @Input() userInfos$: Observable; + @Input() + lock$: Observable; + @Input() isShowUnreadCount = true; @Input() @@ -129,6 +132,7 @@ export class MessagesComponent implements OnInit, OnDestroy { firstCheckReadHere = true; initRoomLastEventSeq: number; baseEventSeq = 0; + gotoEventSeq: number; loginRes: LoginResponse; loginResSubscription: Subscription; @@ -536,6 +540,10 @@ export class MessagesComponent implements OnInit, OnDestroy { () => {}, () => { this.initalized = true; + if (!!this.gotoEventSeq) { + this.gotoPosition(this.gotoEventSeq); + this.gotoEventSeq = undefined; + } }, -1 === this.virtualScroller.viewPortInfo.endIndex || !isInViewPortItems, @@ -545,11 +553,12 @@ export class MessagesComponent implements OnInit, OnDestroy { } } - initEventMore() { + initEventMore(gotoEventSeq?: number) { // 방정보가 바뀌면 이전대화 보기 관련 값들을 초기화 한다. this.scrollUpInitalized = false; this.storedScrollItem = undefined; this.storedScrollItemOffsetTop = undefined; + this.gotoEventSeq = gotoEventSeq; } clear() {}