Add confirmation for muting

This commit is contained in:
Tusooa Zhu 2022-02-09 16:21:19 -05:00 committed by tusooa
parent a0c6d642af
commit e7e35ead09
No known key found for this signature in database
GPG Key ID: 7B467EDE43A08224
2 changed files with 40 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import UserNote from '../user_note/user_note.vue'
import Select from '../select/select.vue'
import UserLink from '../user_link/user_link.vue'
import RichContent from 'src/components/rich_content/rich_content.jsx'
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import { mapGetters } from 'vuex'
import { library } from '@fortawesome/fontawesome-svg-core'
@ -46,7 +47,8 @@ export default {
data () {
return {
followRequestInProgress: false,
betterShadow: this.$store.state.interface.browserSupport.cssFilter
betterShadow: this.$store.state.interface.browserSupport.cssFilter,
showingConfirmMute: false
}
},
created () {
@ -137,6 +139,9 @@ export default {
supportsNote () {
return 'note' in this.relationship
},
shouldConfirmMute () {
return this.mergedConfig.modalOnMute
},
...mapGetters(['mergedConfig'])
},
components: {
@ -149,11 +154,26 @@ export default {
Select,
RichContent,
UserLink,
UserNote
UserNote,
ConfirmModal
},
methods: {
showConfirmMute () {
this.showingConfirmMute = true
},
hideConfirmMute () {
this.showingConfirmMute = false
},
muteUser () {
if (!this.shouldConfirmMute) {
this.doMuteUser()
} else {
this.showConfirmMute()
}
},
doMuteUser () {
this.$store.dispatch('muteUser', this.user.id)
this.hideConfirmMute()
},
unmuteUser () {
this.$store.dispatch('unmuteUser', this.user.id)

View File

@ -314,6 +314,24 @@
:handle-links="true"
/>
</div>
<confirm-modal
:showing="showingConfirmMute"
:title="$t('user_card.mute_confirm_title')"
:confirm-text="$t('user_card.mute_confirm_accept_button')"
:cancel-text="$t('user_card.mute_confirm_cancel_button')"
@accepted="doMuteUser"
@cancelled="hideConfirmMute"
>
<i18n
path="user_card.mute_confirm"
tag="span"
>
<span
place="user"
v-text="user.screen_name_ui"
/>
</i18n>
</confirm-modal>
</div>
</template>