import cons from '../../../client/state/cons';
import * as roomActions from '../../../client/action/room';
import { selectRoom } from '../../../client/action/navigation';
-import { hasDMWith } from '../../../util/matrixUtil';
+import { hasDMWith, hasDevices } from '../../../util/matrixUtil';
import Text from '../../atoms/text/Text';
import Button from '../../atoms/button/Button';
updateIsSearching(false);
}
- async function hasDevices(userId) {
- try {
- const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]);
- return Object.values(usersDeviceMap).every((userDevices) =>
- Object.keys(userDevices).length > 0,
- );
- } catch (e) {
- console.error("Error determining if it's possible to encrypt to all users: ", e);
- return false;
- }
- }
-
async function createDM(userId) {
if (mx.getUserId() === userId) return;
const dmRoomId = hasDMWith(userId);
import * as roomActions from '../../../client/action/room';
import {
- getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith
+ getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith, hasDevices
} from '../../../util/matrixUtil';
import { getEventCords } from '../../../util/common';
import colorMXID from '../../../util/colorMXID';
// Create new DM
try {
setIsCreatingDM(true);
- await roomActions.createDM(userId);
+ await roomActions.createDM(userId, await hasDevices(userId));
} catch {
if (isMountedRef.current === false) return;
setIsCreatingDM(false);
return undefined;
}
}
+
+export async function hasDevices(userId) {
+ const mx = initMatrix.matrixClient;
+ try {
+ const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]);
+ return Object.values(usersDeviceMap).every((userDevices) =>
+ Object.keys(userDevices).length > 0,
+ );
+ } catch (e) {
+ console.error("Error determining if it's possible to encrypt to all users: ", e);
+ return false;
+ }
+}
\ No newline at end of file