Fix unread notification marker not updating when mounting column (#14954)
This commit is contained in:
parent
7d985f2aac
commit
dac3e362fd
@ -151,7 +151,7 @@ const deleteByStatus = (state, statusId) => {
|
|||||||
|
|
||||||
const updateMounted = (state) => {
|
const updateMounted = (state) => {
|
||||||
state = state.update('mounted', count => count + 1);
|
state = state.update('mounted', count => count + 1);
|
||||||
if (!shouldCountUnreadNotifications(state)) {
|
if (!shouldCountUnreadNotifications(state, state.get('mounted') === 1)) {
|
||||||
state = state.set('readMarkerId', state.get('lastReadId'));
|
state = state.set('readMarkerId', state.get('lastReadId'));
|
||||||
state = clearUnread(state);
|
state = clearUnread(state);
|
||||||
}
|
}
|
||||||
@ -167,14 +167,14 @@ const updateVisibility = (state, visibility) => {
|
|||||||
return state;
|
return state;
|
||||||
};
|
};
|
||||||
|
|
||||||
const shouldCountUnreadNotifications = (state) => {
|
const shouldCountUnreadNotifications = (state, ignoreScroll = false) => {
|
||||||
const isTabVisible = state.get('isTabVisible');
|
const isTabVisible = state.get('isTabVisible');
|
||||||
const isOnTop = state.get('top');
|
const isOnTop = state.get('top');
|
||||||
const isMounted = state.get('mounted') > 0;
|
const isMounted = state.get('mounted') > 0;
|
||||||
const lastReadId = state.get('lastReadId');
|
const lastReadId = state.get('lastReadId');
|
||||||
const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (!state.get('items').isEmpty() && compareId(state.get('items').last().get('id'), lastReadId) <= 0);
|
const lastItemReached = !state.get('hasMore') || lastReadId === '0' || (!state.get('items').isEmpty() && compareId(state.get('items').last().get('id'), lastReadId) <= 0);
|
||||||
|
|
||||||
return !(isTabVisible && isOnTop && isMounted && lastItemReached);
|
return !(isTabVisible && (ignoreScroll || isOnTop) && isMounted && lastItemReached);
|
||||||
};
|
};
|
||||||
|
|
||||||
const recountUnread = (state, last_read_id) => {
|
const recountUnread = (state, last_read_id) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user