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 b7a9dbcaf..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,7 +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; + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + } ngOnInit() { @@ -204,7 +211,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..95a3fb0a7 100644 --- a/src/app/pages/chat/messages/messages.page.ts +++ b/src/app/pages/chat/messages/messages.page.ts @@ -109,6 +109,11 @@ 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) } @@ -283,7 +288,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 d55e24639..24e4c683e 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) + } ) } @@ -78,6 +85,11 @@ export class RoomService { }) + + setTimeout(()=>{ + this.scrollDown() + }, 50) + this.hasLoadHistory = true } diff --git a/src/app/services/chat/ws-chat.service.ts b/src/app/services/chat/ws-chat.service.ts index 9dcad106b..d42a923ab 100644 --- a/src/app/services/chat/ws-chat.service.ts +++ b/src/app/services/chat/ws-chat.service.ts @@ -234,35 +234,13 @@ 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; + 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 c0dd9a8b1..2eb861975 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,12 @@ 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 + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + } ngOnInit() { @@ -141,7 +147,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..aeef0b69b 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,24 @@ 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 + + setTimeout(()=>{ + this.scrollToBottomClicked() + }, 50) + + } ngOnInit() { @@ -142,7 +154,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;