diff options
author | Starfall <us@starfall.systems> | 2022-04-26 10:41:24 -0500 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2022-04-26 10:41:24 -0500 |
commit | fd98fd86128a5cea302b8496b6c7d5464ec1958a (patch) | |
tree | f3e304a32bed75cb8ab6b1f38652192bff71c5f1 /app/javascript/flavours/glitch/reducers | |
parent | 8da73d2e57284c765b232bfc6842a7ac0f0a702b (diff) | |
parent | a481af15a9b2a7829c2a849906aa4b475ccdbd98 (diff) |
Merge remote-tracking branch 'glitch/main'
Diffstat (limited to 'app/javascript/flavours/glitch/reducers')
-rw-r--r-- | app/javascript/flavours/glitch/reducers/timelines.js | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js index 29e02a864..afd9d12cb 100644 --- a/app/javascript/flavours/glitch/reducers/timelines.js +++ b/app/javascript/flavours/glitch/reducers/timelines.js @@ -177,6 +177,17 @@ const updateTop = (state, timeline, top) => { })); }; +const reconnectTimeline = (state, usePendingItems) => { + if (state.get('online')) { + return state; + } + + return state.withMutations(mMap => { + mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items); + mMap.set('online', true); + }); +}; + export default function timelines(state = initialState, action) { switch(action.type) { case TIMELINE_LOAD_PENDING: @@ -202,7 +213,7 @@ export default function timelines(state = initialState, action) { case TIMELINE_SCROLL_TOP: return updateTop(state, action.timeline, action.top); case TIMELINE_CONNECT: - return state.update(action.timeline, initialTimeline, map => map.set('online', true)); + return state.update(action.timeline, initialTimeline, map => reconnectTimeline(map, action.usePendingItems)); case TIMELINE_DISCONNECT: return state.update( action.timeline, |