Add pref for whether to display full user names and tooltips

This commit is contained in:
Tusooa Zhu 2022-01-10 01:16:33 -05:00
parent 76547fe66d
commit 1d4b1b296e
No known key found for this signature in database
GPG key ID: 7B467EDE43A08224
6 changed files with 64 additions and 6 deletions

View file

@ -50,6 +50,10 @@ const MentionLink = {
userName () {
return this.user && this.userNameFullUi.split('@')[0]
},
serverName () {
// XXX assumed that domain does not contain @
return this.user && (this.userNameFullUi.split('@')[1] || this.$store.getters.instanceDomain)
},
userNameFull () {
return this.user && this.user.screen_name
},
@ -88,6 +92,22 @@ const MentionLink = {
useAtIcon () {
return this.mergedConfig.useAtIcon
},
isRemote () {
return this.userName !== this.userNameFull
},
shouldShowFullUserName () {
const conf = this.mergedConfig.mentionLinkDisplay
if (conf === 'short') {
return false
} else if (conf === 'full') {
return true
} else { // full_for_remote
return this.isRemote
}
},
shouldShowTooltip () {
return this.mergedConfig.mentionLinkShowTooltip && this.mergedConfig.mentionLinkDisplay === 'short' && this.isRemote
},
...mapGetters(['mergedConfig']),
...mapState({
currentUser: state => state.users.currentUser

View file

@ -28,10 +28,16 @@
size="sm"
icon="at"
class="at"
/><span class="shortName">{{ !useAtIcon ? '@' : '' }}<span
class="userName"
v-html="userName"
/></span>
/><span
class="shortName"
>{{ !useAtIcon ? '@' : '' }}<span
class="userName"
v-html="userName"
/><span
v-if="shouldShowFullUserName"
class="serverName"
v-html="'@' + serverName"
/></span>
<span
v-if="isYou"
class="you"
@ -39,7 +45,7 @@
<!-- eslint-enable vue/no-v-html -->
</a>
<span
v-if="userName !== userNameFull"
v-if="shouldShowTooltip"
class="full popover-default"
:class="[highlightType]"
>