+
-
- {{
- activeMember.name.substring(0, 1).toUpperCase()
- }}
+
+ {{ firstLetterUserName }}
{{
- activeMember.userId == $matrix.currentUserId
+ isCurrentUser
? $t("room_info.user_you", {
- user: activeMemberName(activeMember)
+ user: activeMemberNameComp
})
: $t("room_info.user", {
- user: activeMemberName(activeMember)
+ user: activeMemberNameComp
})
}}
-
+
{{ $t("room_info.user_admin") }}
-
+
{{ $t("room_info.user_moderator") }}
- {{ $t("room_info.shared_room_number", {count: sharedRooms.length, name: activeMemberName(activeMember)}) }}
- {{ $t("room_info.shared_room_number_more", {count: sharedRooms.length, name: activeMemberName(activeMember)}) }}
+ {{ $t("room_info.shared_room_number", {count: sharedRooms.length, name: activeMemberNameComp}) }}
+ {{ $t("room_info.shared_room_number_more", {count: sharedRooms.length, name: activeMemberNameComp}) }}
{{ sharedRooms.slice(0, 3).join(", ") }}
@@ -43,18 +42,18 @@
$vuetify.icons.direct_chat {{ $t("menu.direct_chat") }}
-
-
+
+
$vuetify.icons.kickout {{ $t("menu.user_kick_and_ban") }}
-
+
$vuetify.icons.make_admin {{ $t("menu.user_make_admin") }}
-
+
$vuetify.icons.make_moderator {{ $t("menu.user_make_moderator") }}
-
+
$vuetify.icons.revoke {{ $t("menu.user_revoke_moderator") }}
@@ -67,7 +66,7 @@ import DeviceList from "../components/DeviceList";
import util from "../plugins/utils";
export default {
- name: "MemberActionDialog",
+ name: "UserProfileDialog",
mixins: [roomInfoMixin],
components: {
DeviceList
@@ -80,7 +79,10 @@ export default {
},
},
activeMember: {
- type: Object
+ type: Object,
+ default: function () {
+ return null;
+ }
}
},
data() {
@@ -89,6 +91,36 @@ export default {
};
},
computed: {
+ canRevokeModeratorComp () {
+ return this.canRevokeModerator(this.activeMember)
+ },
+ isModeratorComp() {
+ return this.isModerator(this.activeMember)
+ },
+ canMakeModeratorComp() {
+ return this.canMakeModerator(this.activeMember)
+ },
+ canMakeAdminComp() {
+ return this.canMakeAdmin(this.activeMember)
+ },
+ canBanUserComp() {
+ return this.canBanUser(this.activeMember)
+ },
+ isAdminComp() {
+ return this.isAdmin(this.activeMember)
+ },
+ activeMemberNameComp() {
+ return this.activeMember.user ? this.activeMember.user.displayName : this.activeMember.name
+ },
+ isCurrentUser() {
+ return this.activeMember.userId == this.$matrix.currentUserId
+ },
+ firstLetterUserName() {
+ return this.activeMember.name.substring(0, 1).toUpperCase()
+ },
+ memberAvatarComp() {
+ return this.memberAvatar(this.activeMember)
+ },
joinedMembersByRoomId() {
const joinedRooms = this.$matrix.joinedRooms.filter(room => !this.$matrix.isDirectRoom(room)) || [];
return joinedRooms.map(room => ({
@@ -120,9 +152,6 @@ export default {
},
methods: {
- activeMemberName(activeMember) {
- return activeMember.user ? activeMember.user.displayName : activeMember.name
- },
startPrivateChat(userId) {
this.$matrix
.getOrCreatePrivateChat(userId)
diff --git a/src/components/chatMixin.js b/src/components/chatMixin.js
index ce4b85b..95e3e7f 100644
--- a/src/components/chatMixin.js
+++ b/src/components/chatMixin.js
@@ -38,7 +38,6 @@ import RoomTopicChanged from "./messages/RoomTopicChanged.vue";
import RoomAvatarChanged from "./messages/RoomAvatarChanged.vue";
import RoomHistoryVisibility from "./messages/RoomHistoryVisibility.vue";
import MessageOperations from "./messages/MessageOperations.vue";
-import AvatarOperations from "./messages/AvatarOperations.vue";
import ChatHeader from "./ChatHeader";
import VoiceRecorder from "./VoiceRecorder";
import RoomInfoBottomSheet from "./RoomInfoBottomSheet";
@@ -100,7 +99,6 @@ export default {
MessageOperationsBottomSheet,
StickerPickerBottomSheet,
BottomSheet,
- AvatarOperations,
CreatePollDialog,
},
methods: {
diff --git a/src/components/messages/AvatarOperations.vue b/src/components/messages/AvatarOperations.vue
deleted file mode 100644
index 509ce2d..0000000
--- a/src/components/messages/AvatarOperations.vue
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- {{ $t("menu.start_private_chat") }}
-
-
-
-
-
-
\ No newline at end of file