diff --git a/plugins/plugins/core/components/ChatPage.js b/plugins/plugins/core/components/ChatPage.js index 45d9867c..e05c91a9 100644 --- a/plugins/plugins/core/components/ChatPage.js +++ b/plugins/plugins/core/components/ChatPage.js @@ -2347,6 +2347,7 @@ class ChatPage extends LitElement { this.webSocket.close(1000, 'switch chat') this.webSocket = '' } + console.log('this.webSocket', this.webSocket) this.pageNumber = 1 const getAddressPublicKey = () => { @@ -2489,6 +2490,7 @@ class ChatPage extends LitElement { } async updated(changedProperties) { + console.log({changedProperties}) if (changedProperties && changedProperties.has('userLanguage')) { const userLang = changedProperties.get('userLanguage') if (userLang) { @@ -2505,7 +2507,7 @@ class ChatPage extends LitElement { this.editor.setEditable(true) } } - if(changedProperties && changedProperties.has('chatId')){ + if(changedProperties && changedProperties.has('chatId') && this.webSocket){ this.isLoadingMessages = true this.initUpdate() @@ -3146,7 +3148,7 @@ class ChatPage extends LitElement { setTimeout(() => this.downElementObserver(), 500) } else { - + console.log('decodedmsg', decodedMessages) queue.push(() => replaceMessagesEdited({ decodedMessages: decodedMessages, @@ -3212,6 +3214,7 @@ class ChatPage extends LitElement { */ async renderNewMessage(newMessage) { + console.log('newMessage', newMessage) if (newMessage.chatReference) { // const findOriginalMessageIndex = this.messagesRendered.findIndex(msg => msg.signature === newMessage.chatReference || (msg.chatReference && msg.chatReference === newMessage.chatReference)) // if (findOriginalMessageIndex !== -1 && this.messagesRendered[findOriginalMessageIndex].sender === newMessage.sender) { @@ -3230,7 +3233,12 @@ class ChatPage extends LitElement { return } - const viewElement = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById('viewElement') + let viewElement = this.shadowRoot.querySelector('chat-scroller') + if(viewElement){ + viewElement = viewElement.shadowRoot.getElementById('viewElement') + } else { + viewElement = null + } if (newMessage.sender === this.selectedAddress.address) { @@ -3251,8 +3259,10 @@ class ChatPage extends LitElement { // Append the message and scroll to the bottom if user is down the page // this.messagesRendered = [...this.messagesRendered, newMessage] await this.getUpdateComplete() - - viewElement.scrollTop = viewElement.scrollHeight + if(viewElement){ + viewElement.scrollTop = viewElement.scrollHeight + } + } else { this.messagesRendered = { @@ -3320,7 +3330,9 @@ class ChatPage extends LitElement { } else { // Fallback to http directSocketLink = `ws://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&encoding=BASE64&limit=1` - } + } + + this.webSocket = new WebSocket(directSocketLink) // Open Connection @@ -3389,7 +3401,9 @@ class ChatPage extends LitElement { // Closed Event this.webSocket.onclose = (e) => { clearTimeout(directSocketTimeout) + console.log('e', e) if (e.reason === 'switch chat') return + console.log('not coming in') restartDirectWebSocket() } @@ -3437,7 +3451,7 @@ class ChatPage extends LitElement { // Fallback to http groupSocketLink = `ws://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}&encoding=BASE64&limit=1` } - + this.webSocket = new WebSocket(groupSocketLink) // Open Connection diff --git a/plugins/plugins/core/components/ChatScroller.js b/plugins/plugins/core/components/ChatScroller.js index 169e5137..bd224124 100644 --- a/plugins/plugins/core/components/ChatScroller.js +++ b/plugins/plugins/core/components/ChatScroller.js @@ -559,6 +559,7 @@ class ChatScroller extends LitElement { async replaceMessagesWithUpdateByArray(updatedMessagesArray) { + console.log({updatedMessagesArray, messages: this.messagesToRender}) let previousScrollTop; let previousScrollHeight; @@ -567,7 +568,7 @@ class ChatScroller extends LitElement { previousScrollHeight = viewElement.scrollHeight; for (let group of this.messagesToRender) { for (let i = 0; i < group.messages.length; i++) { - const update = updatedMessagesArray.find(updatedMessage => ((updatedMessage.chatReference === group.messages[i].signature) || (updatedMessage.chatReference === group.messages[i].originalSignature))); + const update = updatedMessagesArray.find(updatedMessage => ((updatedMessage.chatReference === group.messages[i].signature) || (updatedMessage.chatReference === group.messages[i].originalSignature) || (updatedMessage.chatReference === group.messages[i].chatReference))); if (update) { Object.assign(group.messages[i], update); }