mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-03-27 07:45:54 +00:00
Merge pull request #142 from PhillipLangMartinez/bugfix/remove-reactions
Bugfix/remove reactions
This commit is contained in:
commit
6f7d0d3950
@ -2766,7 +2766,8 @@ class ChatPage extends LitElement {
|
|||||||
parentEpml,
|
parentEpml,
|
||||||
isReceipient: isReceipient,
|
isReceipient: isReceipient,
|
||||||
decodeMessageFunc: this.decodeMessage,
|
decodeMessageFunc: this.decodeMessage,
|
||||||
_publicKey: this._publicKey
|
_publicKey: this._publicKey,
|
||||||
|
isNotInitial: true
|
||||||
})
|
})
|
||||||
|
|
||||||
const renderEachMessage = replacedMessages.map(async(msg)=> {
|
const renderEachMessage = replacedMessages.map(async(msg)=> {
|
||||||
@ -2829,7 +2830,7 @@ class ChatPage extends LitElement {
|
|||||||
async renderNewMessage(newMessage) {
|
async renderNewMessage(newMessage) {
|
||||||
if(newMessage.chatReference){
|
if(newMessage.chatReference){
|
||||||
const findOriginalMessageIndex = this.messagesRendered.findIndex(msg=> msg.signature === 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){
|
if(findOriginalMessageIndex !== -1 && this.messagesRendered[findOriginalMessageIndex].sender === newMessage.sender){
|
||||||
const newMessagesRendered = [...this.messagesRendered]
|
const newMessagesRendered = [...this.messagesRendered]
|
||||||
newMessagesRendered[findOriginalMessageIndex] = {...newMessage, timestamp: newMessagesRendered[findOriginalMessageIndex].timestamp, senderName: newMessagesRendered[findOriginalMessageIndex].senderName,
|
newMessagesRendered[findOriginalMessageIndex] = {...newMessage, timestamp: newMessagesRendered[findOriginalMessageIndex].timestamp, senderName: newMessagesRendered[findOriginalMessageIndex].senderName,
|
||||||
sender: newMessagesRendered[findOriginalMessageIndex].sender, editedTimestamp: newMessage.timestamp }
|
sender: newMessagesRendered[findOriginalMessageIndex].sender, editedTimestamp: newMessage.timestamp }
|
||||||
|
@ -410,7 +410,7 @@ class MessageTemplate extends LitElement {
|
|||||||
repliedToData = this.messageObj.repliedToData;
|
repliedToData = this.messageObj.repliedToData;
|
||||||
isImageDeleted = parsedMessageObj.isImageDeleted;
|
isImageDeleted = parsedMessageObj.isImageDeleted;
|
||||||
isAttachmentDeleted = parsedMessageObj.isAttachmentDeleted;
|
isAttachmentDeleted = parsedMessageObj.isAttachmentDeleted;
|
||||||
reactions = parsedMessageObj.reactions || [];
|
// reactions = parsedMessageObj.reactions || [];
|
||||||
version = parsedMessageObj.version;
|
version = parsedMessageObj.version;
|
||||||
isForwarded = parsedMessageObj.type === 'forward';
|
isForwarded = parsedMessageObj.type === 'forward';
|
||||||
isEdited = parsedMessageObj.isEdited && true;
|
isEdited = parsedMessageObj.isEdited && true;
|
||||||
@ -1105,7 +1105,7 @@ class ChatMenu extends LitElement {
|
|||||||
render() {
|
render() {
|
||||||
return html`
|
return html`
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div
|
<!-- <div
|
||||||
class=${`menu-icon reaction ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
class=${`menu-icon reaction ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange13")}"
|
data-text="${translate("blockpage.bcchange13")}"
|
||||||
@click=${(e) => {
|
@click=${(e) => {
|
||||||
@ -1122,7 +1122,7 @@ class ChatMenu extends LitElement {
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<vaadin-icon icon="vaadin:smiley-o" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:smiley-o" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div> -->
|
||||||
<div
|
<div
|
||||||
class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange14")}"
|
data-text="${translate("blockpage.bcchange14")}"
|
||||||
|
@ -6,112 +6,48 @@ export const replaceMessagesEdited = async ({
|
|||||||
_publicKey
|
_publicKey
|
||||||
}) => {
|
}) => {
|
||||||
const findNewMessages = decodedMessages.map(async (msg) => {
|
const findNewMessages = decodedMessages.map(async (msg) => {
|
||||||
let originalMsg = msg
|
|
||||||
let msgItem = msg
|
let msgItem = msg
|
||||||
try {
|
try {
|
||||||
if(msg.chatReference){
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
||||||
originalMsg = await parentEpml.request("apiCall", {
|
|
||||||
type: "api",
|
|
||||||
url: `/chat/message/${msg.chatReference}`,
|
|
||||||
})
|
|
||||||
originalMsg.chatReference = msg.chatReference
|
|
||||||
}
|
|
||||||
let msgQuery = `&involving=${originalMsg.recipient}&involving=${originalMsg.sender}`
|
|
||||||
if (!isReceipient) {
|
if (!isReceipient) {
|
||||||
msgQuery = `&txGroupId=${originalMsg.txGroupId}`
|
msgQuery = `&txGroupId=${msg.txGroupId}`
|
||||||
}
|
}
|
||||||
const response = await parentEpml.request("apiCall", {
|
const response = await parentEpml.request("apiCall", {
|
||||||
type: "api",
|
type: "api",
|
||||||
url: `/chat/messages?chatreference=${originalMsg.signature}&reverse=true${msgQuery}`,
|
url: `/chat/messages?chatreference=${msg.signature}&reverse=true${msgQuery}&limit=1&sender=${msg.sender}`,
|
||||||
})
|
|
||||||
let decodedMsgs = []
|
|
||||||
response.map((eachMessage) => {
|
|
||||||
const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey)
|
|
||||||
let parsedMessageObj = originalMsg
|
|
||||||
try {
|
|
||||||
parsedMessageObj = JSON.parse(msgRes.decodedMessage)
|
|
||||||
decodedMsgs.push({
|
|
||||||
...msgRes,
|
|
||||||
decodedMessage: parsedMessageObj
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
const filterReactions = decodedMsgs.filter((message)=> {
|
|
||||||
if(!message.decodedMessage) return false
|
|
||||||
if(!message.decodedMessage.reactions || !Array.isArray(message.decodedMessage.reactions)) return false
|
|
||||||
return message.decodedMessage.reactions.length > 0
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const filterWithoutReactions = decodedMsgs.filter((message)=> {
|
if (response && Array.isArray(response) && response.length !== 0) {
|
||||||
|
let responseItem = { ...response[0] }
|
||||||
return message.sender === originalMsg.sender
|
const decodeResponseItem = decodeMessageFunc(responseItem, isReceipient, _publicKey)
|
||||||
})
|
delete decodeResponseItem.timestamp
|
||||||
if (filterReactions && Array.isArray(filterReactions) && filterReactions.length !== 0) {
|
|
||||||
let responseItem = { ...filterReactions[0] }
|
|
||||||
let parsedMessageMsg = {}
|
|
||||||
try {
|
|
||||||
parsedMessageMsg = JSON.parse(originalMsg.decodedMessage)
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
|
|
||||||
}
|
|
||||||
let originalPosterMsg = {
|
|
||||||
...originalMsg,
|
|
||||||
decodedMessage: parsedMessageMsg
|
|
||||||
}
|
|
||||||
if(filterWithoutReactions.length > 0){
|
|
||||||
originalPosterMsg = {
|
|
||||||
...filterWithoutReactions[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
originalPosterMsg.decodedMessage = JSON.stringify({
|
|
||||||
...originalPosterMsg.decodedMessage,
|
|
||||||
reactions: responseItem.decodedMessage.reactions
|
|
||||||
})
|
|
||||||
|
|
||||||
msgItem = {
|
msgItem = {
|
||||||
...originalPosterMsg,
|
...msg,
|
||||||
senderName: originalMsg.senderName,
|
...decodeResponseItem,
|
||||||
sender: originalMsg.sender,
|
senderName: msg.senderName,
|
||||||
|
sender: msg.sender,
|
||||||
editedTimestamp: response[0].timestamp,
|
editedTimestamp: response[0].timestamp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((!Array.isArray(filterReactions) || (filterReactions || []).length === 0) && filterWithoutReactions.length > 0) {
|
|
||||||
let responseItem = { ...filterWithoutReactions[0] }
|
|
||||||
const originalPosterMsg = JSON.stringify(responseItem.decodedMessage)
|
|
||||||
msgItem = {
|
|
||||||
...responseItem,
|
|
||||||
decodedMessage: originalPosterMsg,
|
|
||||||
timestamp: originalMsg.timestamp,
|
|
||||||
editedTimestamp: responseItem.timestamp,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return msgItem
|
return msgItem
|
||||||
})
|
})
|
||||||
const updateMessages = await Promise.all(findNewMessages)
|
const updateMessages = await Promise.all(findNewMessages)
|
||||||
const findNewMessages2 = updateMessages.map(async (originalMsg) => {
|
const findNewMessages2 = updateMessages.map(async (msg) => {
|
||||||
let parsedMessageObj = originalMsg
|
let parsedMessageObj = msg
|
||||||
try {
|
try {
|
||||||
parsedMessageObj = JSON.parse(originalMsg.decodedMessage)
|
parsedMessageObj = JSON.parse(msg.decodedMessage)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return originalMsg
|
return msg
|
||||||
}
|
}
|
||||||
let msgItem = originalMsg
|
let msgItem = msg
|
||||||
try {
|
try {
|
||||||
let msgQuery = `&involving=${originalMsg.recipient}&involving=${originalMsg.sender}`
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
||||||
if (!isReceipient) {
|
if (!isReceipient) {
|
||||||
msgQuery = `&txGroupId=${originalMsg.txGroupId}`
|
msgQuery = `&txGroupId=${msg.txGroupId}`
|
||||||
}
|
}
|
||||||
if (parsedMessageObj.repliedTo) {
|
if (parsedMessageObj.repliedTo) {
|
||||||
let originalReply
|
let originalReply
|
||||||
@ -129,48 +65,31 @@ export const replaceMessagesEdited = async ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null
|
||||||
|
|
||||||
const response = await parentEpml.request("apiCall", {
|
const response = await parentEpml.request("apiCall", {
|
||||||
type: "api",
|
type: "api",
|
||||||
url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`,
|
url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}&limit=1&sender=${originalReplyMessage.sender}`,
|
||||||
})
|
})
|
||||||
|
|
||||||
let decodedMsgs = []
|
|
||||||
response.map((eachMessage) => {
|
|
||||||
const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey)
|
|
||||||
let parsedMessageObj = originalMsg
|
|
||||||
try {
|
|
||||||
parsedMessageObj = JSON.parse(msgRes.decodedMessage)
|
|
||||||
decodedMsgs.push({
|
|
||||||
...msgRes,
|
|
||||||
decodedMessage: parsedMessageObj
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
const filterWithoutReactions = decodedMsgs.filter((message)=> {
|
|
||||||
|
|
||||||
return message.sender === originalMsg.sender
|
|
||||||
})
|
|
||||||
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
originalReplyMessage &&
|
originalReplyMessage &&
|
||||||
filterWithoutReactions &&
|
response &&
|
||||||
Array.isArray(filterWithoutReactions) &&
|
Array.isArray(response) &&
|
||||||
filterWithoutReactions.length !== 0
|
response.length !== 0
|
||||||
) {
|
) {
|
||||||
const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey)
|
const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey)
|
||||||
|
|
||||||
const decodeUpdatedReply = decodeMessageFunc(filterWithoutReactions[0], isReceipient, _publicKey)
|
const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey)
|
||||||
const formattedRepliedToData = {
|
const formattedRepliedToData = {
|
||||||
...decodeUpdatedReply,
|
...decodeUpdatedReply,
|
||||||
senderName: decodeOriginalReply.senderName,
|
senderName: decodeOriginalReply.senderName,
|
||||||
sender: decodeOriginalReply.sender,
|
sender: decodeOriginalReply.sender,
|
||||||
}
|
}
|
||||||
msgItem = {
|
msgItem = {
|
||||||
...originalMsg,
|
...msg,
|
||||||
repliedToData: formattedRepliedToData,
|
repliedToData: formattedRepliedToData,
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -181,7 +100,7 @@ export const replaceMessagesEdited = async ({
|
|||||||
) {
|
) {
|
||||||
|
|
||||||
msgItem = {
|
msgItem = {
|
||||||
...originalMsg,
|
...msg,
|
||||||
repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
|
repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user