}));
};
+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:
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,