logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/
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:

Msrc/components/confirm_modal/mute_confirm.js2+-
Msrc/components/status/status.js25+++++++++++++++----------
Msrc/components/status_action_buttons/action_button_container.js4++--
Msrc/components/status_action_buttons/action_button_container.vue15+++++++++------
Msrc/components/user_card/user_card.vue2+-
Msrc/i18n/en.json2+-
Msrc/modules/statuses.js4++--
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)) },