import { useEffect, useState } from "react"; import { useParams, useNavigate } from "react-router-dom"; import { ArrowLeftOutlined } from "@ant-design/icons"; import { useAppDispatch, useAppSelector } from "../../app/hooks"; import { fetchProductBySlug } from "../../features/catalog/productsSlice"; import styles from "./ItemPage.module.css"; import Button from "../../components/Button/Button"; import PriceLisForm from "../../components/PriceLisForm/PriceLisForm"; import ProductAttributes from "../../components/Table/ProducTable"; import Link from "antd/es/typography/Link"; import { setSelectedCategory } from "../../features/catalog/categoriesSlice"; const ItemPage = () => { const { slug } = useParams(); const dispatch = useAppDispatch(); const navigate = useNavigate(); const { loading } = useAppSelector((state) => state.products); const { items: cats, selectedCategoryId } = useAppSelector((s) => s.categories); const [activeTab, setActiveTab] = useState<"desc" | "chars">("desc"); const [open, setOpen] = useState(false); useEffect(() => { if (slug) dispatch(fetchProductBySlug(slug)); }, [dispatch, slug]); const product = useAppSelector((state) => state.products.selectedProduct); const category = cats.find((cat) => cat.id === Number(selectedCategoryId)); if (loading || !product) { return
Загрузка...
; } if (!category) { return
Загрузка...
; } return (
setOpen(false)} />
{product.name}
{ navigate("/products"); dispatch(setSelectedCategory(null)); }} > Категории / navigate("/products")}>{category.name} / {product.name}
Карточка товара

{product.name}

{product.description}

{product.inStock ? "В наличии" : "Под заказ"}
{activeTab === "desc" && (

Описание

{product.description}

{product.full_name}

)} {activeTab === "chars" && (

Характеристики

)}
); }; export default ItemPage;