diff --git a/src/app/services/chat/message.service.ts b/src/app/services/chat/message.service.ts index 4c28ea287..02ea997be 100644 --- a/src/app/services/chat/message.service.ts +++ b/src/app/services/chat/message.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { Message } from 'src/app/models/chatMethod'; import { chatHistory, ChatMessage, File } from 'src/app/models/chatMethod' +import { Storage } from '@ionic/storage'; @Injectable({ providedIn: 'root' @@ -20,7 +21,8 @@ export class MessageService { file attachments - constructor() { } + constructor(private storage: Storage) { + } setData({customFields, channels, mentions, msg ,rid ,ts, u, t, _id, _updatedAt, file, attachments}:Message) { this.customFields = customFields @@ -35,6 +37,16 @@ export class MessageService { this._updatedAt = _updatedAt this.file = file this.attachments = attachments + + + if (this.file) { + if (this.file.guid) { + this.storage.get(this.file.guid).then((image) => { + console.log('IMAGE FROM STORAGE', image) + this.file.image_url = image + }); + } + } } delete() {} diff --git a/src/app/services/chat/room.service.ts b/src/app/services/chat/room.service.ts index 8d9c3a482..f19c46755 100644 --- a/src/app/services/chat/room.service.ts +++ b/src/app/services/chat/room.service.ts @@ -39,7 +39,7 @@ export class RoomService { private sqlservice: SqliteService, ) { } - setData({ customFields, id, name, t, lastMessage = new MessageService(), _updatedAt }) { + setData({ customFields, id, name, t, lastMessage = new MessageService(this.storage), _updatedAt }) { this.customFields = customFields this.id = id this.name = name @@ -60,7 +60,7 @@ export class RoomService { console.log('recivemessage', ChatMessage) /* this.ToastService._chatMessage({message:'Nova mensagem', sender:'Gilson'}) */ - const message = new MessageService() + const message = new MessageService(this.storage) message.setData(ChatMessage) this.lastMessage.msg = message.msg @@ -122,7 +122,7 @@ export class RoomService { let mmessage = this.fix_updatedAt(msgChat) console.log('FROM DB WEB', mmessage) - const wewMessage = new MessageService() + const wewMessage = new MessageService(this.storage) wewMessage.setData(mmessage) this.massages.push(wewMessage) console.log('loadHistory 222', this.massages) @@ -141,8 +141,8 @@ export class RoomService { getMsgFromDB() { - this.storage.get('chatmsg' + this.id).then((message) => { - + /* this.storage.get('chatmsg' + this.id).then((message) => { + console.log('ALL MESSAGE WEB', message) message.forEach(message => { if (message.file) { @@ -156,12 +156,12 @@ export class RoomService { let mmessage = this.fix_updatedAt(message) console.log('FROM DB WEB', mmessage) - const wewMessage = new MessageService() + const wewMessage = new MessageService(this.storage) wewMessage.setData(mmessage) this.massages.push(wewMessage) console.log('loadHistory 222', this.massages) }); - }) + }) */ } @@ -171,42 +171,57 @@ export class RoomService { if (this.hasLoadHistory) { return false } - /* this.WsChatService.loadHistory(this.id, limit).then((chatHistory:chatHistory) => { - console.log('loadHistory', chatHistory) - - chatHistory.result.messages.reverse().forEach(message => { - + this.storage.get('chatmsg' + this.id).then((messages = [])=>{ + messages.forEach(message => { message = this.fix_updatedAt(message) - const wewMessage = new MessageService() + const wewMessage = new MessageService(this.storage) wewMessage.setData(message) this.massages.push(wewMessage) }); + }) + this.WsChatService.loadHistory(this.id, limit).then((chatHistory:chatHistory) => { + console.log('loadHistory', chatHistory) + - }) */ + let localMessages = [] + chatHistory.result.messages.reverse().forEach(message => { - this.WsChatService.loadHistory(this.id, limit).then(async (chatHistory: chatHistory) => { + message = this.fix_updatedAt(message) + const wewMessage = new MessageService(this.storage) + wewMessage.setData(message) + localMessages.push(wewMessage) + }); - const mgsArray = chatHistory.result.messages.reverse(); - if (this.platform.is('desktop') || this.platform.is('mobileweb')) { - await this.storage.remove('chatmsg' + this.id).then(() => { - console.log('MSG REMOVE ON STORAGE') - }) - await this.storage.set('chatmsg' + this.id, mgsArray).then((value) => { - console.log('MSG SAVED ON STORAGE', value) - this.getMsgFromDB() - }); - } else { - mgsArray.forEach((element) => { - console.log('SQLITE WEBSOCKET', element) - this.sqlservice.addChatMSG(element) - }) - this.getMsgFromDBMobile() - } + this.massages = localMessages + + this.storage.set('chatmsg' + this.id, chatHistory.result.messages.reverse()) }) + /* this.WsChatService.loadHistory(this.id, limit).then(async (chatHistory: chatHistory) => { + + const mgsArray = chatHistory.result.messages.reverse(); + if (this.platform.is('desktop') || this.platform.is('mobileweb')) { + await this.storage.remove('chatmsg' + this.id).then(() => { + console.log('MSG REMOVE ON STORAGE') + }) + await this.storage.set('chatmsg' + this.id, mgsArray).then((value) => { + console.log('MSG SAVED ON STORAGE', value) + this.getMsgFromDB() + }); + } else { + mgsArray.forEach((element) => { + console.log('SQLITE WEBSOCKET', element) + this.sqlservice.addChatMSG(element) + }) + this.getMsgFromDBMobile() + } + + + }) */ + setTimeout(() => { this.scrollDown() }, 50) diff --git a/src/app/services/chat/ws-chat-methods.service.ts b/src/app/services/chat/ws-chat-methods.service.ts index 1db0198c6..76f0d6ccf 100644 --- a/src/app/services/chat/ws-chat-methods.service.ts +++ b/src/app/services/chat/ws-chat-methods.service.ts @@ -92,7 +92,7 @@ export class WsChatMethodsService { prepareRoom(roomData){ let room:RoomService; - room = new RoomService(this.WsChatService, new MessageService(), this.storage, this.platform, this.sqlservice) + room = new RoomService(this.WsChatService, new MessageService(this.storage), this.storage, this.platform, this.sqlservice) room.setData({ customFields: roomData.customFields, id: this.getRoomId(roomData), diff --git a/src/app/shared/chat/messages/messages.page.ts b/src/app/shared/chat/messages/messages.page.ts index 8759a86ac..ef58ed942 100644 --- a/src/app/shared/chat/messages/messages.page.ts +++ b/src/app/shared/chat/messages/messages.page.ts @@ -101,7 +101,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy } ngOnChanges(changes: SimpleChanges): void { this.wsChatMethodsService.getDmRoom(this.roomId).loadHistory() - this.wsChatMethodsService.getDmRoom(this.roomId).getMsgFromDB() + //this.wsChatMethodsService.getDmRoom(this.roomId).getMsgFromDB() this.wsChatMethodsService.getDmRoom(this.roomId).scrollDown = this.scrollToBottomClicked /* console.log('DATATATA', this.wsChatMethodsService.getDmRoom(this.roomId).massages) this.wsChatMethodsService.getDmRoom(this.roomId).massages.forEach((element) => {