diff --git a/public/images/noimage.png b/public/images/noimage.png new file mode 100644 index 0000000..8589654 Binary files /dev/null and b/public/images/noimage.png differ diff --git a/src/components/CoreProductCard.tsx b/src/components/CoreProductCard.tsx index cd04cc6..2a8f7ee 100644 --- a/src/components/CoreProductCard.tsx +++ b/src/components/CoreProductCard.tsx @@ -312,9 +312,9 @@ const CoreProductCard: React.FC = ({ info
-
-

{brand}

-

{article}

+
+

{brand}

+

{article}

= ({
-
{name}
+
{name}
{image && ( diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index db8c64e..8ad3735 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -115,7 +115,7 @@ const Footer = () => ( {/* Центр: меню */} -
+
Подбор по марке авто
Поиск по VIN @@ -178,7 +178,7 @@ const Footer = () => (
-
+
Политика конфиденциальности Согласие на обработку персональных данных diff --git a/src/components/index/BestPriceSection.tsx b/src/components/index/BestPriceSection.tsx index 200e7a6..0b84ff8 100644 --- a/src/components/index/BestPriceSection.tsx +++ b/src/components/index/BestPriceSection.tsx @@ -111,12 +111,62 @@ const BestPriceSection: React.FC = () => {
Подборка лучших предложенийпо цене
Показать все
-
+
+ {/* Стили для стрелок как в ProductOfDayBanner, но без абсолютного позиционирования */} +
{bestPriceItems.map((item, i) => ( @@ -124,10 +174,11 @@ const BestPriceSection: React.FC = () => { ))}
diff --git a/src/components/index/NewArrivalsSection.tsx b/src/components/index/NewArrivalsSection.tsx index 6ef8070..56df583 100644 --- a/src/components/index/NewArrivalsSection.tsx +++ b/src/components/index/NewArrivalsSection.tsx @@ -84,16 +84,66 @@ const NewArrivalsSection: React.FC = () => {

Новое поступление

+ {/* Стили для стрелок как в BestPriceSection и TopSalesSection */} +
@@ -149,10 +199,11 @@ const NewArrivalsSection: React.FC = () => { aria-label="Прокрутить вправо" style={{ cursor: 'pointer' }} > - - - - + + + + +
diff --git a/src/components/index/NewsAndPromos.tsx b/src/components/index/NewsAndPromos.tsx index 83a1630..14c3038 100644 --- a/src/components/index/NewsAndPromos.tsx +++ b/src/components/index/NewsAndPromos.tsx @@ -32,11 +32,61 @@ const NewsAndPromos = () => {
+ {/* Стили для стрелок как в других секциях */} +
{ />
diff --git a/src/components/index/ProductOfDaySection.tsx b/src/components/index/ProductOfDaySection.tsx index d450f09..4215ddf 100644 --- a/src/components/index/ProductOfDaySection.tsx +++ b/src/components/index/ProductOfDaySection.tsx @@ -110,8 +110,13 @@ const ProductOfDaySection: React.FC = () => { }; } - return null; + // Если нет ни одной картинки, возвращаем noimage.png + return { + url: '/images/noimage.png', + alt: product.name, + source: 'noimage' }; + }; // Обработчики для навигации по товарам дня const handlePrevSlide = (e: React.MouseEvent) => { @@ -209,6 +214,11 @@ const ProductOfDaySection: React.FC = () => { Parts Index )} + {productImage.source === 'noimage' && ( +
+ Нет изображения +
+ )} )} diff --git a/src/components/index/TopSalesSection.tsx b/src/components/index/TopSalesSection.tsx index 2364001..4970880 100644 --- a/src/components/index/TopSalesSection.tsx +++ b/src/components/index/TopSalesSection.tsx @@ -143,11 +143,61 @@ const TopSalesSection: React.FC = () => {

Топ продаж

+ {/* Стили для стрелок как в BestPriceSection */} +
{activeTopSalesProducts.map((item: TopSalesProductData) => { @@ -177,10 +227,11 @@ const TopSalesSection: React.FC = () => { })}
diff --git a/src/components/vin/VehicleAttributesTooltip.tsx b/src/components/vin/VehicleAttributesTooltip.tsx index e87ab43..5e1454d 100644 --- a/src/components/vin/VehicleAttributesTooltip.tsx +++ b/src/components/vin/VehicleAttributesTooltip.tsx @@ -19,6 +19,7 @@ interface VehicleAttributesTooltipProps { const VehicleAttributesTooltip: React.FC = ({ show, position, + vehicleName, vehicleAttributes, onMouseEnter, onMouseLeave, @@ -27,7 +28,7 @@ const VehicleAttributesTooltip: React.FC = ({ if (!show) return null; return (
= ({ /> )}
- {vehicleAttributes.map((attr, idx) => ( -
-
- {attr.name} -
-
- {attr.value} + {/* Заголовок */} + {vehicleName && ( +
{vehicleName}
+ )} + {/* Список характеристик или сообщение */} + {vehicleAttributes.length > 0 ? ( + vehicleAttributes.map((attr, idx) => ( +
+
+ {attr.name} +
+
+ {attr.value} +
+ )) + ) : ( +
+
Дополнительная информация недоступна
- ))} + )}
); diff --git a/src/components/vin/VinQuick.tsx b/src/components/vin/VinQuick.tsx index 26eac51..5695094 100644 --- a/src/components/vin/VinQuick.tsx +++ b/src/components/vin/VinQuick.tsx @@ -88,21 +88,19 @@ const VinQuick: React.FC = ({ quickGroup, catalogCode, vehicleId, ))} {total > 3 && shownCount < total && (
- {shownCount + 3 < total && ( - - )} +