diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-08-25 04:29:00 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2022-08-25 05:16:43 +0200 |
commit | 448ed92f76981f40d6faf48ed9d798ee716a04b2 (patch) | |
tree | ab558edfd645052e92881137fdd95a66c1e4eb03 /app/javascript/flavours/glitch/reducers | |
parent | 3c80b62045b59f197ea5003357c03b16c1b1bac7 (diff) |
[Glitch] Fix quickly switching notification filters resulting in empty or incorrect list
Port afb8bc97d08c2738da7873ca42fea68e4672d65b to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com>
Diffstat (limited to 'app/javascript/flavours/glitch/reducers')
-rw-r--r-- | app/javascript/flavours/glitch/reducers/notifications.js | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/app/javascript/flavours/glitch/reducers/notifications.js b/app/javascript/flavours/glitch/reducers/notifications.js index 1e61526b1..51d7886d7 100644 --- a/app/javascript/flavours/glitch/reducers/notifications.js +++ b/app/javascript/flavours/glitch/reducers/notifications.js @@ -43,7 +43,7 @@ const initialState = ImmutableMap({ unread: 0, lastReadId: '0', readMarkerId: '0', - isLoading: false, + isLoading: 0, cleaningMode: false, isTabVisible: true, browserSupport: false, @@ -121,7 +121,7 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece } } - mutable.set('isLoading', false); + mutable.update('isLoading', (nbLoading) => nbLoading - 1); }); }; @@ -249,10 +249,10 @@ export default function notifications(state = initialState, action) { return state.update('items', list => state.get('pendingItems').concat(list.take(40))).set('pendingItems', ImmutableList()).set('unread', 0); case NOTIFICATIONS_EXPAND_REQUEST: case NOTIFICATIONS_DELETE_MARKED_REQUEST: - return state.set('isLoading', true); + return state.set('isLoading', (nbLoading) => nbLoading + 1); case NOTIFICATIONS_DELETE_MARKED_FAIL: case NOTIFICATIONS_EXPAND_FAIL: - return state.set('isLoading', false); + return state.set('isLoading', (nbLoading) => nbLoading - 1); case NOTIFICATIONS_FILTER_SET: return state.set('items', ImmutableList()).set('hasMore', true); case NOTIFICATIONS_SCROLL_TOP: @@ -287,7 +287,7 @@ export default function notifications(state = initialState, action) { return markForDelete(state, action.id, action.yes); case NOTIFICATIONS_DELETE_MARKED_SUCCESS: - return deleteMarkedNotifs(state).set('isLoading', false); + return deleteMarkedNotifs(state).set('isLoading', (nbLoading) => nbLoading - 1); case NOTIFICATIONS_ENTER_CLEARING_MODE: st = state.set('cleaningMode', action.yes); |