From 188b6f56ed2f983d8f0fba4dc8f7327ebbee321d Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Mon, 30 Sep 2019 20:34:51 +0300 Subject: added acccount_actions component --- src/components/follow_button/follow_button.js | 58 ++++++++++++++++++++++++++ src/components/follow_button/follow_button.vue | 13 ++++++ 2 files changed, 71 insertions(+) create mode 100644 src/components/follow_button/follow_button.js create mode 100644 src/components/follow_button/follow_button.vue (limited to 'src/components/follow_button') diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js new file mode 100644 index 00000000..9d2834ab --- /dev/null +++ b/src/components/follow_button/follow_button.js @@ -0,0 +1,58 @@ +import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate' +export default { + props: ['user'], + data () { + return { + inProgress: false + } + }, + computed: { + isPressed () { + return this.inProgress || this.user.following + }, + title () { + if (this.inProgress || this.user.following) { + return 'user_card.follow_unfollow' + } else if (this.user.requested) { + return 'user_card.follow_again' + } else { + return '' + } + }, + label () { + if (this.inProgress) { + return 'user_card.follow_progress' + } else if (this.user.following) { + return 'user_card.following' + } else if (this.user.requested) { + return 'user_card.follow_sent' + } else { + return 'user_card.follow' + } + } + }, + methods: { + doClick () { + if (this.user.following) { + this.unfollowUser() + } else { + this.followUser() + } + }, + followUser () { + const store = this.$store + this.inProgress = true + requestFollow(this.user, store).then(() => { + this.inProgress = false + }) + }, + unfollowUser () { + const store = this.$store + this.inProgress = true + requestUnfollow(this.user, store).then(() => { + this.inProgress = false + store.commit('removeStatus', { timeline: 'friends', userId: this.user.id }) + }) + } + } +} diff --git a/src/components/follow_button/follow_button.vue b/src/components/follow_button/follow_button.vue new file mode 100644 index 00000000..61aa75a0 --- /dev/null +++ b/src/components/follow_button/follow_button.vue @@ -0,0 +1,13 @@ + + + -- cgit v1.2.3-70-g09d2