diff --git a/src/app/hooks/useCommands.ts b/src/app/hooks/useCommands.ts index ad464c63..f90ed54e 100644 --- a/src/app/hooks/useCommands.ts +++ b/src/app/hooks/useCommands.ts @@ -1,6 +1,6 @@ import { MatrixClient, Room } from 'matrix-js-sdk'; import { useMemo } from 'react'; -import { hasDMWith, isRoomAlias, isRoomId, isUserId } from '../utils/matrix'; +import { getDMRoomFor, isRoomAlias, isRoomId, isUserId } from '../utils/matrix'; import { selectRoom } from '../../client/action/navigation'; import { hasDevices } from '../../util/matrixUtil'; import * as roomActions from '../../client/action/room'; @@ -84,7 +84,7 @@ export const useCommands = (mx: MatrixClient, room: Room): CommandRecord => { const userIds = rawIds.filter((id) => isUserId(id) && id !== mx.getUserId()); if (userIds.length === 0) return; if (userIds.length === 1) { - const dmRoomId = hasDMWith(mx, userIds[0]); + const dmRoomId = getDMRoomFor(mx, userIds[0])?.roomId; if (dmRoomId) { selectRoom(dmRoomId); return; diff --git a/src/app/utils/matrix.ts b/src/app/utils/matrix.ts index 32aae7e9..f733de44 100644 --- a/src/app/utils/matrix.ts +++ b/src/app/utils/matrix.ts @@ -7,6 +7,7 @@ import { MatrixClient, MatrixError, MatrixEvent, + Room, UploadProgress, UploadResponse, } from 'matrix-js-sdk'; @@ -164,10 +165,10 @@ export const factoryEventSentBy = (senderId: string) => (ev: MatrixEvent) => export const eventWithShortcode = (ev: MatrixEvent) => typeof ev.getContent().shortcode === 'string'; -export function hasDMWith(mx: MatrixClient, userId: string) { +export const getDMRoomFor = (mx: MatrixClient, userId: string): Room | undefined => { const dmLikeRooms = mx .getRooms() .filter((room) => mx.isRoomEncrypted(room.roomId) && room.getMembers().length <= 2); return dmLikeRooms.find((room) => room.getMember(userId)); -} +};