Complete functionality of BlockCard

This commit is contained in:
taehoon 2019-02-13 15:31:20 -05:00
parent 0220d3d304
commit 52913d8f87
5 changed files with 39 additions and 6 deletions

View file

@ -1,11 +1,18 @@
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
const BlockCard = {
props: ['user'],
props: ['userId'],
data () {
return {
progress: false,
updated: false
progress: false
}
},
computed: {
user () {
return this.$store.getters.userById(this.userId)
},
blocked () {
return this.user.statusnet_blocking
}
},
components: {
@ -14,6 +21,15 @@ const BlockCard = {
methods: {
unblockUser () {
this.progress = true
this.$store.dispatch('unblockUser', this.user.id).then(() => {
this.progress = false
})
},
blockUser () {
this.progress = true
this.$store.dispatch('blockUser', this.user.id).then(() => {
this.progress = false
})
}
}
}

View file

@ -1,7 +1,7 @@
<template>
<basic-user-card :user="user">
<template slot="secondary-area">
<button class="btn btn-default" @click="unblockUser" :disabled="progress">
<button class="btn btn-default" @click="unblockUser" :disabled="progress" v-if="blocked">
<template v-if="progress">
{{ $t('user_card.unblock_progress') }}
</template>
@ -9,6 +9,14 @@
{{ $t('user_card.unblock') }}
</template>
</button>
<button class="btn btn-default" @click="blockUser" :disabled="progress" v-else>
<template v-if="progress">
{{ $t('user_card.block_progress') }}
</template>
<template v-else>
{{ $t('user_card.block') }}
</template>
</button>
</template>
</basic-user-card>
</template>

View file

@ -9,7 +9,7 @@ import BlockCard from '../block_card/block_card.vue'
import withLoadMore from '../../hocs/with_load_more/with_load_more'
import withList from '../../hocs/with_list/with_list'
const BlockList = withList(BlockCard, entry => ({ user: entry }))
const BlockList = withList(BlockCard, entry => ({ userId: entry.id }))
const BlockListWithLoadMore = withLoadMore(
BlockList,
(props, $store) => $store.dispatch('fetchBlocks'),

View file

@ -368,7 +368,8 @@
"remote_follow": "Remote follow",
"statuses": "Statuses",
"unblock": "Unblock",
"unblock_progress": "Unblocking..."
"unblock_progress": "Unblocking...",
"block_progress": "Blocking..."
},
"user_profile": {
"timeline_title": "User Timeline"

View file

@ -154,6 +154,14 @@ const users = {
return blocks
})
},
blockUser (store, id) {
return store.rootState.api.backendInteractor.blockUser(id)
.then((user) => store.commit('addNewUsers', [user]))
},
unblockUser (store, id) {
return store.rootState.api.backendInteractor.unblockUser(id)
.then((user) => store.commit('addNewUsers', [user]))
},
addFriends ({ rootState, commit }, fetchBy) {
return new Promise((resolve, reject) => {
const user = rootState.users.usersObject[fetchBy]