58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
|
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 () {
|
||
|
if (this.user.following) {
|
||
|
this.unfollow()
|
||
|
} else {
|
||
|
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 })
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|