import React, { useState, useEffect } from 'react'; import { View, Text, FlatList, } from 'react-native'; import { useNavigation, CompositeNavigationProp } from '@react-navigation/native'; import { BottomTabNavigationProp } from '@react-navigation/bottom-tabs'; import { StackNavigationProp } from '@react-navigation/stack'; import { getStyles } from './searchScreen.styles'; import { SearchBar, ProviderCard } from '@components'; import { useAppTheme } from '@theme'; import { searchProvidersApi } from '../../../api/deliveryApi'; import { Provider } from '../../../interfaces'; import { AppStackParamList } from '../../../navigation/appStack'; import { MainTabParamList } from '../../../navigation/mainTabNavigator'; type NavProp = CompositeNavigationProp< BottomTabNavigationProp, StackNavigationProp >; export const SearchScreen: React.FC = () => { const { colors } = useAppTheme(); const styles = getStyles(colors); const navigation = useNavigation(); const [query, setQuery] = useState(''); const [results, setResults] = useState([]); useEffect(() => { if (query.trim().length > 0) { searchProvidersApi(query).then(setResults); } else { setResults([]); } }, [query]); return ( item.id} renderItem={({ item }) => ( navigation.navigate('ProviderDetailsScreen', { providerId: item.id, providerName: item.name, }) } /> )} ListEmptyComponent={ query.trim().length > 0 ? ( No results found ) : ( 🔍 Search for food, groceries, medicines... ) } contentContainerStyle={styles.list} /> ); };