import axios from "axios"; import React, { useEffect, useReducer } from "react"; import { Helmet } from "react-helmet-async"; import { useParams } from "react-router-dom"; import Footer from "../components/Footer"; import "bootstrap/dist/css/bootstrap.min.css"; import Header from "../components/Header"; import icon1 from "../Images/icon3.svg"; import ShoppingBasketIcon from "@mui/icons-material/ShoppingCart"; import "../styles/ProductScreen.css"; import Container from "react-bootstrap/Container"; import Row from "react-bootstrap/Row"; import Col from "react-bootstrap/Col"; const reducer = (state, action) => { switch (action.type) { case "FETCH_REQUEST": return { ...state, loading: true }; case "FETCH_SUCCESS": return { ...state, product: action.payload, loading: false }; case "FETCH_FAIL": return { ...state, loading: false, error: action.payload }; default: return state; } }; function ProductScreen() { const params = useParams(); const { slug } = params; const [{ loading, error, product }, dispatch] = useReducer(reducer, { product: [], loading: true, error: "", }); useEffect(() => { const fetchData = async () => { dispatch({ type: "FETCH_REQUEST" }); try { const result = await axios.get(`/api/products/slug/${slug}`); dispatch({ type: "FETCH_SUCCESS", payload: result.data }); } catch (err) { dispatch({ type: "FETCH_FAIL", payload: err.message }); } }; fetchData(); }, [slug]); return loading ? (
Loading...
) : error ? (
{error}
) : (
{product.name}
{product.name}
{product.name}
{product.name}
{product.name}

{product.name}

{product.price} ден

10-day-deliveryБесплатна достава: 10 дена
Опис
Димензии
Монтажа
Шема за монтажа
); } export default ProductScreen;