pleroma-fe/src/components/account_actions/account_actions.js

81 lines
2 KiB
JavaScript
Raw Normal View History

2020-05-07 13:10:53 +00:00
import { mapState } from 'vuex'
2019-10-08 07:21:48 +00:00
import ProgressButton from '../progress_button/progress_button.vue'
2020-02-28 16:39:47 +00:00
import Popover from '../popover/popover.vue'
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
2022-02-09 21:26:30 +00:00
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
faEllipsisV
} from '@fortawesome/free-solid-svg-icons'
library.add(
faEllipsisV
)
2019-10-08 07:21:48 +00:00
const AccountActions = {
props: [
2020-04-21 20:27:51 +00:00
'user', 'relationship'
2019-10-08 07:21:48 +00:00
],
data () {
2022-02-09 21:26:30 +00:00
return {
showingConfirmBlock: false
}
2019-10-08 07:21:48 +00:00
},
components: {
2020-02-28 16:39:47 +00:00
ProgressButton,
Popover,
2022-02-09 21:26:30 +00:00
UserListMenu,
ConfirmModal
2019-10-08 07:21:48 +00:00
},
methods: {
2022-02-09 21:26:30 +00:00
showConfirmBlock () {
this.showingConfirmBlock = true
},
hideConfirmBlock () {
this.showingConfirmBlock = false
},
2019-10-08 07:21:48 +00:00
showRepeats () {
this.$store.dispatch('showReblogs', this.user.id)
},
hideRepeats () {
this.$store.dispatch('hideReblogs', this.user.id)
},
blockUser () {
2022-02-09 21:26:30 +00:00
if (!this.shouldConfirmBlock) {
this.doBlockUser()
} else {
this.showConfirmBlock()
}
},
doBlockUser () {
2019-10-08 07:21:48 +00:00
this.$store.dispatch('blockUser', this.user.id)
2022-02-09 21:26:30 +00:00
this.hideConfirmBlock()
2019-10-08 07:21:48 +00:00
},
unblockUser () {
this.$store.dispatch('unblockUser', this.user.id)
},
removeUserFromFollowers () {
this.$store.dispatch('removeUserFromFollowers', this.user.id)
},
2019-10-08 07:21:48 +00:00
reportUser () {
this.$store.dispatch('openUserReportingModal', { userId: this.user.id })
2020-05-07 13:10:53 +00:00
},
openChat () {
this.$router.push({
name: 'chat',
2022-05-25 17:34:26 +00:00
params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }
2020-05-07 13:10:53 +00:00
})
2019-10-08 07:21:48 +00:00
}
2020-05-07 13:10:53 +00:00
},
computed: {
2022-02-09 21:26:30 +00:00
shouldConfirmBlock () {
return this.$store.getters.mergedConfig.modalOnBlock
},
2020-05-07 13:10:53 +00:00
...mapState({
pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable
})
2019-10-08 07:21:48 +00:00
}
}
export default AccountActions