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'
|
2022-08-15 20:19:33 +00:00
|
|
|
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'
|
2020-10-20 19:13:19 +00:00
|
|
|
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,
|
2022-08-15 20:19:33 +00:00
|
|
|
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)
|
|
|
|
},
|
2022-09-16 04:02:58 +00:00
|
|
|
removeUserFromFollowers () {
|
|
|
|
this.$store.dispatch('removeUserFromFollowers', this.user.id)
|
|
|
|
},
|
2019-10-08 07:21:48 +00:00
|
|
|
reportUser () {
|
2021-01-12 12:43:21 +00:00
|
|
|
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
|