diff --git a/lib/selectors/user-selectors.js b/lib/selectors/user-selectors.js --- a/lib/selectors/user-selectors.js +++ b/lib/selectors/user-selectors.js @@ -260,6 +260,22 @@ .flat(), ); +const getPeersUserAndDeviceIDs: ( + state: BaseAppState<>, +) => $ReadOnlyArray<{ +userID: string, +deviceID: string }> = createSelector( + (state: BaseAppState<>) => state.auxUserStore.auxUserInfos, + ( + auxUserInfos: AuxUserInfos, + ): $ReadOnlyArray<{ +userID: string, +deviceID: string }> => + entries(auxUserInfos).flatMap( + ([userID, { deviceList }]: [string, AuxUserInfo]) => + deviceList?.devices.map(deviceID => ({ + userID, + deviceID, + })) ?? [], + ), +); + export { userIDsToRelativeUserInfos, getRelativeMemberInfos, @@ -273,4 +289,5 @@ usersWithMissingDeviceListSelector, getForeignPeerDevices, getAllPeerDevices, + getPeersUserAndDeviceIDs, };