forked from AkkomaGang/akkoma-fe
fix reply-to tooltip being somewhat unreliable
This commit is contained in:
parent
c8caa477d7
commit
61c9ecd855
3 changed files with 33 additions and 7 deletions
|
@ -73,6 +73,16 @@ const Status = {
|
||||||
return (this.$store.state.config.hideAttachments && !this.inConversation) ||
|
return (this.$store.state.config.hideAttachments && !this.inConversation) ||
|
||||||
(this.$store.state.config.hideAttachmentsInConv && this.inConversation)
|
(this.$store.state.config.hideAttachmentsInConv && this.inConversation)
|
||||||
},
|
},
|
||||||
|
userProfileLink () {
|
||||||
|
return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)
|
||||||
|
},
|
||||||
|
replyProfileLink () {
|
||||||
|
if (this.isReply) {
|
||||||
|
return this.generateUserProfileLink(this.status.in_reply_to_status_id, this.replyToName)
|
||||||
|
} else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
},
|
||||||
retweet () { return !!this.statusoid.retweeted_status },
|
retweet () { return !!this.statusoid.retweeted_status },
|
||||||
retweeter () { return this.statusoid.user.name },
|
retweeter () { return this.statusoid.user.name },
|
||||||
retweeterHtml () { return this.statusoid.user.name_html },
|
retweeterHtml () { return this.statusoid.user.name_html },
|
||||||
|
@ -119,6 +129,14 @@ const Status = {
|
||||||
isReply () {
|
isReply () {
|
||||||
return !!this.status.in_reply_to_status_id
|
return !!this.status.in_reply_to_status_id
|
||||||
},
|
},
|
||||||
|
replyToName () {
|
||||||
|
const user = this.$store.state.users.usersObject[this.status.in_reply_to_user_id]
|
||||||
|
if (user) {
|
||||||
|
return user.screen_name
|
||||||
|
} else {
|
||||||
|
return this.status.in_reply_to_screen_name || ''
|
||||||
|
}
|
||||||
|
},
|
||||||
hideReply () {
|
hideReply () {
|
||||||
if (this.$store.state.config.replyVisibility === 'all') {
|
if (this.$store.state.config.replyVisibility === 'all') {
|
||||||
return false
|
return false
|
||||||
|
@ -277,7 +295,7 @@ const Status = {
|
||||||
replyLeave () {
|
replyLeave () {
|
||||||
this.showPreview = false
|
this.showPreview = false
|
||||||
},
|
},
|
||||||
userProfileLink (id, name) {
|
generateUserProfileLink (id, name) {
|
||||||
return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)
|
return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<template v-if="muted && !noReplyLinks">
|
<template v-if="muted && !noReplyLinks">
|
||||||
<div class="media status container muted">
|
<div class="media status container muted">
|
||||||
<small>
|
<small>
|
||||||
<router-link :to="userProfileLink(status.user.id, status.user.screen_name)">
|
<router-link :to="userProfileLink">
|
||||||
{{status.user.screen_name}}
|
{{status.user.screen_name}}
|
||||||
</router-link>
|
</router-link>
|
||||||
</small>
|
</small>
|
||||||
|
@ -38,16 +38,16 @@
|
||||||
<h4 class="user-name" v-if="status.user.name_html" v-html="status.user.name_html"></h4>
|
<h4 class="user-name" v-if="status.user.name_html" v-html="status.user.name_html"></h4>
|
||||||
<h4 class="user-name" v-else>{{status.user.name}}</h4>
|
<h4 class="user-name" v-else>{{status.user.name}}</h4>
|
||||||
<span class="links">
|
<span class="links">
|
||||||
<router-link :to="userProfileLink(status.user.id, status.user.screen_name)">
|
<router-link :to="userProfileLink">
|
||||||
{{status.user.screen_name}}
|
{{status.user.screen_name}}
|
||||||
</router-link>
|
</router-link>
|
||||||
<span v-if="status.in_reply_to_screen_name" class="faint reply-info">
|
<span v-if="isReply" class="faint reply-info">
|
||||||
<i class="icon-right-open"></i>
|
<i class="icon-right-open"></i>
|
||||||
<router-link :to="userProfileLink(status.in_reply_to_user_id, status.in_reply_to_screen_name)">
|
<router-link :to="replyProfileLink">
|
||||||
{{status.in_reply_to_screen_name}}
|
{{replyToName}}
|
||||||
</router-link>
|
</router-link>
|
||||||
</span>
|
</span>
|
||||||
<a v-if="isReply && !noReplyLinks" href="#" @click.prevent="gotoOriginal(status.in_reply_to_status_id)" :title="$t('tool_tip.reply')">
|
<a v-if="isReply && !noReplyLinks" href="#" @click.prevent="gotoOriginal(status.in_reply_to_status_id)" :aria-label="$t('tool_tip.reply')">
|
||||||
<i class="button-icon icon-reply" @mouseenter="replyEnter(status.in_reply_to_status_id, $event)" @mouseout="replyLeave()"></i>
|
<i class="button-icon icon-reply" @mouseenter="replyEnter(status.in_reply_to_status_id, $event)" @mouseout="replyLeave()"></i>
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -211,6 +211,14 @@ export const parseStatus = (data) => {
|
||||||
output.visibility = data.visibility
|
output.visibility = data.visibility
|
||||||
output.created_at = new Date(data.created_at)
|
output.created_at = new Date(data.created_at)
|
||||||
|
|
||||||
|
// Converting to string, the right way.
|
||||||
|
output.in_reply_to_status_id = output.in_reply_to_status_id
|
||||||
|
? String(output.in_reply_to_status_id)
|
||||||
|
: null
|
||||||
|
output.in_reply_to_user_id = output.in_reply_to_user_id
|
||||||
|
? String(output.in_reply_to_user_id)
|
||||||
|
: null
|
||||||
|
|
||||||
output.user = parseUser(masto ? data.account : data.user)
|
output.user = parseUser(masto ? data.account : data.user)
|
||||||
|
|
||||||
output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)
|
output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)
|
||||||
|
|
Loading…
Reference in a new issue