From a1c50c3fc1a8613c0c6dec9d366808a32b09bda4 Mon Sep 17 00:00:00 2001 From: Wyatt Benno Date: Fri, 21 Jun 2019 10:31:00 +0900 Subject: [PATCH 1/2] fix for #553 --- src/modules/statuses.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/statuses.js b/src/modules/statuses.js index 5f09b8f57a..4fcfcdd2ae 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -146,7 +146,8 @@ const removeStatusFromGlobalStorage = (state, status) => { } } -const addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {}, noIdUpdate = false, userId }) => { +const addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {}, + noIdUpdate = false, userId, isPinned = false }) => { // Sanity check if (!isArray(statuses)) { return false @@ -160,10 +161,10 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0 const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0 - if (!noIdUpdate && newer) { + if (!noIdUpdate && newer && !isPinned) { timelineObject.maxId = maxNew } - if (!noIdUpdate && older) { + if (!noIdUpdate && older && !isPinned) { timelineObject.minId = minNew } @@ -504,8 +505,8 @@ export const mutations = { const statuses = { state: defaultState(), actions: { - addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) { - commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId }) + addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, isPinned = false }) { + commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, isPinned }) }, addNewNotifications ({ rootState, commit, dispatch, rootGetters }, { notifications, older }) { commit('addNewNotifications', { visibleNotificationTypes: visibleNotificationTypes(rootState), dispatch, notifications, older, rootGetters }) @@ -543,7 +544,7 @@ const statuses = { }, fetchPinnedStatuses ({ rootState, dispatch }, userId) { rootState.api.backendInteractor.fetchPinnedStatuses(userId) - .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true })) + .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, isPinned: true })) }, pinStatus ({ rootState, commit }, statusId) { return rootState.api.backendInteractor.pinOwnStatus(statusId) From 7a5d06a6cf02e9df82d5479e27a86c26507ace58 Mon Sep 17 00:00:00 2001 From: Wyatt Benno Date: Mon, 24 Jun 2019 12:01:13 +0900 Subject: [PATCH 2/2] change isPinned to noIdUpdate --- src/modules/statuses.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/statuses.js b/src/modules/statuses.js index 4fcfcdd2ae..262ff80adb 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -147,7 +147,7 @@ const removeStatusFromGlobalStorage = (state, status) => { } const addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {}, - noIdUpdate = false, userId, isPinned = false }) => { + noIdUpdate = false, userId }) => { // Sanity check if (!isArray(statuses)) { return false @@ -161,10 +161,10 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0 const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0 - if (!noIdUpdate && newer && !isPinned) { + if (!noIdUpdate && newer) { timelineObject.maxId = maxNew } - if (!noIdUpdate && older && !isPinned) { + if (!noIdUpdate && older) { timelineObject.minId = minNew } @@ -505,8 +505,8 @@ export const mutations = { const statuses = { state: defaultState(), actions: { - addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, isPinned = false }) { - commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, isPinned }) + addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) { + commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId }) }, addNewNotifications ({ rootState, commit, dispatch, rootGetters }, { notifications, older }) { commit('addNewNotifications', { visibleNotificationTypes: visibleNotificationTypes(rootState), dispatch, notifications, older, rootGetters }) @@ -544,7 +544,7 @@ const statuses = { }, fetchPinnedStatuses ({ rootState, dispatch }, userId) { rootState.api.backendInteractor.fetchPinnedStatuses(userId) - .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, isPinned: true })) + .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true })) }, pinStatus ({ rootState, commit }, statusId) { return rootState.api.backendInteractor.pinOwnStatus(statusId)