follow requests: refactor to properly leverage vuex

This commit is contained in:
William Pitcock 2018-06-07 01:24:31 +00:00
parent fd25f68741
commit 7389f07115
3 changed files with 23 additions and 8 deletions
src
components
follow_requests
user_card
modules

View file

@ -1,17 +1,22 @@
import UserCard from '../user_card/user_card.vue'
const FollowRequests = {
data () {
return {
requests: []
}
},
components: {
UserCard
},
created () {
this.$store.state.api.backendInteractor.fetchFollowRequests()
.then((requests) => { this.requests = requests })
this.updateRequests()
},
computed: {
requests () {
return this.$store.state.api.followRequests
}
},
methods: {
updateRequests () {
this.$store.state.api.backendInteractor.fetchFollowRequests()
.then((requests) => { this.$store.commit('setFollowRequests', requests) })
}
}
}

View file

@ -20,9 +20,11 @@ const UserCard = {
},
approveUser () {
this.$store.state.api.backendInteractor.approveUser(this.user.id)
this.$store.dispatch('removeFollowRequest', this.user)
},
denyUser () {
this.$store.state.api.backendInteractor.denyUser(this.user.id)
this.$store.dispatch('removeFollowRequest', this.user)
}
}
}

View file

@ -7,7 +7,8 @@ const api = {
backendInteractor: backendInteractorService(),
fetchers: {},
socket: null,
chatDisabled: false
chatDisabled: false,
followRequests: []
},
mutations: {
setBackendInteractor (state, backendInteractor) {
@ -24,6 +25,9 @@ const api = {
},
setChatDisabled (state, value) {
state.chatDisabled = value
},
setFollowRequests (state, value) {
state.followRequests = value
}
},
actions: {
@ -57,6 +61,10 @@ const api = {
},
disableChat (store) {
store.commit('setChatDisabled', true)
},
removeFollowRequest (store, request) {
let requests = store.state.followRequests.filter((it) => it !== request)
store.commit('setFollowRequests', requests)
}
}
}