commit: d01e069bf205dc97d1ade6263215b742d63643e3
parent 8be36ae07bc6c8277c16f9446c5bc7f09f57c6ea
Author: Henry Jameson <me@hjkos.com>
Date: Mon, 27 Jan 2025 17:53:34 +0200
fixes to mute menu and mute description
Diffstat:
7 files changed, 31 insertions(+), 23 deletions(-)
diff --git a/src/components/confirm_modal/mute_confirm.js b/src/components/confirm_modal/mute_confirm.js
@@ -5,7 +5,7 @@ import ConfirmModal from './confirm_modal.vue'
import Select from 'src/components/select/select.vue'
export default {
- props: ['type', 'user'],
+ props: ['type', 'user', 'status'],
emits: ['hide', 'show', 'muted'],
data: () => ({
showing: false,
diff --git a/src/components/status/status.js b/src/components/status/status.js
@@ -255,7 +255,7 @@ const Status = {
muteReasons () {
return [
this.userIsMuted ? 'user' : null,
- status.thread_muted ? 'thread' : null,
+ this.status.thread_muted ? 'thread' : null,
(this.muteWordHits.length > 0) ? 'wordfilter' : null,
(this.muteBotStatuses && this.botStatus) ? 'bot' : null,
(this.muteSensitiveStatuses && this.sensitiveStatus) ? 'nsfw' : null
@@ -280,14 +280,19 @@ const Status = {
case 'nsfw': return this.$t('status.sensitive_muted')
}
}
- return this.$t(
- 'status.multi_reason_mute',
- {
- main: mainReason(),
- numReasonsMore: this.muteReasons.length - 1
- },
- this.muteReasons.length - 1
- )
+ console.log(this.status)
+ if (this.muteReasons.length > 1) {
+ return this.$t(
+ 'status.multi_reason_mute',
+ {
+ main: mainReason(),
+ numReasonsMore: this.muteReasons.length - 1
+ },
+ this.muteReasons.length - 1
+ )
+ } else {
+ return mainReason()
+ }
},
muted () {
if (this.statusoid.user.id === this.currentUser.id) return false
@@ -299,7 +304,7 @@ const Status = {
const { reblog } = status
const relationship = this.$store.getters.relationship(status.user.id)
const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)
- return status.muted ||
+ return (status.muted && !status.thread_muted) ||
// Reprööt of a muted post according to BE
(reblog && reblog.muted) ||
// Muted user
diff --git a/src/components/status_action_buttons/action_button_container.js b/src/components/status_action_buttons/action_button_container.js
@@ -58,8 +58,8 @@ export default {
unmuteUser () {
return this.$store.dispatch('unmuteUser', this.user.id)
},
- unmuteThread () {
- return this.$store.dispatch('unmuteConversation', this.user.id)
+ unmuteConversation () {
+ return this.$store.dispatch('unmuteConversation', { id: this.status.id })
},
unmuteDomain () {
return this.$store.dispatch('unmuteDomain', this.user.id)
diff --git a/src/components/status_action_buttons/action_button_container.vue b/src/components/status_action_buttons/action_button_container.vue
@@ -2,7 +2,7 @@
<div>
<Popover
v-if="button.dropdown?.()"
- trigger="click"
+ :trigger="$attrs.extra ? 'hover' : 'click'"
:offset="{ y: 5 }"
:placement="$attrs.extra ? 'right' : 'top'"
>
@@ -40,13 +40,13 @@
<div class="menu-item dropdown-item extra-action -icon">
<button
class="main-button"
- @click="toggleUserMute"
+ @click="toggleConversationMute"
>
<FAIcon
icon="folder-tree"
fixed-width
/>
- <template v-if="threadIsMuted">
+ <template v-if="conversationIsMuted">
{{ $t('status.unmute_conversation') }}
</template>
<template v-else>
@@ -81,19 +81,22 @@
v-bind="$attrs"
/>
<teleport to="#modal">
- <mute-confirm
+ <MuteConfirm
ref="confirmConversation"
type="conversation"
:status="status"
+ :user="user"
/>
- <mute-confirm
+ <MuteConfirm
ref="confirmDomain"
type="domain"
+ :status="status"
:user="user"
/>
- <mute-confirm
+ <MuteConfirm
ref="confirmUser"
type="user"
+ :status="status"
:user="user"
/>
</teleport>
diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue
@@ -311,7 +311,7 @@
/>
</div>
<teleport to="#modal">
- <mute-confirm
+ <MuteConfirm
ref="confirmation"
type="user"
:user="user"
diff --git a/src/i18n/en.json b/src/i18n/en.json
@@ -1259,7 +1259,7 @@
"copy_link": "Copy link to status",
"external_source": "External source",
"muted_words": "Wordfiltered: {word} | Wordfiltered: {word} and {numWordsMore} more words",
- "multi_reason_mute": "{main} | {main} + one more reason | {main} + {numReasonsMore} more reasons",
+ "multi_reason_mute": "{main} + one more reason | {main} + {numReasonsMore} more reasons",
"muted_user": "User muted",
"thread_muted": "Thread muted",
"thread_muted_and_words": ", has words:",
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
@@ -549,11 +549,11 @@ const statuses = {
rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })
.then((status) => dispatch('addNewStatuses', { statuses: [status] }))
},
- muteConversation ({ rootState, commit }, statusId) {
+ muteConversation ({ rootState, commit }, { id: statusId }) {
return rootState.api.backendInteractor.muteConversation({ id: statusId })
.then((status) => commit('setMutedStatus', status))
},
- unmuteConversation ({ rootState, commit }, statusId) {
+ unmuteConversation ({ rootState, commit }, { id: statusId }) {
return rootState.api.backendInteractor.unmuteConversation({ id: statusId })
.then((status) => commit('setMutedStatus', status))
},