mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-12 10:15:50 +00:00
117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
export const replaceMessagesEdited = async ({
|
|
decodedMessages,
|
|
parentEpml,
|
|
isReceipient,
|
|
decodeMessageFunc,
|
|
_publicKey
|
|
}) => {
|
|
const findNewMessages = decodedMessages.map(async (msg) => {
|
|
let msgItem = msg
|
|
try {
|
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
|
if (!isReceipient) {
|
|
msgQuery = `&txGroupId=${msg.txGroupId}`
|
|
}
|
|
const response = await parentEpml.request("apiCall", {
|
|
type: "api",
|
|
url: `/chat/messages?chatreference=${msg.signature}&reverse=true${msgQuery}`,
|
|
})
|
|
|
|
if (response && Array.isArray(response) && response.length !== 0) {
|
|
let responseItem = { ...response[0] }
|
|
const decodeResponseItem = decodeMessageFunc(responseItem, isReceipient, _publicKey)
|
|
delete decodeResponseItem.timestamp
|
|
|
|
msgItem = {
|
|
...msg,
|
|
...decodeResponseItem,
|
|
senderName: msg.senderName,
|
|
sender: msg.sender,
|
|
editedTimestamp: response[0].timestamp,
|
|
}
|
|
}
|
|
} catch (error) {
|
|
}
|
|
|
|
return msgItem
|
|
})
|
|
const updateMessages = await Promise.all(findNewMessages)
|
|
const findNewMessages2 = updateMessages.map(async (msg) => {
|
|
let parsedMessageObj = msg
|
|
try {
|
|
parsedMessageObj = JSON.parse(msg.decodedMessage)
|
|
} catch (error) {
|
|
return msg
|
|
}
|
|
let msgItem = msg
|
|
try {
|
|
let msgQuery = `&involving=${msg.recipient}&involving=${msg.sender}`
|
|
if (!isReceipient) {
|
|
msgQuery = `&txGroupId=${msg.txGroupId}`
|
|
}
|
|
if (parsedMessageObj.repliedTo) {
|
|
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 (
|
|
originalReplyMessage &&
|
|
response &&
|
|
Array.isArray(response) &&
|
|
response.length !== 0
|
|
) {
|
|
const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey)
|
|
|
|
const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey)
|
|
const formattedRepliedToData = {
|
|
...decodeUpdatedReply,
|
|
senderName: decodeOriginalReply.senderName,
|
|
sender: decodeOriginalReply.sender,
|
|
}
|
|
msgItem = {
|
|
...msg,
|
|
repliedToData: formattedRepliedToData,
|
|
}
|
|
} else {
|
|
|
|
|
|
if (
|
|
originalReplyMessage
|
|
) {
|
|
|
|
msgItem = {
|
|
...msg,
|
|
repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (error) {
|
|
}
|
|
|
|
return msgItem
|
|
})
|
|
const updateMessages2 = await Promise.all(findNewMessages2)
|
|
|
|
return updateMessages2
|
|
}
|