diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2019-10-15 06:26:12 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2019-10-15 06:26:12 +0000 |
| commit | d2feba1487039e3b0642d625265b0b9af94b5b41 (patch) | |
| tree | 4799160d0ac082eb3c38e5cb4e16fc11c82ccbe0 /src/components/follow_button | |
| parent | 8b2d873057a220673d8212cf4542103b54ffbe5c (diff) | |
| parent | d53e7e3125572075fc3f512fa0343a6ed98e5c12 (diff) | |
Merge branch 'feature/following_reblogs' into 'develop'
[#664] implementes to hide/show reblogs from a specific user.
See merge request pleroma/pleroma-fe!956
Diffstat (limited to 'src/components/follow_button')
| -rw-r--r-- | src/components/follow_button/follow_button.js | 53 | ||||
| -rw-r--r-- | src/components/follow_button/follow_button.vue | 13 |
2 files changed, 66 insertions, 0 deletions
diff --git a/src/components/follow_button/follow_button.js b/src/components/follow_button/follow_button.js new file mode 100644 index 00000000..4123c9fd --- /dev/null +++ b/src/components/follow_button/follow_button.js @@ -0,0 +1,53 @@ +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 this.$t('user_card.follow_unfollow') + } else if (this.user.requested) { + return this.$t('user_card.follow_again') + } else { + return this.$t('user_card.follow') + } + }, + label () { + if (this.inProgress) { + return this.$t('user_card.follow_progress') + } else if (this.user.following) { + return this.$t('user_card.following') + } else if (this.user.requested) { + return this.$t('user_card.follow_sent') + } else { + return this.$t('user_card.follow') + } + } + }, + methods: { + onClick () { + this.user.following ? this.unfollow() : this.follow() + }, + follow () { + this.inProgress = true + requestFollow(this.user, this.$store).then(() => { + this.inProgress = false + }) + }, + unfollow () { + 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..f0cbb94b --- /dev/null +++ b/src/components/follow_button/follow_button.vue @@ -0,0 +1,13 @@ +<template> + <button + class="btn btn-default follow-button" + :class="{ pressed: isPressed }" + :disabled="inProgress" + :title="title" + @click="onClick" + > + {{ label }} + </button> +</template> + +<script src="./follow_button.js"></script> |
