Wrap canEncryptToAllUsers in a try/catch to handle server errors
Fixes https://github.com/vector-im/element-web/issues/12266pull/21833/head
							parent
							
								
									c6834fd428
								
							
						
					
					
						commit
						60d5e732d9
					
				|  | @ -275,12 +275,17 @@ export async function _waitForMember(client: MatrixClient, roomId: string, userI | |||
|  * can encrypt to. | ||||
|  */ | ||||
| export async function canEncryptToAllUsers(client: MatrixClient, userIds: string[]) { | ||||
|     const usersDeviceMap = await client.downloadKeys(userIds); | ||||
|     // { "@user:host": { "DEVICE": {...}, ... }, ... }
 | ||||
|     return Object.values(usersDeviceMap).every((userDevices) => | ||||
|         // { "DEVICE": {...}, ... }
 | ||||
|         Object.keys(userDevices).length > 0, | ||||
|     ); | ||||
|     try { | ||||
|         const usersDeviceMap = await client.downloadKeys(userIds); | ||||
|         // { "@user:host": { "DEVICE": {...}, ... }, ... }
 | ||||
|         return Object.values(usersDeviceMap).every((userDevices) => | ||||
|             // { "DEVICE": {...}, ... }
 | ||||
|             Object.keys(userDevices).length > 0, | ||||
|         ); | ||||
|     } catch (e) { | ||||
|         console.error("Error determining if it's possible to encrypt to all users: ", e); | ||||
|         return false; // assume not
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export async function ensureDMExists(client: MatrixClient, userId: string): Promise<string> { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Travis Ralston
						Travis Ralston