diff --git a/src/screens/SearchScreen.tsx b/src/screens/SearchScreen.tsx index 9c37096..9bff47e 100644 --- a/src/screens/SearchScreen.tsx +++ b/src/screens/SearchScreen.tsx @@ -130,11 +130,14 @@ const SearchScreen = () => { const catalogSnapPoints = useMemo(() => ['50%'], []); const genreSnapPoints = useMemo(() => ['50%'], []); - // Scroll to top handler const scrollToTop = useCallback(() => { scrollViewRef.current?.scrollTo({ y: 0, animated: true }); }, []); + const handleHeaderPress = useCallback(() => { + scrollViewRef.current?.scrollTo({ y: 0, animated: true }); + }, []); + useScrollToTop('Search', scrollToTop); useEffect(() => { @@ -144,6 +147,36 @@ const SearchScreen = () => { }; }, []); + // NEW: Add focus event listener for when Search tab is pressed while already on Search screen + useEffect(() => { + const focusSubscription = DeviceEventEmitter.addListener( + 'FOCUS_SEARCH_INPUT', + () => { + console.log('Search tab pressed while on Search screen - focusing input'); + + // Clear any search results to show a fresh state + if (query.length === 0) { + setResults({ byAddon: [], allResults: [] }); + setSearched(false); + setShowRecent(true); + loadRecentSearches(); + } + + // Focus the input after a small delay + setTimeout(() => { + if (inputRef.current && isMounted.current) { + console.log('Focusing search input'); + inputRef.current.focus(); + } + }, 100); + } + ); + + return () => { + focusSubscription.remove(); + }; + }, [query]); + const handleShowMore = () => { if (pendingDiscoverResults.length === 0) return; @@ -906,10 +939,10 @@ const SearchScreen = () => { isGrid && styles.discoverGridItem ]} onPress={() => { - navigation.navigate('Metadata', { - id: item.id, + navigation.navigate('Metadata', { + id: item.id, type: item.type, - addonId: item.addonId + addonId: item.addonId }); }} onLongPress={() => { @@ -1147,60 +1180,67 @@ const SearchScreen = () => { /> {/* ScreenHeader Component */} - - {/* Search Bar */} - - + + {/* Search Bar */} + - - - {query.length > 0 && ( - - - - )} + + + + {query.length > 0 && ( + + + + )} + - - + + {/* Content Container */}