1- import React , { useCallback , useEffect , useRef , useState } from 'react' ;
1+ import React , { useCallback , useEffect , useMemo , useRef , useState } from 'react' ;
22
33import type { FlatList } from 'react-native-gesture-handler' ;
44
@@ -273,7 +273,7 @@ export const ChannelList = <
273273
274274 const [ forceUpdate , setForceUpdate ] = useState ( 0 ) ;
275275 const { client, enableOfflineSupport } = useChatContext < StreamChatGenerics > ( ) ;
276- const createChannelManager = useCallback (
276+ const channelManager = useMemo (
277277 ( ) =>
278278 client . createChannelManager ( {
279279 eventHandlerOverrides : {
@@ -291,33 +291,11 @@ export const ChannelList = <
291291 } ,
292292 options : { lockChannelOrder } ,
293293 } ) ,
294- [
295- client ,
296- lockChannelOrder ,
297- onAddedToChannel ,
298- onChannelDeleted ,
299- onChannelHidden ,
300- onChannelTruncated ,
301- onChannelUpdated ,
302- onChannelVisible ,
303- onNewMessage ,
304- onNewMessageNotification ,
305- onRemovedFromChannel ,
306- ] ,
307- ) ;
308- const clientManagerRef = useRef ( createChannelManager ) ;
309- const [ channelManager , setChannelManager ] = useState < ChannelManager < StreamChatGenerics > > (
310- createChannelManager ( ) ,
294+ // FIXME: Move the setting of the overrides down to the LLC too
295+ // eslint-disable-next-line react-hooks/exhaustive-deps
296+ [ client , lockChannelOrder ] ,
311297 ) ;
312298
313- useEffect ( ( ) => {
314- if ( clientManagerRef . current !== createChannelManager ) {
315- const manager = createChannelManager ( ) ;
316- setChannelManager ( manager ) ;
317- clientManagerRef . current = createChannelManager ;
318- }
319- } , [ createChannelManager ] ) ;
320-
321299 useEffect ( ( ) => {
322300 channelManager . registerSubscriptions ( ) ;
323301
0 commit comments