keanu-weblite/src/components/profileInfoMixin.js
2025-05-19 10:23:50 +02:00

52 lines
No EOL
1.3 KiB
JavaScript

export default {
computed: {
user() {
if (!this.$matrix.ready) {
return null;
}
return this.$matrix.matrixClient.getUser(this.$matrix.currentUserId);
},
displayName: {
get() {
if (!this.user) {
return null;
}
return this.$matrix.userDisplayName || this.user.displayName;
},
set(newValue) {
this.user.displayName = newValue
}
},
userAvatar() {
if (!this.$matrix.userAvatar) {
return null;
}
return this.$matrix.matrixClient.mxcUrlToHttp(this.$matrix.userAvatar, 80, 80, 'scale', true, undefined, this.$matrix.useAuthedMedia);
},
userAvatarLetter() {
if (!this.user) {
return null;
}
return (this.$matrix.userDisplayName || this.user.displayName || this.user.userId.substring(1)).substring(0, 1).toUpperCase();
},
passwordsMatch() {
return this.newPassword1 && this.newPassword2 && this.newPassword1 == this.newPassword2;
}
},
methods: {
logout() {
//TODO - For guest accounts, show warning about not being able to rejoin.
this.$store.dispatch("logout");
this.$nextTick(() => {
this.$navigation.push({path: "/login"}, -1);
})
},
updateDisplayName(name) {
this.$matrix.setUserDisplayName(name || this.user.userId);
}
}
}