aboutsummaryrefslogtreecommitdiff
path: root/src/components/block_card
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/block_card')
-rw-r--r--src/components/block_card/block_card.js37
-rw-r--r--src/components/block_card/block_card.vue34
2 files changed, 71 insertions, 0 deletions
diff --git a/src/components/block_card/block_card.js b/src/components/block_card/block_card.js
new file mode 100644
index 00000000..11fa27b4
--- /dev/null
+++ b/src/components/block_card/block_card.js
@@ -0,0 +1,37 @@
+import BasicUserCard from '../basic_user_card/basic_user_card.vue'
+
+const BlockCard = {
+ props: ['userId'],
+ data () {
+ return {
+ progress: false
+ }
+ },
+ computed: {
+ user () {
+ return this.$store.getters.userById(this.userId)
+ },
+ blocked () {
+ return this.user.statusnet_blocking
+ }
+ },
+ components: {
+ BasicUserCard
+ },
+ 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
+ })
+ }
+ }
+}
+
+export default BlockCard
diff --git a/src/components/block_card/block_card.vue b/src/components/block_card/block_card.vue
new file mode 100644
index 00000000..8eb56e25
--- /dev/null
+++ b/src/components/block_card/block_card.vue
@@ -0,0 +1,34 @@
+<template>
+ <basic-user-card :user="user">
+ <div class="block-card-content-container">
+ <button class="btn btn-default" @click="unblockUser" :disabled="progress" v-if="blocked">
+ <template v-if="progress">
+ {{ $t('user_card.unblock_progress') }}
+ </template>
+ <template v-else>
+ {{ $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>
+ </div>
+ </basic-user-card>
+</template>
+
+<script src="./block_card.js"></script>
+
+<style lang="scss">
+.block-card-content-container {
+ margin-top: 0.5em;
+ text-align: right;
+ button {
+ width: 10em;
+ }
+}
+</style>