fix thread fallback (#1478)
authorAjay Bura <32841439+ajbura@users.noreply.github.com>
Mon, 23 Oct 2023 10:43:07 +0000 (21:43 +1100)
committerGitHub <noreply@github.com>
Mon, 23 Oct 2023 10:43:07 +0000 (21:43 +1100)
src/app/hooks/useRoomLatestRenderedEvent.ts
src/app/organisms/room/RoomTimeline.tsx
src/app/utils/room.ts

index 428e7b52a3a5e0b2be6bdd08160f741b85c91722..fd0ed9e5e74695f5a201e9b2cf63a55ee5af6960 100644 (file)
@@ -4,7 +4,7 @@ import { useEffect, useState } from 'react';
 import { settingsAtom } from '../state/settings';
 import { useSetting } from '../state/hooks/settings';
 import { MessageEvent, StateEvent } from '../../types/matrix/room';
-import { isMembershipChanged } from '../utils/room';
+import { isMembershipChanged, reactionOrEditEvent } from '../utils/room';
 
 export const useRoomLatestRenderedEvent = (room: Room) => {
   const [hideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents');
@@ -19,7 +19,7 @@ export const useRoomLatestRenderedEvent = (room: Room) => {
         const evt = liveEvents[i];
 
         if (!evt) continue;
-        if (evt.isRelation()) continue;
+        if (reactionOrEditEvent(evt)) continue;
         if (evt.getType() === StateEvent.RoomMember) {
           const membershipChanged = isMembershipChanged(evt);
           if (membershipChanged && hideMembershipEvents) continue;
index 2cfbd6584ddbcc4c77bfd9ef30557d823b41f042..09f332603c7eb07997eb84c6198ddc314d4a7518 100644 (file)
@@ -86,6 +86,7 @@ import {
   getMemberDisplayName,
   getReactionContent,
   isMembershipChanged,
+  reactionOrEditEvent,
 } from '../../utils/room';
 import { useSetting } from '../../state/hooks/settings';
 import { settingsAtom } from '../../state/settings';
@@ -1632,7 +1633,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli
       prevEvent.getType() === mEvent.getType() &&
       minuteDifference(prevEvent.getTs(), mEvent.getTs()) < 2;
 
-    const eventJSX = mEvent.isRelation()
+    const eventJSX = reactionOrEditEvent(mEvent)
       ? null
       : renderMatrixEvent(mEventId, mEvent, item, timelineSet, collapsed);
     prevEvent = mEvent;
index 1c015a1ffbb5ec77ecc8eccc6de56da97af11956..adb6dc088fc0198e1c441596caa6b876637b79bb 100644 (file)
@@ -380,3 +380,7 @@ export const getLatestEditableEvt = (
   }
   return undefined;
 };
+
+export const reactionOrEditEvent = (mEvent: MatrixEvent) =>
+  mEvent.getRelation()?.rel_type === RelationType.Annotation ||
+  mEvent.getRelation()?.rel_type === RelationType.Replace;