Commit ce1d1913 authored by Tae Hoon's avatar Tae Hoon

refactor pin/unpin status logic

parent e8abe127
......@@ -24,19 +24,15 @@ const ExtraButtons = {
},
pinStatus () {
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) {
this.$emit('onError', status.error)
} else {
this.$store.dispatch('updatePinned', status)
}
})
},
unpinStatus () {
this.refreshPopper()
this.$store.state.api.backendInteractor.unpinOwnStatus(this.status.id).then((status) => {
this.$store.dispatch('updatePinned', status)
})
this.$store.dispatch('unpinStatus', this.status.id)
},
refreshPopper () {
this.showPopper = false
......
......@@ -545,21 +545,17 @@ const statuses = {
rootState.api.backendInteractor.fetchPinnedStatuses(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 })
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) {
// Optimistic retweeting...
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment