diff --git a/src/app/features/room/message/Message.tsx b/src/app/features/room/message/Message.tsx index 98e7e927a..887d24a66 100644 --- a/src/app/features/room/message/Message.tsx +++ b/src/app/features/room/message/Message.tsx @@ -36,7 +36,6 @@ import { RoomPinnedEventsEventContent, MatrixEventEvent, RoomEvent, - IRoomTimelineData, } from '$types/matrix-sdk'; import classNames from 'classnames'; import { useAtomValue, useSetAtom } from 'jotai'; @@ -386,9 +385,9 @@ function MessageInternal( useEffect(() => { const triggerTimelineRegroup = () => { - room.emit(RoomEvent.Timeline, mEvent, room, false, false, { - liveEvent: true, - } as IRoomTimelineData); + // A Local Echo update seems to trigger a visual refresh without + // scrolling the viewport. + room.emit(RoomEvent.LocalEchoUpdated, mEvent, room); }; const onUpdate = () => { @@ -396,6 +395,11 @@ function MessageInternal( triggerTimelineRegroup(); }; + if (mEvent.getClearContent()) { + setContentVersion((v) => (v === 0 ? 1 : v)); + triggerTimelineRegroup(); + } + mEvent.on(MatrixEventEvent.Decrypted, onUpdate); mEvent.on(MatrixEventEvent.Replaced, onUpdate); return () => {