Browse Source

Merge pull request #141 from PhillipLangMartinez/bugfix/not-initial-bug-reactions-get-original-first

for non-initial message, get original message if there is a chatrefer…
qortal-ui-dev
AlphaX-Projects 2 years ago committed by GitHub
parent
commit
d00dc95ba5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 50
      qortal-ui-plugins/plugins/utils/replace-messages-edited.js

50
qortal-ui-plugins/plugins/utils/replace-messages-edited.js

@ -6,20 +6,28 @@ 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 {
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}` if(msg.chatReference){
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=${msg.txGroupId}` msgQuery = `&txGroupId=${originalMsg.txGroupId}`
} }
const response = await parentEpml.request("apiCall", { const response = await parentEpml.request("apiCall", {
type: "api", type: "api",
url: `/chat/messages?chatreference=${msg.signature}&reverse=true${msgQuery}`, url: `/chat/messages?chatreference=${originalMsg.signature}&reverse=true${msgQuery}`,
}) })
let decodedMsgs = [] let decodedMsgs = []
response.map((eachMessage) => { response.map((eachMessage) => {
const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey) const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey)
let parsedMessageObj = msg let parsedMessageObj = originalMsg
try { try {
parsedMessageObj = JSON.parse(msgRes.decodedMessage) parsedMessageObj = JSON.parse(msgRes.decodedMessage)
decodedMsgs.push({ decodedMsgs.push({
@ -40,19 +48,19 @@ export const replaceMessagesEdited = async ({
const filterWithoutReactions = decodedMsgs.filter((message)=> { const filterWithoutReactions = decodedMsgs.filter((message)=> {
return message.sender === msg.sender return message.sender === originalMsg.sender
}) })
if (filterReactions && Array.isArray(filterReactions) && filterReactions.length !== 0) { if (filterReactions && Array.isArray(filterReactions) && filterReactions.length !== 0) {
let responseItem = { ...filterReactions[0] } let responseItem = { ...filterReactions[0] }
let parsedMessageMsg = {} let parsedMessageMsg = {}
try { try {
parsedMessageMsg = JSON.parse(msg.decodedMessage) parsedMessageMsg = JSON.parse(originalMsg.decodedMessage)
} catch (error) { } catch (error) {
} }
let originalPosterMsg = { let originalPosterMsg = {
...msg, ...originalMsg,
decodedMessage: parsedMessageMsg decodedMessage: parsedMessageMsg
} }
if(filterWithoutReactions.length > 0){ if(filterWithoutReactions.length > 0){
@ -70,8 +78,8 @@ export const replaceMessagesEdited = async ({
msgItem = { msgItem = {
...originalPosterMsg, ...originalPosterMsg,
senderName: msg.senderName, senderName: originalMsg.senderName,
sender: msg.sender, sender: originalMsg.sender,
editedTimestamp: response[0].timestamp, editedTimestamp: response[0].timestamp,
} }
} }
@ -83,7 +91,7 @@ export const replaceMessagesEdited = async ({
msgItem = { msgItem = {
...responseItem, ...responseItem,
decodedMessage: originalPosterMsg, decodedMessage: originalPosterMsg,
timestamp: msg.timestamp, timestamp: originalMsg.timestamp,
editedTimestamp: responseItem.timestamp, editedTimestamp: responseItem.timestamp,
} }
} }
@ -92,18 +100,18 @@ export const replaceMessagesEdited = async ({
return msgItem return msgItem
}) })
const updateMessages = await Promise.all(findNewMessages) const updateMessages = await Promise.all(findNewMessages)
const findNewMessages2 = updateMessages.map(async (msg) => { const findNewMessages2 = updateMessages.map(async (originalMsg) => {
let parsedMessageObj = msg let parsedMessageObj = originalMsg
try { try {
parsedMessageObj = JSON.parse(msg.decodedMessage) parsedMessageObj = JSON.parse(originalMsg.decodedMessage)
} catch (error) { } catch (error) {
return msg return originalMsg
} }
let msgItem = msg let msgItem = originalMsg
try { try {
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}` let msgQuery = `&involving=${originalMsg.recipient}&involving=${originalMsg.sender}`
if (!isReceipient) { if (!isReceipient) {
msgQuery = `&txGroupId=${msg.txGroupId}` msgQuery = `&txGroupId=${originalMsg.txGroupId}`
} }
if (parsedMessageObj.repliedTo) { if (parsedMessageObj.repliedTo) {
let originalReply let originalReply
@ -129,7 +137,7 @@ export const replaceMessagesEdited = async ({
let decodedMsgs = [] let decodedMsgs = []
response.map((eachMessage) => { response.map((eachMessage) => {
const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey) const msgRes = decodeMessageFunc(eachMessage, isReceipient, _publicKey)
let parsedMessageObj = msg let parsedMessageObj = originalMsg
try { try {
parsedMessageObj = JSON.parse(msgRes.decodedMessage) parsedMessageObj = JSON.parse(msgRes.decodedMessage)
decodedMsgs.push({ decodedMsgs.push({
@ -143,7 +151,7 @@ export const replaceMessagesEdited = async ({
}) })
const filterWithoutReactions = decodedMsgs.filter((message)=> { const filterWithoutReactions = decodedMsgs.filter((message)=> {
return message.sender === msg.sender return message.sender === originalMsg.sender
}) })
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null
@ -162,7 +170,7 @@ export const replaceMessagesEdited = async ({
sender: decodeOriginalReply.sender, sender: decodeOriginalReply.sender,
} }
msgItem = { msgItem = {
...msg, ...originalMsg,
repliedToData: formattedRepliedToData, repliedToData: formattedRepliedToData,
} }
} else { } else {
@ -173,7 +181,7 @@ export const replaceMessagesEdited = async ({
) { ) {
msgItem = { msgItem = {
...msg, ...originalMsg,
repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey), repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
} }
} }

Loading…
Cancel
Save