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

View file

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

View file

@ -20,9 +20,11 @@ const UserCard = {
}, },
approveUser () { approveUser () {
this.$store.state.api.backendInteractor.approveUser(this.user.id) this.$store.state.api.backendInteractor.approveUser(this.user.id)
this.$store.dispatch('removeFollowRequest', this.user)
}, },
denyUser () { denyUser () {
this.$store.state.api.backendInteractor.denyUser(this.user.id) 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(), backendInteractor: backendInteractorService(),
fetchers: {}, fetchers: {},
socket: null, socket: null,
chatDisabled: false chatDisabled: false,
followRequests: []
}, },
mutations: { mutations: {
setBackendInteractor (state, backendInteractor) { setBackendInteractor (state, backendInteractor) {
@ -24,6 +25,9 @@ const api = {
}, },
setChatDisabled (state, value) { setChatDisabled (state, value) {
state.chatDisabled = value state.chatDisabled = value
},
setFollowRequests (state, value) {
state.followRequests = value
} }
}, },
actions: { actions: {
@ -57,6 +61,10 @@ const api = {
}, },
disableChat (store) { disableChat (store) {
store.commit('setChatDisabled', true) store.commit('setChatDisabled', true)
},
removeFollowRequest (store, request) {
let requests = store.state.followRequests.filter((it) => it !== request)
store.commit('setFollowRequests', requests)
} }
} }
} }