import React, { useState, useEffect } from 'react'; import { View, Text, TouchableOpacity, ScrollView, } from 'react-native'; import { getStyles } from './providerDetailsScreen.styles'; import { Header, CatalogItemRow } from '@components'; import { useAppTheme } from '@theme'; import { useAppDispatch, useAppSelector } from '../../../hooks/useAppDispatch'; import { addItem } from '../../../store/cartSlice'; import { deliveryService } from '../../../services/deliveryService'; import { CatalogItem } from '../../../interfaces'; const CATEGORIES = ['Pizza', 'Sides', 'Beverages']; export const ProviderDetailsScreen: React.FC = () => { const { colors } = useAppTheme(); const styles = getStyles(colors); const dispatch = useAppDispatch(); const cartItems = useAppSelector((state) => state.cart.items); const [catalog, setCatalog] = useState([]); const [activeCategory, setActiveCategory] = useState(CATEGORIES[0]); useEffect(() => { deliveryService.getProviderCatalog('p1').then(setCatalog); }, []); const filteredItems = catalog.filter((item) => item.category === activeCategory); const getItemQuantity = (itemId: string) => { const item = cartItems.find((i) => i.item.id === itemId); return item ? item.quantity : 0; }; const totalItems = cartItems.reduce((sum, i) => sum + i.quantity, 0); const totalPrice = cartItems.reduce( (sum, i) => sum + i.item.price * i.quantity, 0, ); return (
{}} /> 🍕 Pizza Planet ⭐ 4.5 🕐 25 min 🍕 Italian {CATEGORIES.map((cat) => ( setActiveCategory(cat)} activeOpacity={0.7} > {cat} ))} {filteredItems.map((item) => ( dispatch( addItem({ providerId: 'p1', providerName: 'Pizza Planet', item, }), ) } onRemove={() => {}} /> ))} {totalItems > 0 && ( {totalItems} Items | ₹{totalPrice} View Cart )} ); };