From 52913d8f873dd6994988d6a928cca007a0effeaf Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 13 Feb 2019 15:31:20 -0500
Subject: [PATCH] Complete functionality of BlockCard
---
src/components/block_card/block_card.js | 22 ++++++++++++++++---
src/components/block_card/block_card.vue | 10 ++++++++-
src/components/user_settings/user_settings.js | 2 +-
src/i18n/en.json | 3 ++-
src/modules/users.js | 8 +++++++
5 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/src/components/block_card/block_card.js b/src/components/block_card/block_card.js
index 8788fb62..11fa27b4 100644
--- a/src/components/block_card/block_card.js
+++ b/src/components/block_card/block_card.js
@@ -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
+ })
}
}
}
diff --git a/src/components/block_card/block_card.vue b/src/components/block_card/block_card.vue
index 06fc67fc..ed7fe30b 100644
--- a/src/components/block_card/block_card.vue
+++ b/src/components/block_card/block_card.vue
@@ -1,7 +1,7 @@
-
+
+
+ {{ $t('user_card.block_progress') }}
+
+
+ {{ $t('user_card.block') }}
+
+
diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 3bcecdf4..621dcd4b 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -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'),
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 9027803d..eeb95f9c 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -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"
diff --git a/src/modules/users.js b/src/modules/users.js
index 6ea4e0c9..ce8af68c 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -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]