From 9d028846bf7bb66fad12b1225841c4471953b185 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Fri, 14 Jan 2022 14:50:47 +0100 Subject: [PATCH 1/3] fix scroll --- .../pages/chat/group-messages/group-messages.page.ts | 3 ++- src/app/pages/chat/messages/messages.page.ts | 3 ++- src/app/services/chat/room.service.ts | 7 +++++++ src/app/services/chat/ws-chat.service.ts | 3 +++ .../chat/group-messages/group-messages.page.ts | 3 ++- src/app/shared/chat/messages/messages.page.ts | 12 ++++++++++-- 6 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index 99df699bc..6233650f7 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -95,6 +95,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } }; this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory(); + this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked } ngOnInit() { @@ -204,7 +205,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { } catch(err) { } } - scrollToBottomClicked(): void { + scrollToBottomClicked = () => { try { this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight; } catch(err) { } diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index bad98da93..1baabf357 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -109,6 +109,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { }; this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory() + this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked } @@ -283,7 +284,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { } catch (err) { } } - scrollToBottomClicked(): void { + scrollToBottomClicked = () => { try { this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight; } catch (err) { } diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 23af0e68a..804fc5b1b 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -23,6 +23,8 @@ export class RoomService { private ToastService = ToastsService + scrollDown = () => {} + constructor( public WsChatService: WsChatService, private MessageService: MessageService, @@ -52,6 +54,11 @@ export class RoomService { this.lastMessage.msg = message.msg this.calDateDuration(ChatMessage._updatedAt) this.massages.push(message) + + setTimeout(()=>{ + this.scrollDown() + }, 100) + } ) } diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 9dcad106b..ea9025388 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -261,8 +261,11 @@ export class WsChatService { receiveLiveMessageFromRoom(roomId, funx: Function) { + const key = roomId + funx; + this.ws.registerCallback({ type:'Onmessage', + key: key, funx:(message)=>{ if(message.msg =='changed' && message.collection == 'stream-room-messages') { if(message.fields.args[0].rid == roomId) { diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index e51c0e0a1..8bf024574 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -103,6 +103,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe //this.scrollToBottom(); this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory(); console.log('MESSAGES'+this.wsChatMethodsService.getGroupRoom(this.roomId).massages); + this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked } ngOnInit() { @@ -141,7 +142,7 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe } catch(err) { } } - scrollToBottomClicked(): void { + scrollToBottomClicked = () => { try { this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight; } catch(err) { } diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 51577d937..373dfee28 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -20,6 +20,7 @@ import { PreviewCameraPage } from 'src/app/modals/preview-camera/preview-camera. import { ViewMediaPage } from 'src/app/modals/view-media/view-media.page'; import { ViewEventPage } from 'src/app/modals/view-event/view-event.page'; import { WsChatMethodsService} from 'src/app/services/chat/ws-chat-methods.service' +import { WsChatService } from 'src/app/services/chat/ws-chat.service' @Component({ selector: 'app-messages', @@ -78,13 +79,19 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy public ThemeService: ThemeService, private changeDetectorRef: ChangeDetectorRef, private router: Router, - public wsChatMethodsService: WsChatMethodsService + public wsChatMethodsService: WsChatMethodsService, + public WsChatService: WsChatService ) { this.loggedUser = authService.ValidatedUserChat['data']; + + } ngOnChanges(changes: SimpleChanges): void { this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory() + + this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked + } ngOnInit() { @@ -142,7 +149,8 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } catch(err) { } } - scrollToBottomClicked(): void { + scrollToBottomClicked = () => { + console.log('scroll') try { this.myScrollContainer.nativeElement.scrollTop = this.myScrollContainer.nativeElement.scrollHeight; //this.scrollingOnce = false; From 46c6860625c32bed80f9cae4734aae6c161df45c Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Fri, 14 Jan 2022 14:53:27 +0100 Subject: [PATCH 2/3] fix --- src/app/services/chat/ws-chat.service.ts | 25 ------------------------ 1 file changed, 25 deletions(-) diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index ea9025388..d42a923ab 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -234,31 +234,6 @@ export class WsChatService { } - - /** - * @param roomId - * @param key - * @param funx - */ - receiveMyMessageConfirmation(roomId, funx: Function) { - - this.ws.registerCallback({ - type:'Onmessage', - funx:(message)=>{ - if(message.msg =='result') { - if(message.result) { - if(message.result.msg) { - if(message.result.rid == roomId) { - funx(message) - } - } - } - } - } - }) - - } - receiveLiveMessageFromRoom(roomId, funx: Function) { const key = roomId + funx; From e8408bc1ff5cefbdd8628e6e5cf93711622f2d05 Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Fri, 14 Jan 2022 14:58:47 +0100 Subject: [PATCH 3/3] fix --- src/app/pages/chat/group-messages/group-messages.page.ts | 8 +++++++- src/app/pages/chat/messages/messages.page.ts | 4 ++++ src/app/services/chat/room.service.ts | 5 +++++ src/app/shared/chat/group-messages/group-messages.page.ts | 5 +++++ src/app/shared/chat/messages/messages.page.ts | 5 +++++ 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/app/pages/chat/group-messages/group-messages.page.ts b/src/app/pages/chat/group-messages/group-messages.page.ts index f345dfa9d..aa88c949d 100644 --- a/src/app/pages/chat/group-messages/group-messages.page.ts +++ b/src/app/pages/chat/group-messages/group-messages.page.ts @@ -94,8 +94,14 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy { this.modalController.dismiss(); } }; + this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory(); - this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked + this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked; + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + } ngOnInit() { diff --git a/src/app/pages/chat/messages/messages.page.ts b/src/app/pages/chat/messages/messages.page.ts index 1baabf357..95a3fb0a7 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -110,6 +110,10 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory() this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) } diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index e97e83779..24e4c683e 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -85,6 +85,11 @@ export class RoomService { }) + + setTimeout(()=>{ + this.scrollDown() + }, 50) + this.hasLoadHistory = true } diff --git a/src/app/shared/chat/group-messages/group-messages.page.ts b/src/app/shared/chat/group-messages/group-messages.page.ts index 1da3d421f..d5e091b80 100644 --- a/src/app/shared/chat/group-messages/group-messages.page.ts +++ b/src/app/shared/chat/group-messages/group-messages.page.ts @@ -104,6 +104,11 @@ export class GroupMessagesPage implements OnInit, OnChanges, AfterViewInit, OnDe this.wsChatMethodsService.getGroupRoom(this.roomId).loadHistory(); console.log('MESSAGES'+this.wsChatMethodsService.getGroupRoom(this.roomId).massages); this.wsChatMethodsService.getGroupRoom(this.roomId).scrollDown = this.scrollToBottomClicked + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + } ngOnInit() { diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 373dfee28..aeef0b69b 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -91,6 +91,11 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory() this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + }