Skip to content

Commit 8b2d7e3

Browse files
authored
perf: message list performance (#3060)
* perf: cut MessageList rerenders in half * fix: improper conflicts merging * fix: make change android specific * perf: make sure keyboard ctx does not recreate on every render * perf: optimize prop for messagelist * perf: skip reacting to own ws events if optimistic update happened * perf: optimize FlatList props * fix: message reactivity regression and stabilize renderItem * chore: extract stable cb * chore: add jsdoc * perf: optimize message list creation * chore: cleanup * fix: change set to useMemo * fix: add static value for default case too and revert testing change
1 parent 6cca07d commit 8b2d7e3

File tree

11 files changed

+1142
-985
lines changed

11 files changed

+1142
-985
lines changed

examples/SampleApp/src/screens/ChannelScreen.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React, { useCallback, useEffect, useState } from 'react';
22
import type { Channel as StreamChatChannel } from 'stream-chat';
33
import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native';
44
import {
@@ -142,6 +142,14 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
142142
setSelectedThread(undefined);
143143
});
144144

145+
const onThreadSelect = useCallback((thread) => {
146+
setSelectedThread(thread);
147+
navigation.navigate('ThreadScreen', {
148+
channel,
149+
thread,
150+
});
151+
}, [channel, navigation]);
152+
145153
if (!channel || !chatClient) {
146154
return null;
147155
}
@@ -161,13 +169,7 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
161169
>
162170
<ChannelHeader channel={channel} />
163171
<MessageList<StreamChatGenerics>
164-
onThreadSelect={(thread) => {
165-
setSelectedThread(thread);
166-
navigation.navigate('ThreadScreen', {
167-
channel,
168-
thread,
169-
});
170-
}}
172+
onThreadSelect={onThreadSelect}
171173
/>
172174
<AITypingIndicatorView channel={channel} />
173175
<MessageInput />

0 commit comments

Comments
 (0)