Do not process edit events as they are already considered

This commit is contained in:
Jaiwanth 2021-05-22 11:55:57 +05:30
parent 0bf65da70f
commit a47117e3b0

View file

@ -324,6 +324,10 @@ const getBaseEventId = (event: MatrixEvent) => {
return (relatesTo && relatesTo["m.in_reply_to"]) ? relatesTo["m.in_reply_to"]["event_id"] : null; return (relatesTo && relatesTo["m.in_reply_to"]) ? relatesTo["m.in_reply_to"]["event_id"] : null;
}; };
const isEdit = (event: MatrixEvent) => {
if (event.getType() === "m.room.message" && event.getContent().hasOwnProperty("m.new_content")) return true;
return false;
}
const dateSeparator = (event: MatrixEvent, prevEvent: MatrixEvent) => { const dateSeparator = (event: MatrixEvent, prevEvent: MatrixEvent) => {
const prevDate = prevEvent ? new Date(prevEvent.getTs()) : null; const prevDate = prevEvent ? new Date(prevEvent.getTs()) : null;
@ -387,7 +391,8 @@ const createMessageBody = async (event: MatrixEvent, joined = false, isReply = f
<div class="pull_right date details" title="${new Date(event.getTs())}"> <div class="pull_right date details" title="${new Date(event.getTs())}">
${new Date(event.getTs()).toLocaleTimeString().slice(0, -3)} ${new Date(event.getTs()).toLocaleTimeString().slice(0, -3)}
</div> </div>
${!joined ? `<div class="from_name" style="color:${getUserColor(event.sender.name)}"> ${!joined ? `
<div class="from_name" style="color:${getUserColor(event.sender.name)}">
${event.sender.name} ${event.sender.name}
</div>`: ``} </div>`: ``}
${isReply ? ${isReply ?
@ -405,6 +410,8 @@ const createHTML = async (events: MatrixEvent[], room: Room) => {
let content = ""; let content = "";
let prevEvent = null; let prevEvent = null;
for (const event of events) { for (const event of events) {
// As the getContent of the edited event fetches the latest edit, there is no need to process edit events
if (isEdit(event)) continue;
content += dateSeparator(event, prevEvent); content += dateSeparator(event, prevEvent);
if (event.getType() === "m.room.message") { if (event.getType() === "m.room.message") {
@ -430,7 +437,7 @@ const createHTML = async (events: MatrixEvent[], room: Room) => {
}; };
const avatars = new Map(); const avatars = new Map();
let zip; let zip: any;
const exportAsHTML = async (res: MatrixEvent[], room: Room) => { const exportAsHTML = async (res: MatrixEvent[], room: Room) => {
zip = new JSZip(); zip = new JSZip();