import { ProductCards } from "./components"; import React, { useEffect, useMemo, useState } from "react"; import type { Product, ProductLine } from "../../types"; import Order from "./components/order/Order"; import styles from "./Catalog.module.css"; const Catalog = () => { const [products, setProducts] = useState([]); const [productLines, setProductLines] = useState([]); const [filterText, setFilterText] = useState(""); useEffect(() => { async function fetchProducts() { try{ const response = await fetch("http://localhost:8010/api/v1/products"); const data = await response.json(); setProducts(data); }catch(error){ console.error(`Este es el error: ${error}`); }; }; fetchProducts(); }, []); function addProductLine(product: Product, quantity: number): void{ const newProductLine: ProductLine = { id: Date.now(), product: product, quantity: quantity, unitPrice: product.price, totalAmount: quantity * product.price, }; setProductLines([...productLines, newProductLine]); } const filteredProducts = useMemo(() => filterText.trim() ? products.filter(p => p.name.toLowerCase().includes(filterText.toLowerCase()) ) : products, [products, filterText] ); return (
e.preventDefault()}> setFilterText(event.target.value)}/>
) } export default Catalog;