From 8bdde9628da42405dc7f3c55539d3709e1a21eff Mon Sep 17 00:00:00 2001 From: Divyanshu Agrawal Date: Wed, 1 Jul 2020 21:24:19 +0530 Subject: [PATCH] outbox: Show outbox messages when 'caughtUp.newer' is false. Currently, we return a NULL_ARRAY in outboxMessagesForNarrow when 'caughtUp.newer' is false - but there is no reason to do this. We should always show outbox messages regardless of the caughtUp state because there can always be unsent messages for various reasons. So, remove the conditional that causes this. Fixes: #3800. --- src/chat/__tests__/narrowsSelectors-test.js | 4 ++-- src/chat/narrowsSelectors.js | 3 --- src/topics/__tests__/topicsSelectors-test.js | 2 ++ 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/chat/__tests__/narrowsSelectors-test.js b/src/chat/__tests__/narrowsSelectors-test.js index 775c953c00b..30bf9520055 100644 --- a/src/chat/__tests__/narrowsSelectors-test.js +++ b/src/chat/__tests__/narrowsSelectors-test.js @@ -75,7 +75,7 @@ describe('getMessagesForNarrow', () => { expect(anchor).toEqual(expectedState); }); - test('do not combine messages and outbox if not caught up', () => { + test('combine messages and outbox if not caught up', () => { const state = deepFreeze({ narrows: { [HOME_NARROW_STR]: [123], @@ -94,7 +94,7 @@ describe('getMessagesForNarrow', () => { ], }); - const expectedState = deepFreeze([state.messages[123]]); + const expectedState = deepFreeze([state.messages[123], ...state.outbox]); const anchor = getMessagesForNarrow(state, HOME_NARROW); diff --git a/src/chat/narrowsSelectors.js b/src/chat/narrowsSelectors.js index 2d13ce3e945..6a7295bdce6 100644 --- a/src/chat/narrowsSelectors.js +++ b/src/chat/narrowsSelectors.js @@ -36,9 +36,6 @@ export const outboxMessagesForNarrow: Selector = createSelecto getCaughtUpForNarrow, state => getOutbox(state), (narrow, caughtUp, outboxMessages) => { - if (!caughtUp.newer) { - return NULL_ARRAY; - } const filtered = outboxMessages.filter(item => narrowContains(narrow, item.narrow)); return isEqual(filtered, outboxMessages) ? outboxMessages : filtered; }, diff --git a/src/topics/__tests__/topicsSelectors-test.js b/src/topics/__tests__/topicsSelectors-test.js index 1c7b3e0ca22..d682e7f7a0f 100644 --- a/src/topics/__tests__/topicsSelectors-test.js +++ b/src/topics/__tests__/topicsSelectors-test.js @@ -30,6 +30,7 @@ describe('getLastMessageTopic', () => { test('when no messages in narrow return an empty string', () => { const state = deepFreeze({ narrows: {}, + outbox: [], }); const topic = getLastMessageTopic(state, HOME_NARROW); @@ -50,6 +51,7 @@ describe('getLastMessageTopic', () => { 1: { id: 1 }, 2: { id: 2, subject: 'some topic' }, }, + outbox: [], }); const topic = getLastMessageTopic(state, narrow);