import React from 'react'; import { Link } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; import { selectCartItemById } from '../../redux/cart/selectors'; import { CartItem } from '../../redux/cart/types'; import { addItem } from '../../redux/cart/slice'; const typeNames = ['тонкое', 'традиционное']; type PizzaBlockProps = { id: string; title: string; price: number; imageUrl: string; sizes: number[]; types: number[]; rating: number; }; export const PizzaBlock: React.FC = ({ id, title, price, imageUrl, sizes, types, }) => { const dispatch = useDispatch(); const cartItem = useSelector(selectCartItemById(id)); const [activeType, setActiveType] = React.useState(0); const [activeSize, setActiveSize] = React.useState(0); const addedCount = cartItem ? cartItem.count : 0; const onClickAdd = () => { const item: CartItem = { id, title, price, imageUrl, type: typeNames[activeType], size: sizes[activeSize], count: 0, }; dispatch(addItem(item)); }; return (
Pizza

{title}

    {types.map((typeId) => (
  • setActiveType(typeId)} className={activeType === typeId ? 'active' : ''}> {typeNames[typeId]}
  • ))}
    {sizes.map((size, i) => (
  • setActiveSize(i)} className={activeSize === i ? 'active' : ''}> {size} см.
  • ))}
от {price} ₽
); };