|
1 | | -import React, { useCallback, useEffect, useRef, useState } from 'react'; |
| 1 | +import React, { useCallback, useEffect, useState } from 'react'; |
2 | 2 | import type { LocalMessage, Channel as StreamChatChannel } from 'stream-chat'; |
3 | 3 | import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native'; |
4 | 4 | import { |
@@ -130,6 +130,7 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({ |
130 | 130 | } = useTheme(); |
131 | 131 | const { t } = useTranslationContext(); |
132 | 132 | const { setThread } = useStreamChatContext(); |
| 133 | + const [modalVisible, setModalVisible] = useState(false); |
133 | 134 | const [selectedMessage, setSelectedMessage] = useState<LocalMessage | undefined>(undefined); |
134 | 135 |
|
135 | 136 | const [channel, setChannel] = useState<StreamChatChannel | undefined>(channelFromProp); |
@@ -186,15 +187,14 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({ |
186 | 187 | [channel, navigation, setThread], |
187 | 188 | ); |
188 | 189 |
|
189 | | - const messageInfoBottomSheetRef = useRef<BottomSheet>(null); |
| 190 | + const handleMessageInfo = useCallback((message: LocalMessage) => { |
| 191 | + setSelectedMessage(message); |
| 192 | + setModalVisible(true); |
| 193 | + }, []); |
190 | 194 |
|
191 | | - const handleMessageInfo = useCallback( |
192 | | - (message: LocalMessage) => { |
193 | | - setSelectedMessage(message); |
194 | | - messageInfoBottomSheetRef.current?.snapToIndex(1); |
195 | | - }, |
196 | | - [messageInfoBottomSheetRef], |
197 | | - ); |
| 195 | + const handleMessageInfoClose = useCallback(() => { |
| 196 | + setModalVisible(false); |
| 197 | + }, []); |
198 | 198 |
|
199 | 199 | const messageActions = useCallback( |
200 | 200 | (params: MessageActionsParams) => { |
@@ -249,7 +249,13 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({ |
249 | 249 | )} |
250 | 250 | <AITypingIndicatorView channel={channel} /> |
251 | 251 | <MessageInput /> |
252 | | - <MessageInfoBottomSheet message={selectedMessage} ref={messageInfoBottomSheetRef} /> |
| 252 | + {modalVisible && ( |
| 253 | + <MessageInfoBottomSheet |
| 254 | + visible={modalVisible} |
| 255 | + message={selectedMessage} |
| 256 | + onClose={handleMessageInfoClose} |
| 257 | + /> |
| 258 | + )} |
253 | 259 | </Channel> |
254 | 260 | </View> |
255 | 261 | ); |
|
0 commit comments