Fix message edit isn't reflected in reply #421
authorAjay Bura <ajbura@gmail.com>
Thu, 12 May 2022 08:15:23 +0000 (13:45 +0530)
committerAjay Bura <ajbura@gmail.com>
Thu, 12 May 2022 08:15:23 +0000 (13:45 +0530)
src/app/molecules/message/Message.jsx

index be4dea55926763939e8f9b47f22d854456bce6a3..6950cb48abf639760b7c65d98e8b70f8a6ef8052 100644 (file)
@@ -123,17 +123,26 @@ const MessageReplyWrapper = React.memo(({ roomTimeline, eventId }) => {
         const eTimeline = await mx.getEventTimeline(timelineSet, eventId);
         await roomTimeline.decryptAllEventsOfTimeline(eTimeline);
 
-        const mEvent = eTimeline.getTimelineSet().findEventById(eventId);
+        let mEvent = eTimeline.getTimelineSet().findEventById(eventId);
+        const editedList = roomTimeline.editedTimeline.get(mEvent.getId());
+        if (editedList) {
+          mEvent = editedList[editedList.length - 1];
+        }
 
         const rawBody = mEvent.getContent().body;
         const username = getUsernameOfRoomMember(mEvent.sender);
 
         if (isMountedRef.current === false) return;
         const fallbackBody = mEvent.isRedacted() ? '*** This message has been deleted ***' : '*** Unable to load reply ***';
+        let parsedBody = parseReply(rawBody)?.body ?? rawBody ?? fallbackBody;
+        if (editedList && parsedBody.startsWith(' * ')) {
+          parsedBody = parsedBody.slice(3);
+        }
+
         setReply({
           to: username,
           color: colorMXID(mEvent.getSender()),
-          body: parseReply(rawBody)?.body ?? rawBody ?? fallbackBody,
+          body: parsedBody,
           event: mEvent,
         });
       } catch {