Browse Source

Merge pull request #128 from PhillipLangMartinez/bugfix/change-reference-for-signature-chatReference

Bugfix/change reference for signature chat reference
q-apps
AlphaX-Projects 2 years ago committed by GitHub
parent
commit
fc1666e96e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      qortal-ui-core/package.json
  2. 32
      qortal-ui-plugins/plugins/core/components/ChatPage.js
  3. 14
      qortal-ui-plugins/plugins/core/components/ChatScroller.js
  4. 8
      qortal-ui-plugins/plugins/core/components/ChatTextEditor.js
  5. 2
      qortal-ui-plugins/plugins/core/messaging/q-chat/q-chat.src.js
  6. 36
      qortal-ui-plugins/plugins/utils/replace-messages-edited.js

2
qortal-ui-core/package.json

@ -83,4 +83,4 @@
"engines": {
"node": ">=18.12.1"
}
}
}

32
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)

14
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`
<message-template
.emojiPicker=${this.emojiPicker}
@ -145,7 +145,7 @@ class ChatScroller extends LitElement {
.setOpenTipUser=${(val) => 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 {
<div
@click=${()=> {
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`

8
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
};
}

2
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);

36
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),
}
}
}

Loading…
Cancel
Save