commit: 3b7aaae2b366abe1162c22a29918336c4210446f
parent c032b48219ba601df5dabc7fd271444fe7db0321
Author: Tusooa Zhu <tusooa@kazv.moe>
Date: Wed, 9 Feb 2022 16:26:30 -0500
Add confirmation for blocking
Diffstat:
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js
@@ -2,6 +2,7 @@ import { mapState } from 'vuex'
import ProgressButton from '../progress_button/progress_button.vue'
import Popover from '../popover/popover.vue'
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
+import ConfirmModal from '../confirm_modal/confirm_modal.vue'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
faEllipsisV
@@ -16,14 +17,23 @@ const AccountActions = {
'user', 'relationship'
],
data () {
- return { }
+ return {
+ showingConfirmBlock: false
+ }
},
components: {
ProgressButton,
Popover,
- UserListMenu
+ UserListMenu,
+ ConfirmModal
},
methods: {
+ showConfirmBlock () {
+ this.showingConfirmBlock = true
+ },
+ hideConfirmBlock () {
+ this.showingConfirmBlock = false
+ },
showRepeats () {
this.$store.dispatch('showReblogs', this.user.id)
},
@@ -31,7 +41,15 @@ const AccountActions = {
this.$store.dispatch('hideReblogs', this.user.id)
},
blockUser () {
+ if (!this.shouldConfirmBlock) {
+ this.doBlockUser()
+ } else {
+ this.showConfirmBlock()
+ }
+ },
+ doBlockUser () {
this.$store.dispatch('blockUser', this.user.id)
+ this.hideConfirmBlock()
},
unblockUser () {
this.$store.dispatch('unblockUser', this.user.id)
@@ -50,6 +68,9 @@ const AccountActions = {
}
},
computed: {
+ shouldConfirmBlock () {
+ return this.$store.getters.mergedConfig.modalOnBlock
+ },
...mapState({
pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable
})
diff --git a/src/components/account_actions/account_actions.vue b/src/components/account_actions/account_actions.vue
@@ -74,6 +74,24 @@
</button>
</template>
</Popover>
+ <confirm-modal
+ :showing="showingConfirmBlock"
+ :title="$t('user_card.block_confirm_title')"
+ :confirm-text="$t('user_card.block_confirm_accept_button')"
+ :cancel-text="$t('user_card.block_confirm_cancel_button')"
+ @accepted="doBlockUser"
+ @cancelled="hideConfirmBlock"
+ >
+ <i18n
+ path="user_card.block_confirm"
+ tag="span"
+ >
+ <span
+ place="user"
+ v-text="user.screen_name_ui"
+ />
+ </i18n>
+ </confirm-modal>
</div>
</template>