Only update read marker when giving focus/mounting column
This commit is contained in:
@@ -39,6 +39,7 @@ const initialState = ImmutableMap({
|
||||
mounted: 0,
|
||||
unread: 0,
|
||||
lastReadId: '0',
|
||||
readMarkerId: '0',
|
||||
isLoading: false,
|
||||
cleaningMode: false,
|
||||
isTabVisible: true,
|
||||
@@ -183,6 +184,7 @@ const deleteMarkedNotifs = (state) => {
|
||||
const updateMounted = (state) => {
|
||||
state = state.update('mounted', count => count + 1);
|
||||
if (!shouldCountUnreadNotifications(state)) {
|
||||
state = state.set('readMarkerId', state.get('lastReadId'));
|
||||
state = clearUnread(state);
|
||||
}
|
||||
return state;
|
||||
@@ -191,6 +193,7 @@ const updateMounted = (state) => {
|
||||
const updateVisibility = (state, visibility) => {
|
||||
state = state.set('isTabVisible', visibility);
|
||||
if (!shouldCountUnreadNotifications(state)) {
|
||||
state = state.set('readMarkerId', state.get('lastReadId'));
|
||||
state = clearUnread(state);
|
||||
}
|
||||
return state;
|
||||
@@ -212,6 +215,10 @@ const recountUnread = (state, last_read_id) => {
|
||||
mutable.set('lastReadId', last_read_id);
|
||||
}
|
||||
|
||||
if (compareId(last_read_id, mutable.get('readMarkerId')) > 0) {
|
||||
mutable.set('readMarkerId', last_read_id);
|
||||
}
|
||||
|
||||
if (state.get('unread') > 0 || shouldCountUnreadNotifications(state)) {
|
||||
mutable.set('unread', mutable.get('pendingItems').count(item => item !== null) + mutable.get('items').count(item => item && compareId(item.get('id'), last_read_id) > 0));
|
||||
}
|
||||
|
Reference in New Issue
Block a user