From a0626e8f8acad21ebac00728e76daea2f93b4b0e Mon Sep 17 00:00:00 2001 From: tapframe Date: Wed, 17 Sep 2025 13:12:09 +0530 Subject: [PATCH] CastModal Back gesture fix --- src/screens/MetadataScreen.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/screens/MetadataScreen.tsx b/src/screens/MetadataScreen.tsx index 6457727..01e7994 100644 --- a/src/screens/MetadataScreen.tsx +++ b/src/screens/MetadataScreen.tsx @@ -8,6 +8,7 @@ import { Dimensions, TouchableOpacity, InteractionManager, + BackHandler, } from 'react-native'; import { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context'; import { useRoute, useNavigation, useFocusEffect } from '@react-navigation/native'; @@ -206,7 +207,7 @@ const MetadataScreen: React.FC = () => { useFocusEffect( useCallback(() => { setIsScreenFocused(true); - + // Delay secondary data loading until interactions are complete const timer = setTimeout(() => { if (!interactionComplete.current) { @@ -224,6 +225,21 @@ const MetadataScreen: React.FC = () => { }, []) ); + // Handle back button press - close modal if open, otherwise navigate back + useFocusEffect( + useCallback(() => { + const backHandler = BackHandler.addEventListener('hardwareBackPress', () => { + if (showCastModal) { + setShowCastModal(false); + return true; // Prevent default back behavior + } + return false; // Allow default back behavior (navigate back) + }); + + return () => backHandler.remove(); + }, [showCastModal]) + ); + // Optimize secondary data loading useEffect(() => { if (metadata && isScreenFocused && !shouldLoadSecondaryData) {