diff --git a/native/chat/chat-thread-list.react.js b/native/chat/chat-thread-list.react.js --- a/native/chat/chat-thread-list.react.js +++ b/native/chat/chat-thread-list.react.js @@ -134,6 +134,11 @@ +renderSearch: ( additionalProps?: $Shape>, ) => React.Node, + +onPressItem: ( + threadInfo: ThreadInfo, + pendingPersonalThreadUserInfo?: UserInfo, + ) => void, + +onPressSeeMoreSidebars: (threadInfo: ThreadInfo) => void, }; class ChatThreadList extends React.PureComponent { @@ -234,10 +239,6 @@ } }; - searchInputRef = (searchInput: ?React.ElementRef) => { - this.searchInput = searchInput; - }; - renderItem = (row: { item: Item, ... }) => { const item = row.item; if (item.type === 'search') { @@ -254,8 +255,8 @@ return ( @@ -376,28 +377,6 @@ flatListRef = (flatList: ?FlatList) => { this.flatList = flatList; }; - - onPressItem = ( - threadInfo: ThreadInfo, - pendingPersonalThreadUserInfo?: UserInfo, - ) => { - this.props.onChangeSearchText(''); - if (this.searchInput) { - this.searchInput.blur(); - } - this.props.navigateToThread({ threadInfo, pendingPersonalThreadUserInfo }); - }; - - onPressSeeMoreSidebars = (threadInfo: ThreadInfo) => { - this.props.onChangeSearchText(''); - if (this.searchInput) { - this.searchInput.blur(); - } - this.props.navigation.navigate<'SidebarListModal'>({ - name: SidebarListModalRouteName, - params: { threadInfo }, - }); - }; } const unboundStyles = { @@ -632,6 +611,31 @@ ], ); + const onPressItem = React.useCallback( + (threadInfo: ThreadInfo, pendingPersonalThreadUserInfo?: UserInfo) => { + onChangeSearchText(''); + if (searchInputRef.current) { + searchInputRef.current.blur(); + } + navigateToThread({ threadInfo, pendingPersonalThreadUserInfo }); + }, + [navigateToThread, onChangeSearchText], + ); + + const onPressSeeMoreSidebars = React.useCallback( + (threadInfo: ThreadInfo) => { + onChangeSearchText(''); + if (searchInputRef.current) { + this.searchInputRef.current.blur(); + } + navigation.navigate<'SidebarListModal'>({ + name: SidebarListModalRouteName, + params: { threadInfo }, + }); + }, + [navigation, onChangeSearchText], + ); + return ( ); }