diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index 2423754..84c2c60 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -324,7 +324,9 @@ "make_public": "Make Public", "make_public_warning": "warning: Full message history will be visible to new participants", "direct_link": "My Direct Link", - "direct_link_desc": "It's ready to share! A new direct room will open each time someone opens the link." + "direct_link_desc": "It's ready to share! A new direct room will open each time someone opens the link.", + "shared_room_number": "You share {count} rooms with {name}", + "shared_room_number_more": "You share more than {count} rooms with {name}" }, "room_info_sheet": { "this_room": "This room", diff --git a/src/components/MemberActionDialog.vue b/src/components/MemberActionDialog.vue index a2f4f52..fb02f08 100644 --- a/src/components/MemberActionDialog.vue +++ b/src/components/MemberActionDialog.vue @@ -18,10 +18,10 @@ {{ activeMember.userId == $matrix.currentUserId ? $t("room_info.user_you", { - user: activeMember.user ? activeMember.user.displayName : activeMember.name, + user: activeMemberName(activeMember) }) : $t("room_info.user", { - user: activeMember.user ? activeMember.user.displayName : activeMember.name, + user: activeMemberName(activeMember) }) }} @@ -32,6 +32,11 @@ {{ $t("room_info.user_moderator") }} +
@@ -83,6 +88,24 @@ export default { showDialog: false }; }, + computed: { + joinedMembersByRoomId() { + const joinedRooms = this.$matrix.joinedRooms.filter(room => !this.$matrix.isDirectRoom(room)) || []; + return joinedRooms.map(room => ({ + roomId: room.roomId, + roomName: room.name, + memberIds: room.getJoinedMembers().map(({ userId }) => userId) + })); + }, + sharedRooms() { + return this.joinedMembersByRoomId.reduce((sharedRooms, room) => { + if (room.roomId !== this.room.roomId && room.memberIds.includes(this.activeMember.userId)) { + sharedRooms.push(room.roomName); + } + return sharedRooms; + }, []); + } + }, watch: { show: { handler(newVal, ignoredOldVal) { @@ -97,6 +120,9 @@ export default { }, methods: { + activeMemberName(activeMember) { + return activeMember.user ? activeMember.user.displayName : activeMember.name + }, startPrivateChat(userId) { this.$matrix .getOrCreatePrivateChat(userId)