- {tab.links.map((link, linkIndex) => {
- const catalog = catalogsData?.partsIndexCategoriesWithGroups?.[idx];
-
- // Ищем соответствующую подгруппу по названию
- let subcategoryId = `fallback_${idx}_${linkIndex}`;
-
- if (catalog?.groups) {
- for (const group of catalog.groups) {
- // Проверяем в подгруппах
- if (group.subgroups && group.subgroups.length > 0) {
- const foundSubgroup = group.subgroups.find((subgroup: any) => subgroup.name === link);
- if (foundSubgroup) {
- subcategoryId = foundSubgroup.id;
+ {tab.links.length === 1 ? (
+
{
+ const catalog = catalogsData?.partsIndexCategoriesWithGroups?.[idx];
+ let subcategoryId = `fallback_${idx}_0`;
+ if (catalog?.groups) {
+ for (const group of catalog.groups) {
+ if (group.subgroups && group.subgroups.length > 0) {
+ const foundSubgroup = group.subgroups.find((subgroup: any) => subgroup.name === tab.links[0]);
+ if (foundSubgroup) {
+ subcategoryId = foundSubgroup.id;
+ break;
+ }
+ } else if (group.name === tab.links[0]) {
+ subcategoryId = group.id;
+ break;
+ }
+ }
+ }
+ const catalogId = catalog?.id || 'fallback';
+ handleCategoryClick(catalogId, tab.links[0], subcategoryId);
+ }}
+ style={{ cursor: "pointer" }}
+ >
+ Показать все
+
+ ) : (
+ tab.links.map((link: string, linkIndex: number) => {
+ const catalog = catalogsData?.partsIndexCategoriesWithGroups?.[idx];
+ let subcategoryId = `fallback_${idx}_${linkIndex}`;
+ if (catalog?.groups) {
+ for (const group of catalog.groups) {
+ if (group.subgroups && group.subgroups.length > 0) {
+ const foundSubgroup = group.subgroups.find((subgroup: any) => subgroup.name === link);
+ if (foundSubgroup) {
+ subcategoryId = foundSubgroup.id;
+ break;
+ }
+ } else if (group.name === link) {
+ subcategoryId = group.id;
break;
}
}
- // Если нет подгрупп, проверяем саму группу
- else if (group.name === link) {
- subcategoryId = group.id;
- break;
- }
}
- }
-
- return (
-
{
- const catalogId = catalog?.id || 'fallback';
- handleCategoryClick(catalogId, link, subcategoryId);
- }}
- style={{ cursor: "pointer" }}
- >
- {link}
-
- );
- })}
+ return (
+
{
+ const catalogId = catalog?.id || 'fallback';
+ handleCategoryClick(catalogId, link, subcategoryId);
+ }}
+ style={{ cursor: "pointer" }}
+ >
+ {link}
+
+ );
+ })
+ )}

diff --git a/src/components/CatalogSubscribe.tsx b/src/components/CatalogSubscribe.tsx
index 6fca15a..79ad118 100644
--- a/src/components/CatalogSubscribe.tsx
+++ b/src/components/CatalogSubscribe.tsx
@@ -1,10 +1,16 @@
-import React from "react";
+import React, { useState } from "react";
const CatalogSubscribe: React.FC = () => (
+
-
Подпишитесь на новостную рассылку
+ {/*
Подпишитесь на новостную рассылку
*/}
+
Оставайтесь в курсе акций,
новинок и специальных предложений
@@ -13,6 +19,38 @@ const CatalogSubscribe: React.FC = () => (
+
+ {/* Кастомный чекбокс без input/label */}
+ {(() => {
+ const [checked, setChecked] = useState(false);
+ return (
+ <>
+
setChecked(v => !v)}
+ role="checkbox"
+ aria-checked={checked}
+ tabIndex={0}
+ onKeyDown={e => { if (e.key === ' ' || e.key === 'Enter') setChecked(v => !v); }}
+ >
+
+
+
+ Я даю свое согласие на обработку персональных данных
+ и соглашаюсь с условиями Политики конфиденциальности
+
+ >
+ );
+ })()}
+
);
diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index 0cc7b7c..e495215 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -385,7 +385,7 @@ const Header: React.FC
= ({ onOpenAuthModal = () => console.log('Au
-
+
diff --git a/src/components/profile/ProfileGarageMain.tsx b/src/components/profile/ProfileGarageMain.tsx
index c3abe4d..dc015e4 100644
--- a/src/components/profile/ProfileGarageMain.tsx
+++ b/src/components/profile/ProfileGarageMain.tsx
@@ -247,63 +247,65 @@ const ProfileGarageMain = () => {
-
-
- {/* Расширенная информация об автомобиле */}
- {expandedVehicle === vehicle.id && (
-