Skip to content

Commit 9f22f3c

Browse files
committed
trigger the timeline to regroup messages on pmp decryption so latest message is grouped
1 parent 2b197aa commit 9f22f3c

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

.changeset/fix-pmp-encrypted.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
default: patch
3+
---
4+
5+
Fixes the most recent pmp message in encrypted rooms not consistently rendering the pmp and not grouping with previous pmps.

src/app/features/room/message/Message.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import {
3535
Relations,
3636
RoomPinnedEventsEventContent,
3737
MatrixEventEvent,
38+
RoomEvent,
39+
IRoomTimelineData,
3840
} from '$types/matrix-sdk';
3941
import classNames from 'classnames';
4042
import { useAtomValue, useSetAtom } from 'jotai';
@@ -383,10 +385,20 @@ function MessageInternal(
383385
const [contentVersion, setContentVersion] = useState(0);
384386

385387
useEffect(() => {
386-
const onUpdate = () => setContentVersion((v) => v + 1);
388+
const triggerTimelineRegroup = () => {
389+
room.emit(RoomEvent.Timeline, mEvent, room, false, false, {
390+
liveEvent: true,
391+
} as IRoomTimelineData);
392+
};
393+
394+
const onUpdate = () => {
395+
setContentVersion((v) => v + 1);
396+
triggerTimelineRegroup();
397+
};
387398

388399
if (mEvent.getClearContent()) {
389400
setContentVersion((v) => (v === 0 ? 1 : v));
401+
triggerTimelineRegroup();
390402
}
391403

392404
mEvent.on(MatrixEventEvent.Decrypted, onUpdate);
@@ -395,7 +407,7 @@ function MessageInternal(
395407
mEvent.off(MatrixEventEvent.Decrypted, onUpdate);
396408
mEvent.off(MatrixEventEvent.Replaced, onUpdate);
397409
};
398-
}, [mEvent]);
410+
}, [mEvent, room]);
399411

400412
/**
401413
* We read the per-message profile from the event content here.

0 commit comments

Comments
 (0)