catalog and bags

This commit is contained in:
egortriston
2025-07-30 13:57:16 +03:00
parent a8f783767f
commit 95e6b33b56
9 changed files with 123 additions and 40 deletions

View File

@ -39,9 +39,9 @@ const mockData = Array(12).fill({
});
export default function Catalog() {
const ITEMS_PER_PAGE = 12; // Показывать 12 карточек за раз
const ITEMS_PER_PAGE = 24; // Показывать 12 карточек за раз
const PARTSINDEX_PAGE_SIZE = 25; // Синхронизировано для оптимальной скорости
const MAX_BRANDS_DISPLAY = 10; // Сколько брендов показывать изначально
const MAX_BRANDS_DISPLAY = 24; // Сколько брендов показывать изначально
const [visibleCount, setVisibleCount] = useState(ITEMS_PER_PAGE);
const router = useRouter();
const { addItem } = useCart();
@ -336,12 +336,6 @@ export default function Catalog() {
естьЕщеТовары: hasMoreEntities
});
// Если у нас уже достаточно товаров, не загружаем
if (currentEntitiesCount >= ITEMS_PER_PAGE) {
console.log('✅ Автоподгрузка: достаточно товаров');
return;
}
// Даем время на загрузку цен товаров, если их слишком много загружается
const loadingCount = accumulatedEntities.filter(entity => {
const productForPrice = { id: entity.id, code: entity.code, brand: entity.brand.name };
@ -935,6 +929,20 @@ export default function Catalog() {
return false;
}, [isPartsAPIMode, loadedArticlesCount, filteredArticles.length]);
useEffect(() => {
// Сбросить все состояния при смене каталога или подкатегории
setAccumulatedEntities([]);
setVisibleEntities([]);
setEntitiesWithOffers([]);
setEntitiesCache(new Map());
setCurrentUserPage(1);
setPartsIndexPage(1);
setHasMoreEntities(true);
setShowEmptyState(false);
setIsFilterChanging(false);
setVisibleCount(ITEMS_PER_PAGE);
}, [catalogId, groupId]);
if (filtersLoading) {
return <div className="py-8 text-center">Загрузка фильтров...</div>;
}