import { useEffect } from "react"; import { useParams } from "react-router-dom"; import { useState } from "react"; import { Button, Form, Row} from 'react-bootstrap'; import QtySelect from "../components/QtySelect"; import { CartContext } from "../components/Cart"; import { useContext } from "react"; const MorceauDetail = () => { const { id } = useParams(); const [item, setItem] = useState({}); const [imageSrc, setImageSrc] = useState(null); const [itemQty, setItemQty] = useState(0); const [currentQty, setCurrentQty] = useState(1); const cart = useContext(CartContext); const inCartQuantity = cart.getProductQuantity(item.id) const isNoStock = () => { return item.status == 1 || item.status == 2 || item.status == 5; } const currentQtyChange = (newQty) => { setCurrentQty(newQty); } useEffect(() => { document.title = 'Morceaux'; async function fetchData() { const response = await fetch(`https://localhost:7292/api/Product?id=${id}`); const json = await response.json(); setItem(json); setItemQty(json.quantity); } fetchData(); fetch(`https://localhost:7292/api/Image?id=${id}`) .then(response => response.blob()) .then(blob => { const imageUrl = URL.createObjectURL(blob); setImageSrc(imageUrl); }); }, []); function renderPrice(price, newPrice, status) { if (price !== undefined) { if (status !== 3 && status !== 4) { return (

{price.toFixed(2).toString().replace(".", ",")} $ CA

); } else { return ( <>

{newPrice.toFixed(2).toString().replace(".", ",")} $ CA

{price.toFixed(2).toString().replace(".", ",")} $ CA
); } } } function renderStatus(statusCode) { if (statusCode !== undefined) { switch (statusCode) { case 0: return (

Disponible

); case 1: return (

En commande

); case 2: return (

Indisponible

); case 3: return (

Liquidation

); case 4: return (

Promotion

); case 5: return (

Discontinué

); default: return ( <> ); } } } return ( <>

{item.title}

({item.category})

{renderStatus(item.status)}
{renderPrice(item.price, item.promoPrice, item.status)}
Qté. restante: {isNoStock() ? "Aucun" : itemQty}

{item.description}

{inCartQuantity > 0 ? <>
Dans l'carosse: {inCartQuantity}
: <> }
); } export default MorceauDetail;