aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2018-08-27 23:15:58 +0300
committerHenry Jameson <me@hjkos.com>2018-08-27 23:15:58 +0300
commit226849b26ec0d6cbb752a1e4ae52577ccb00bd84 (patch)
treeb33dbc006a016e2d936d2ec46e3e399f0e3674f2 /src
parentfd604dfd2a8110ea62028d399917937b4535ea51 (diff)
Added logic to process reply to favorite request and update likes counter
accordingly. Should fix some of cases of doubled likes and likes counter not decrementing.
Diffstat (limited to 'src')
-rw-r--r--src/modules/statuses.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index ff2cb098..0dd88266 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -225,7 +225,8 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
},
'favorite': (favorite) => {
// Only update if this is a new favorite.
- if (!state.favorites.has(favorite.id)) {
+ // Ignore our own favorites because we get info about likes as response to like request
+ if (!state.favorites.has(favorite.id) && user.id !== favorite.user.id) {
state.favorites.add(favorite.id)
favoriteStatus(favorite)
}
@@ -347,6 +348,11 @@ export const mutations = {
const newStatus = state.allStatusesObject[status.id]
newStatus.favorited = value
},
+ setFavoritedConfirm (state, { status }) {
+ const newStatus = state.allStatusesObject[status.id]
+ newStatus.favorited = status.favorited
+ newStatus.fave_num = status.fave_num
+ },
setRetweeted (state, { status, value }) {
const newStatus = state.allStatusesObject[status.id]
newStatus.repeated = value
@@ -424,11 +430,31 @@ const statuses = {
// Optimistic favoriting...
commit('setFavorited', { status, value: true })
apiService.favorite({ id: status.id, credentials: rootState.users.currentUser.credentials })
+ .then(response => {
+ if (response.ok) {
+ return response.json()
+ } else {
+ return {}
+ }
+ })
+ .then(status => {
+ commit('setFavoritedConfirm', { status })
+ })
},
unfavorite ({ rootState, commit }, status) {
// Optimistic favoriting...
commit('setFavorited', { status, value: false })
apiService.unfavorite({ id: status.id, credentials: rootState.users.currentUser.credentials })
+ .then(response => {
+ if (response.ok) {
+ return response.json()
+ } else {
+ return {}
+ }
+ })
+ .then(status => {
+ commit('setFavoritedConfirm', { status })
+ })
},
retweet ({ rootState, commit }, status) {
// Optimistic retweeting...