Add word-based muting to settings / statuses.
This commit is contained in:
parent
f3ca011fbe
commit
a53555254a
6 changed files with 37 additions and 5 deletions
|
@ -4,6 +4,7 @@ import RetweetButton from '../retweet_button/retweet_button.vue'
|
|||
import DeleteButton from '../delete_button/delete_button.vue'
|
||||
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
||||
import UserCardContent from '../user_card_content/user_card_content.vue'
|
||||
import { filter } from 'lodash'
|
||||
|
||||
const Status = {
|
||||
props: [
|
||||
|
@ -19,6 +20,9 @@ const Status = {
|
|||
userExpanded: false
|
||||
}),
|
||||
computed: {
|
||||
muteWords () {
|
||||
return this.$store.state.config.muteWords
|
||||
},
|
||||
hideAttachments () {
|
||||
return (this.$store.state.config.hideAttachments && !this.inConversation) ||
|
||||
(this.$store.state.config.hideAttachmentsInConv && this.inConversation)
|
||||
|
@ -35,7 +39,15 @@ const Status = {
|
|||
loggedIn () {
|
||||
return !!this.$store.state.users.currentUser
|
||||
},
|
||||
muted () { return !this.unmuted && this.status.user.muted },
|
||||
muteWordHits () {
|
||||
const statusText = this.status.text.toLowerCase()
|
||||
const hits = filter(this.muteWords, (muteWord) => {
|
||||
return statusText.includes(muteWord.toLowerCase())
|
||||
})
|
||||
|
||||
return hits
|
||||
},
|
||||
muted () { return !this.unmuted && (this.status.user.muted || this.muteWordHits.length > 0) },
|
||||
isReply () { return !!this.status.in_reply_to_status_id },
|
||||
borderColor () {
|
||||
return {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<template v-if="muted">
|
||||
<div class="media status container muted">
|
||||
<small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small>
|
||||
<small class="muteWords">{{muteWordHits.join(', ')}}</small>
|
||||
<a href="#" class="unmute" @click.prevent="toggleMute"><i class="icon-eye-off"></i></a>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -52,7 +53,7 @@
|
|||
<small>
|
||||
<a href="#" @click.prevent="toggleExpanded" ><i class="icon-plus-squared"></i></a>
|
||||
</small>
|
||||
<small v-if="status.user.muted">
|
||||
<small v-if="unmuted">
|
||||
<a href="#" @click.prevent="toggleMute" ><i class="icon-eye-off"></i></a>
|
||||
</small>
|
||||
</template>
|
||||
|
@ -167,6 +168,10 @@
|
|||
button {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.muteWords {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
a.unmute {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue