import React, { useState, useEffect } from 'react'; import { View, Text, FlatList, TouchableOpacity, ScrollView, } from 'react-native'; import { useNavigation, useRoute, RouteProp } from '@react-navigation/native'; import { StackNavigationProp } from '@react-navigation/stack'; import { getStyles } from './providerListScreen.styles'; import { ProviderCard, Header } from '@components'; import { useAppTheme } from '@theme'; import { getProvidersApi } from '../../../api/deliveryApi'; import { Provider } from '../../../interfaces'; import { AppStackParamList } from '../../../navigation/appStack'; const FILTERS = ['Filters', 'Rating 4.0+', 'Fast Delivery']; type ProviderListNavProp = StackNavigationProp; type ProviderListRouteProp = RouteProp; export const ProviderListScreen: React.FC = () => { const { colors } = useAppTheme(); const styles = getStyles(colors); const navigation = useNavigation(); const route = useRoute(); const category = route.params?.category; const [providers, setProviders] = useState([]); const [activeFilter, setActiveFilter] = useState(null); useEffect(() => { // If a category was passed, we can filter or search by it, but for mock data we fetch all getProvidersApi().then(setProviders); }, [category]); return (
navigation.goBack()} /> {FILTERS.map((filter) => ( setActiveFilter(activeFilter === filter ? null : filter)} activeOpacity={0.7} > {filter} ))} p.tag === category) : providers} keyExtractor={(item) => item.id} renderItem={({ item }) => ( navigation.navigate('ProviderDetailsScreen', { providerId: item.id, providerName: item.name, }) } /> )} contentContainerStyle={styles.list} /> ); };