Skip to content

Commit 1a02880

Browse files
committed
fix blinking GroupChannel on switching to another
1 parent 8a4263a commit 1a02880

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

src/modules/GroupChannel/context/GroupChannelProvider.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -298,14 +298,14 @@ const GroupChannelManager :React.FC<React.PropsWithChildren<GroupChannelProvider
298298
});
299299
}, [
300300
channelUrl,
301-
state.currentChannel,
302-
messageDataSource.initialized,
303-
messageDataSource.loading,
304-
messageDataSource.messages,
301+
state.currentChannel?.serialize(),
305302
configurations,
306303
scrollState,
307304
eventHandlers,
308305
renderProps,
306+
messageDataSource.initialized,
307+
messageDataSource.loading,
308+
messageDataSource.messages.map(it => it.serialize()),
309309
]);
310310

311311
return children;

src/modules/GroupChannel/context/__tests__/GroupChannelProvider.spec.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const mockLogger = { warning: jest.fn() };
88
const mockChannel = {
99
url: 'test-channel',
1010
members: [{ userId: '1', nickname: 'user1' }],
11+
serialize: () => JSON.stringify(this),
1112
};
1213

1314
const mockGetChannel = jest.fn().mockResolvedValue(mockChannel);
@@ -17,6 +18,7 @@ const mockMessageCollection = {
1718
initialize: jest.fn().mockResolvedValue(null),
1819
loadPrevious: jest.fn(),
1920
loadNext: jest.fn(),
21+
messages: [],
2022
};
2123
jest.mock('../../../../lib/Sendbird/context/hooks/useSendbird', () => ({
2224
__esModule: true,

src/modules/GroupChannel/context/__tests__/useGroupChannel.spec.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const mockLogger = { warning: jest.fn() };
1010
const mockChannel = {
1111
url: 'test-channel',
1212
members: [{ userId: '1', nickname: 'user1' }],
13+
serialize: () => JSON.stringify(this),
1314
};
1415

1516
const mockGetChannel = jest.fn().mockResolvedValue(mockChannel);
@@ -19,6 +20,7 @@ const mockMessageCollection = {
1920
initialize: jest.fn().mockResolvedValue(null),
2021
loadPrevious: jest.fn(),
2122
loadNext: jest.fn(),
23+
messages: [],
2224
};
2325
const mockMarkAsReadScheduler = { push: jest.fn() };
2426
jest.mock('../../../../lib/Sendbird/context/hooks/useSendbird', () => ({
@@ -276,7 +278,7 @@ describe('useGroupChannel', () => {
276278
});
277279
});
278280
it('scroll to message when message exists', async () => {
279-
const mockMessage = { messageId: 123, createdAt: 1000 };
281+
const mockMessage = { messageId: 123, createdAt: 1000, serialize: () => JSON.stringify(this) };
280282
const mockStore = createMockStore({
281283
messages: [mockMessage],
282284
scrollRef: { current: document.createElement('div') },

0 commit comments

Comments
 (0)