forked from AkkomaGang/akkoma-fe
follow requests: refactor to properly leverage vuex
This commit is contained in:
parent
fd25f68741
commit
7389f07115
3 changed files with 23 additions and 8 deletions
src
|
@ -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) })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue