Fix message button opens left dm room (#2453)
authorAjay Bura <32841439+ajbura@users.noreply.github.com>
Tue, 19 Aug 2025 12:38:46 +0000 (18:08 +0530)
committerGitHub <noreply@github.com>
Tue, 19 Aug 2025 12:38:46 +0000 (22:38 +1000)
src/app/utils/matrix.ts

index b4e2e6b8de1c2c61ffb8a296cdf24928e0b01054..a8031202360a889c810aed13d2a2549230f87f15 100644 (file)
@@ -17,7 +17,7 @@ import to from 'await-to-js';
 import { IImageInfo, IThumbnailContent, IVideoInfo } from '../../types/matrix/common';
 import { AccountDataEvent } from '../../types/matrix/accountData';
 import { getStateEvent } from './room';
-import { StateEvent } from '../../types/matrix/room';
+import { Membership, StateEvent } from '../../types/matrix/room';
 
 const DOMAIN_REGEX = /\b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b/;
 
@@ -182,7 +182,12 @@ export const eventWithShortcode = (ev: MatrixEvent) =>
 export const getDMRoomFor = (mx: MatrixClient, userId: string): Room | undefined => {
   const dmLikeRooms = mx
     .getRooms()
-    .filter((room) => room.hasEncryptionStateEvent() && room.getMembers().length <= 2);
+    .filter(
+      (room) =>
+        room.getMyMembership() === Membership.Join &&
+        room.hasEncryptionStateEvent() &&
+        room.getMembers().length <= 2
+    );
 
   return dmLikeRooms.find((room) => room.getMember(userId));
 };