pleroma-fe/src/components/follow_card/follow_card.js

51 lines
1.3 KiB
JavaScript
Raw Normal View History

2019-02-26 04:51:04 +01:00
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
import RemoteFollow from '../remote_follow/remote_follow.vue'
2019-02-26 04:51:04 +01:00
import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'
const FollowCard = {
props: [
'user',
'noFollowsYou'
],
data () {
return {
2019-02-26 16:14:12 +01:00
inProgress: false,
2019-02-26 04:51:04 +01:00
requestSent: false,
updated: false
}
},
components: {
BasicUserCard,
RemoteFollow
2019-02-26 04:51:04 +01:00
},
computed: {
isMe () { return this.$store.state.users.currentUser.id === this.user.id },
following () { return this.updated ? this.updated.following : this.user.following },
showFollow () {
return !this.following || this.updated && !this.updated.following
},
loggedIn () {
return this.$store.state.users.currentUser
2019-02-26 04:51:04 +01:00
}
},
methods: {
followUser () {
2019-02-26 16:14:12 +01:00
this.inProgress = true
2019-02-26 04:51:04 +01:00
requestFollow(this.user, this.$store).then(({ sent, updated }) => {
2019-02-26 16:14:12 +01:00
this.inProgress = false
2019-02-26 04:51:04 +01:00
this.requestSent = sent
this.updated = updated
})
},
unfollowUser () {
2019-02-26 16:14:12 +01:00
this.inProgress = true
2019-02-26 04:51:04 +01:00
requestUnfollow(this.user, this.$store).then(({ updated }) => {
2019-02-26 16:14:12 +01:00
this.inProgress = false
2019-02-26 04:51:04 +01:00
this.updated = updated
})
}
}
}
export default FollowCard