fix(front) Добавил строку категорий и карточек товара
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import PageLayout from "../components/PageLayout";
|
||||
import * as api from "../api/index";
|
||||
import { useState, useEffect } from "react";
|
||||
import CategoryTabs from "../components/CategoryTabs";
|
||||
import CardItem from "../components/CardItem";
|
||||
|
||||
export default function Shop() {
|
||||
const [items, setItems] = useState([]);
|
||||
@@ -10,29 +12,43 @@ export default function Shop() {
|
||||
|
||||
useEffect(() => {
|
||||
Promise.all([api.getAllItems(), api.getAllCategories()])
|
||||
.then((itemsRes, categoriesRes) => {
|
||||
setItems(itemsRes.data);
|
||||
setCategories(categoriesRes.data);
|
||||
.then(([itemsRes, categoriesRes]) => {
|
||||
setItems(itemsRes?.data || []);
|
||||
setCategories(categoriesRes?.data || []);
|
||||
setLoading(false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error("Ошибка при загрузке товара", err);
|
||||
alert(err);
|
||||
setLoading(false);
|
||||
});
|
||||
}, []);
|
||||
|
||||
const filteredItems =
|
||||
activeCategory === "all"
|
||||
? items
|
||||
: items.fitler(
|
||||
(item) =>
|
||||
item.category?.toLowerCase() === activeCategory.toLowerCase(),
|
||||
);
|
||||
? items || []
|
||||
: (items || []).filter((item) => {
|
||||
if (!item || !item.category) return false;
|
||||
|
||||
return item.category.toLowerCase() === activeCategory.toLowerCase();
|
||||
});
|
||||
|
||||
const handleAddToCart = (product, selectedWeight) => {
|
||||
console.log(`Добавлен товар ${product.name}, Вес ${selectedWeight} кг`);
|
||||
};
|
||||
|
||||
return (
|
||||
<PageLayout>
|
||||
<main className="px-16 grow w-full">
|
||||
<div className="flex flex-row text-white"></div>
|
||||
<h1 className="text">Ассортимент</h1>
|
||||
<CategoryTabs
|
||||
categories={categories || []}
|
||||
activeCategory={activeCategory}
|
||||
onSelectCategory={setActiveCategory}
|
||||
/>
|
||||
{filteredItems.map((item) => (
|
||||
<CardItem key={item.id} item={item} onAddToCart={handleAddToCart} />
|
||||
))}
|
||||
</main>
|
||||
</PageLayout>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user