diff --git a/qortal-ui-core/package.json b/qortal-ui-core/package.json index 3ebc2750..2ee6a3e8 100644 --- a/qortal-ui-core/package.json +++ b/qortal-ui-core/package.json @@ -83,4 +83,4 @@ "engines": { "node": ">=18.12.1" } -} \ No newline at end of file +} diff --git a/qortal-ui-plugins/plugins/core/components/ChatPage.js b/qortal-ui-plugins/plugins/core/components/ChatPage.js index 81f02155..32f5840c 100644 --- a/qortal-ui-plugins/plugins/core/components/ChatPage.js +++ b/qortal-ui-plugins/plugins/core/components/ChatPage.js @@ -1020,7 +1020,7 @@ class ChatPage extends LitElement { ${this.repliedToMessageObj.version.toString() === '1' ? html` ${this.repliedToMessageObj.message} ` : ''} - ${this.repliedToMessageObj.version.toString() === '2' + ${+this.repliedToMessageObj.version > 1 ? html` ${unsafeHTML(generateHTML(this.repliedToMessageObj.message, [ @@ -1643,7 +1643,7 @@ class ChatPage extends LitElement { } async goToRepliedMessage(message, clickedOnMessage){ - const findMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(message.reference) + const findMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(message.signature) if(findMessage){ findMessage.scrollIntoView({ behavior: 'smooth', block: 'center' }) @@ -1667,7 +1667,7 @@ class ChatPage extends LitElement { if((message.timestamp - this.messagesRendered[0].timestamp) < 86400000){ - const findOriginalMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(clickedOnMessage.reference) + const findOriginalMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(clickedOnMessage.signature) if(findOriginalMessage){ const messageClientRect = findOriginalMessage.getBoundingClientRect() this.isLoadingGoToRepliedMessage = { @@ -1679,7 +1679,7 @@ class ChatPage extends LitElement { } } await this.getOldMessageDynamic(0, this.messagesRendered[0].timestamp, message.timestamp - 7200000) - const findMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(message.reference) + const findMessage = this.shadowRoot.querySelector('chat-scroller').shadowRoot.getElementById(message.signature) if(findMessage){ this.isLoadingGoToRepliedMessage = { ...this.isLoadingGoToRepliedMessage, @@ -2156,7 +2156,7 @@ class ChatPage extends LitElement { await this.getUpdateComplete(); const marginElements = Array.from(this.shadowRoot.querySelector('chat-scroller').shadowRoot.querySelectorAll('message-template')); - const findElement = marginElements.find((item)=> item.messageObj.reference === scrollElement.messageObj.reference) + const findElement = marginElements.find((item)=> item.messageObj.signature === scrollElement.messageObj.signature) if(findElement){ findElement.scrollIntoView({ behavior: 'auto', block: 'center' }); @@ -2189,7 +2189,7 @@ class ChatPage extends LitElement { this.isLoadingOldMessages = false await this.getUpdateComplete(); const marginElements = Array.from(this.shadowRoot.querySelector('chat-scroller').shadowRoot.querySelectorAll('message-template')); - const findElement = marginElements.find((item)=> item.messageObj.reference === scrollElement.messageObj.reference) + const findElement = marginElements.find((item)=> item.messageObj.signature === scrollElement.messageObj.signature) if(findElement){ findElement.scrollIntoView({ behavior: 'auto', block: 'center' }); @@ -2227,7 +2227,7 @@ class ChatPage extends LitElement { await this.getUpdateComplete(); const marginElements = Array.from(this.shadowRoot.querySelector('chat-scroller').shadowRoot.querySelectorAll('message-template')); - const findElement = marginElements.find((item)=> item.messageObj.reference === scrollElement.messageObj.reference) + const findElement = marginElements.find((item)=> item.messageObj.signature === scrollElement.messageObj.signature) if(findElement){ findElement.scrollIntoView({ behavior: 'auto', block: 'center' }); @@ -2260,7 +2260,7 @@ class ChatPage extends LitElement { this.isLoadingOldMessages = false await this.getUpdateComplete(); const marginElements = Array.from(this.shadowRoot.querySelector('chat-scroller').shadowRoot.querySelectorAll('message-template')); - const findElement = marginElements.find((item)=> item.messageObj.reference === scrollElement.messageObj.reference) + const findElement = marginElements.find((item)=> item.messageObj.signature === scrollElement.messageObj.signature) if(findElement){ findElement.scrollIntoView({ behavior: 'auto', block: 'center' }); @@ -2372,7 +2372,7 @@ class ChatPage extends LitElement { async renderNewMessage(newMessage) { if(newMessage.chatReference){ - const findOriginalMessageIndex = this.messagesRendered.findIndex(msg=> msg.reference === newMessage.chatReference || (msg.chatReference && msg.chatReference === newMessage.chatReference) ) + const findOriginalMessageIndex = this.messagesRendered.findIndex(msg=> msg.signature === newMessage.chatReference || (msg.chatReference && msg.chatReference === newMessage.chatReference) ) if(findOriginalMessageIndex !== -1){ const newMessagesRendered = [...this.messagesRendered] newMessagesRendered[findOriginalMessageIndex] = {...newMessage, timestamp: newMessagesRendered[findOriginalMessageIndex].timestamp, senderName: newMessagesRendered[findOriginalMessageIndex].senderName, @@ -2784,7 +2784,7 @@ class ChatPage extends LitElement { return } typeMessage = 'edit'; - let chatReference = outSideMsg.editedMessageObj.reference; + let chatReference = outSideMsg.editedMessageObj.signature; if(outSideMsg.editedMessageObj.chatReference){ chatReference = outSideMsg.editedMessageObj.chatReference; @@ -2874,7 +2874,7 @@ class ChatPage extends LitElement { return } typeMessage = 'edit'; - let chatReference = outSideMsg.editedMessageObj.reference; + let chatReference = outSideMsg.editedMessageObj.signature; if(outSideMsg.editedMessageObj.chatReference){ chatReference = outSideMsg.editedMessageObj.chatReference; @@ -3036,7 +3036,7 @@ class ChatPage extends LitElement { } else if (outSideMsg && outSideMsg.type === 'reaction') { const userName = await getName(this.selectedAddress.address); typeMessage = 'edit'; - let chatReference = outSideMsg.editedMessageObj.reference; + let chatReference = outSideMsg.editedMessageObj.signature; if (outSideMsg.editedMessageObj.chatReference) { chatReference = outSideMsg.editedMessageObj.chatReference; @@ -3094,7 +3094,7 @@ class ChatPage extends LitElement { } else if (this.repliedToMessageObj) { - let chatReference = this.repliedToMessageObj.reference; + let chatReference = this.repliedToMessageObj.signature; if(this.repliedToMessageObj.chatReference){ chatReference = this.repliedToMessageObj.chatReference; } @@ -3103,13 +3103,13 @@ class ChatPage extends LitElement { messageText: trimmedMessage, images: [''], repliedTo: chatReference, - version: 2 + version: 3 } const stringifyMessageObject = JSON.stringify(messageObject); this.sendMessage(stringifyMessageObject, typeMessage); } else if (this.editedMessageObj) { typeMessage = 'edit' - let chatReference = this.editedMessageObj.reference + let chatReference = this.editedMessageObj.signature if(this.editedMessageObj.chatReference){ chatReference = this.editedMessageObj.chatReference @@ -3135,7 +3135,7 @@ class ChatPage extends LitElement { messageText: trimmedMessage, images: [''], repliedTo: '', - version: 2 + version: 3 } const stringifyMessageObject = JSON.stringify(messageObject) diff --git a/qortal-ui-plugins/plugins/core/components/ChatScroller.js b/qortal-ui-plugins/plugins/core/components/ChatScroller.js index fe429bfd..7ed44c52 100644 --- a/qortal-ui-plugins/plugins/core/components/ChatScroller.js +++ b/qortal-ui-plugins/plugins/core/components/ChatScroller.js @@ -125,7 +125,7 @@ class ChatScroller extends LitElement { ${formattedMessages.map((formattedMessage) => { return repeat( formattedMessage.messages, - (message) => message.reference, + (message) => message.signature, (message, indexMessage) => html` this.setOpenTipUser(val)} .setOpenUserInfo=${(val) => this.setOpenUserInfo(val)} .setUserName=${(val) => this.setUserName(val)} - id=${message.reference} + id=${message.signature} .goToRepliedMessage=${this.goToRepliedMessage} .addSeenMessage=${(val)=> this.addSeenMessage(val)} .listSeenMessages=${this.listSeenMessages} @@ -365,7 +365,7 @@ class MessageTemplate extends LitElement { } firstUpdated(){ const autoSeeChatList = window.parent.reduxStore.getState().app?.autoLoadImageChats - if(autoSeeChatList.includes(this.chatId) || this.listSeenMessages.includes(this.messageObj.reference)){ + if(autoSeeChatList.includes(this.chatId) || this.listSeenMessages.includes(this.messageObj.signature)){ this.viewImage = true } @@ -392,7 +392,7 @@ class MessageTemplate extends LitElement { let attachment = null; try { const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage); - if(parsedMessageObj.version.toString() === '2'){ + if(+parsedMessageObj.version > 1){ messageVersion2 = generateHTML(parsedMessageObj.messageText, [ StarterKit, @@ -598,7 +598,7 @@ class MessageTemplate extends LitElement { ${version.toString() === '1' ? html` ${repliedToData.decodedMessage.messageText} ` : ''} - ${version.toString() === '2' ? html` + ${+version > 1 ? html` ${unsafeHTML(generateHTML(repliedToData.decodedMessage.messageText, [ StarterKit, Underline, @@ -614,7 +614,7 @@ class MessageTemplate extends LitElement {
{ this.viewImage = true - this.addSeenMessage(this.messageObj.reference) + this.addSeenMessage(this.messageObj.signature) }} class=${[`image-container`, !this.isImageLoaded ? 'defaultSize' : ''].join(' ')} style=${this.isFirstMessage && "margin-top: 10px;"}> @@ -695,7 +695,7 @@ class MessageTemplate extends LitElement { id="messageContent" class="message" style=${(image && replacedMessage !== "") &&"margin-top: 15px;"}> - ${version.toString() === '2' ? html` + ${+version > 1 ? html` ${unsafeHTML(messageVersion2)} ` : ''} ${version.toString() === '1' ? html` diff --git a/qortal-ui-plugins/plugins/core/components/ChatTextEditor.js b/qortal-ui-plugins/plugins/core/components/ChatTextEditor.js index 0ca49c54..cb09cf94 100644 --- a/qortal-ui-plugins/plugins/core/components/ChatTextEditor.js +++ b/qortal-ui-plugins/plugins/core/components/ChatTextEditor.js @@ -664,7 +664,7 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b let messageObject = {}; if (this.repliedToMessageObj) { - let chatReference = this.repliedToMessageObj.reference; + let chatReference = this.repliedToMessageObj.signature; if (this.repliedToMessageObj.chatReference) { chatReference = this.repliedToMessageObj.chatReference; } @@ -672,7 +672,7 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b messageText: trimmedMessage, images: [''], repliedTo: chatReference, - version: 2 + version: 3 } } else if (this.editedMessageObj) { let message = ""; @@ -695,7 +695,7 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b identifier: '123456' }], repliedTo: '', - version: 2 + version: 3 }; } else if (this.attachment && this.iframeId === 'newAttachmentChat') { messageObject = { @@ -715,7 +715,7 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b messageText: trimmedMessage, images: [''], repliedTo: '', - version: 2 + version: 3 }; } diff --git a/qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat.src.js b/qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat.src.js index 3ed87067..7cc835a7 100644 --- a/qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat.src.js +++ b/qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat.src.js @@ -562,7 +562,7 @@ class Chat extends LitElement { messageText: trimmedMessage, images: [''], repliedTo: '', - version: 2 + version: 3 } const stringifyMessageObject = JSON.stringify(messageObject) this.sendMessage(stringifyMessageObject); diff --git a/qortal-ui-plugins/plugins/utils/replace-messages-edited.js b/qortal-ui-plugins/plugins/utils/replace-messages-edited.js index b55e8848..82045e6b 100644 --- a/qortal-ui-plugins/plugins/utils/replace-messages-edited.js +++ b/qortal-ui-plugins/plugins/utils/replace-messages-edited.js @@ -14,7 +14,7 @@ export const replaceMessagesEdited = async ({ } const response = await parentEpml.request("apiCall", { type: "api", - url: `/chat/messages?chatreference=${msg.reference}&reverse=true${msgQuery}`, + url: `/chat/messages?chatreference=${msg.signature}&reverse=true${msgQuery}`, }) if (response && Array.isArray(response) && response.length !== 0) { @@ -50,24 +50,36 @@ export const replaceMessagesEdited = async ({ msgQuery = `&txGroupId=${msg.txGroupId}` } if (parsedMessageObj.repliedTo) { - const originalReply = await parentEpml.request("apiCall", { - type: "api", - url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, - }) + console.log({parsedMessageObj}) + let originalReply + if(+parsedMessageObj.version > 2){ + originalReply = await parentEpml.request("apiCall", { + type: "api", + url: `/chat/message/${parsedMessageObj.repliedTo}`, + }) + } + if(+parsedMessageObj.version < 3){ + originalReply = await parentEpml.request("apiCall", { + type: "api", + url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, + }) + } + + const response = await parentEpml.request("apiCall", { type: "api", url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, }) + + const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null if ( - originalReply && - Array.isArray(originalReply) && - originalReply.length !== 0 && + originalReplyMessage && response && Array.isArray(response) && response.length !== 0 ) { - const decodeOriginalReply = decodeMessageFunc(originalReply[0], isReceipient, _publicKey) + const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey) const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey) const formattedRepliedToData = { @@ -83,14 +95,12 @@ export const replaceMessagesEdited = async ({ if ( - originalReply && - Array.isArray(originalReply) && - originalReply.length !== 0 + originalReplyMessage ) { msgItem = { ...msg, - repliedToData: decodeMessageFunc(originalReply[0], isReceipient, _publicKey), + repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey), } } }