forked from AkkomaGang/akkoma-fe
refactor pin/unpin status logic
This commit is contained in:
parent
e8abe1273b
commit
ce1d19136d
2 changed files with 13 additions and 21 deletions
|
@ -24,19 +24,15 @@ const ExtraButtons = {
|
||||||
},
|
},
|
||||||
pinStatus () {
|
pinStatus () {
|
||||||
this.refreshPopper()
|
this.refreshPopper()
|
||||||
this.$store.state.api.backendInteractor.pinOwnStatus(this.status.id).then((status) => {
|
this.$store.dispatch('pinStatus', this.status.id).then((status) => {
|
||||||
if (status.error) {
|
if (status.error) {
|
||||||
this.$emit('onError', status.error)
|
this.$emit('onError', status.error)
|
||||||
} else {
|
|
||||||
this.$store.dispatch('updatePinned', status)
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
unpinStatus () {
|
unpinStatus () {
|
||||||
this.refreshPopper()
|
this.refreshPopper()
|
||||||
this.$store.state.api.backendInteractor.unpinOwnStatus(this.status.id).then((status) => {
|
this.$store.dispatch('unpinStatus', this.status.id)
|
||||||
this.$store.dispatch('updatePinned', status)
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
refreshPopper () {
|
refreshPopper () {
|
||||||
this.showPopper = false
|
this.showPopper = false
|
||||||
|
|
|
@ -545,21 +545,17 @@ const statuses = {
|
||||||
rootState.api.backendInteractor.fetchPinnedStatuses(userId)
|
rootState.api.backendInteractor.fetchPinnedStatuses(userId)
|
||||||
.then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId }))
|
.then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId }))
|
||||||
},
|
},
|
||||||
updatePinned ({ rootState, commit }, status) {
|
pinStatus ({ rootState, commit }, statusId) {
|
||||||
|
return rootState.api.backendInteractor.pinOwnStatus(statusId).then((status) => {
|
||||||
|
if (!status.error) {
|
||||||
commit('setPinned', { status })
|
commit('setPinned', { status })
|
||||||
if (status.pinned) {
|
|
||||||
const statusObj = rootState.statuses.allStatusesObject[status.id]
|
|
||||||
const user = rootState.users.currentUser
|
|
||||||
commit('addNewStatuses', {
|
|
||||||
statuses: [statusObj],
|
|
||||||
showImmediately: true,
|
|
||||||
timeline: 'pinned',
|
|
||||||
user,
|
|
||||||
userId: user.id
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
commit('removeStatus', { timeline: 'pinned', statusId: status.id })
|
|
||||||
}
|
}
|
||||||
|
return status
|
||||||
|
})
|
||||||
|
},
|
||||||
|
unpinStatus ({ rootState, commit }, statusId) {
|
||||||
|
rootState.api.backendInteractor.unpinOwnStatus(statusId)
|
||||||
|
.then((status) => commit('setPinned', { status }))
|
||||||
},
|
},
|
||||||
retweet ({ rootState, commit }, status) {
|
retweet ({ rootState, commit }, status) {
|
||||||
// Optimistic retweeting...
|
// Optimistic retweeting...
|
||||||
|
|
Loading…
Reference in a new issue