This commit is contained in:
Peter Maquiran
2022-02-10 15:03:21 +01:00
+21 -19
View File
@@ -101,9 +101,9 @@ export class RoomService {
const message = this.prepareMessage(ChatMessage) const message = this.prepareMessage(ChatMessage)
this.lastMessage = message this.lastMessage = message
this.calDateDuration(ChatMessage._updatedAt) this.calDateDuration(ChatMessage._updatedAt)
if (message.t == 'r') { if (message.t == 'r') {
this.name = message.msg this.name = message.msg
} }
if(this.isSenderIsNotMe(ChatMessage)) { if(this.isSenderIsNotMe(ChatMessage)) {
@@ -136,29 +136,29 @@ export class RoomService {
async addMessageDB(ChatMessage) { async addMessageDB(ChatMessage) {
if (environment.chatOffline) { if (environment.chatOffline) {
this.storage.get('chatmsg' + this.id).then((messages: any = []) => { this.storage.get('chatmsg' + this.id).then((messages: any = []) => {
if(!Array.isArray(messages)) { if(!Array.isArray(messages)) {
messages = [] messages = []
} }
if(!ChatMessage._id && environment.chatOffline) { if(!ChatMessage._id && environment.chatOffline) {
delete ChatMessage.temporaryData delete ChatMessage.temporaryData
messages.push(ChatMessage) messages.push(ChatMessage)
this.storage.set('chatmsg' + this.id, messages) this.storage.set('chatmsg' + this.id, messages)
} else { } else {
const find = messages.find((message)=> { const find = messages.find((message)=> {
return message._id == ChatMessage._id return message._id == ChatMessage._id
}) })
if(!find) { if(!find) {
delete ChatMessage.temporaryData delete ChatMessage.temporaryData
messages.push(ChatMessage) messages.push(ChatMessage)
this.storage.set('chatmsg' + this.id, messages) this.storage.set('chatmsg' + this.id, messages)
} }
} }
}) })
} }
@@ -268,13 +268,15 @@ export class RoomService {
temporaryData, temporaryData,
localReference localReference
} }
const message: MessageService = this.prepareMessage(offlineChatMessage, environment.chatOffline) const message: MessageService = this.prepareMessage(offlineChatMessage, environment.chatOffline)
message.send().then((ChatMessage) => { message.send().then((ChatMessage) => {
this.updateMessageDB(ChatMessage, localReference) this.updateMessageDB(ChatMessage, localReference)
}) })
if (environment.chatOffline) { if (environment.chatOffline) {
this.addMessageDB(offlineChatMessage) this.addMessageDB(offlineChatMessage)
setTimeout(() => { setTimeout(() => {
this.scrollDown() this.scrollDown()
@@ -375,22 +377,22 @@ export class RoomService {
if(!Array.isArray(messages)) { if(!Array.isArray(messages)) {
messages = [] messages = []
} }
await messages.forEach( async (ChatMessage, index) => { await messages.forEach( async (ChatMessage, index) => {
const wewMessage = this.prepareMessage(ChatMessage, false) const wewMessage = this.prepareMessage(ChatMessage, false)
if(wewMessage.offline == false) { if(wewMessage.offline == false) {
this.prepareMessage(ChatMessage) this.prepareMessage(ChatMessage)
} else { } else {
} }
}); });
setTimeout(()=> { setTimeout(()=> {
this.scrollDown() this.scrollDown()
}, 50) }, 50)
}) })
} }
@@ -400,8 +402,8 @@ export class RoomService {
async loadHistory({limit = 50, forceUpdate = false }) { async loadHistory({limit = 50, forceUpdate = false }) {
if(forceUpdate == false) { if(forceUpdate == false) {
if (this.hasLoadHistory) { if (this.hasLoadHistory) {
return false return false
} }
} }
await this.restoreMessageFromDB() await this.restoreMessageFromDB()
@@ -434,7 +436,7 @@ export class RoomService {
const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService) const wewMessage = new MessageService(this.storage, this.NfService, this.WsChatService)
wewMessage.setData(message) wewMessage.setData(message)
wewMessage.loadHistory = this.hasLoadHistory wewMessage.loadHistory = this.hasLoadHistory
if(!message._id && environment.chatOffline) { if(!message._id && environment.chatOffline) {
this.messages.push(wewMessage) this.messages.push(wewMessage)
return wewMessage return wewMessage