import React from 'react'; import { useRouter } from 'next/router'; import { LaximoVehicleSearchResult, LaximoCatalogInfo } from '@/types/laximo'; interface VehicleSearchResultsProps { results: LaximoVehicleSearchResult[]; catalogInfo: LaximoCatalogInfo; } const VehicleSearchResults: React.FC = ({ results, catalogInfo }) => { const router = useRouter(); const handleSelectVehicle = (vehicle: LaximoVehicleSearchResult) => { console.log('🚗 handleSelectVehicle вызвана для:', vehicle); // Формируем SSD из данных vehicle или берем из router query const routerSsd = Array.isArray(router.query.ssd) ? router.query.ssd[0] : router.query.ssd; const ssd = vehicle.ssd || routerSsd || ''; const brand = router.query.brand || catalogInfo.code; console.log('🚗 Selected vehicle:', vehicle); console.log('🔧 Vehicle SSD:', vehicle.ssd ? `${vehicle.ssd.substring(0, 50)}...` : 'отсутствует'); console.log('🔧 Router SSD:', routerSsd ? `${routerSsd.substring(0, 50)}...` : 'отсутствует'); console.log('🔧 Final SSD to pass:', ssd ? `${ssd.substring(0, 50)}...` : 'отсутствует'); console.log('🔧 SSD length:', ssd.length); console.log('🔧 Brand для навигации:', brand); console.log('🔧 Vehicle ID:', vehicle.vehicleid); // Переходим на страницу автомобиля с SSD if (ssd && ssd.trim() !== '') { // Всегда используем localStorage для SSD, так как VW SSD очень длинные console.log('💾 Сохраняем SSD в localStorage для безопасной передачи'); const vehicleKey = `vehicle_ssd_${brand}_${vehicle.vehicleid}`; console.log('💾 Ключ localStorage:', vehicleKey); localStorage.setItem(vehicleKey, ssd); console.log('💾 SSD сохранен в localStorage'); const targetUrl = `/vehicle-search/${brand}/${vehicle.vehicleid}?use_storage=1&ssd_length=${ssd.length}`; console.log('🔗 Переходим по URL:', targetUrl); router.push(targetUrl); } else { console.log('⚠️ SSD отсутствует, переходим без него'); router.push(`/vehicle-search/${brand}/${vehicle.vehicleid}`); } }; // Функция для условного отображения атрибута const renderAttribute = (label: string, value: string | undefined) => { if (!value || value === '' || value === 'undefined') return null return (
{label}: {value}
) } if (results.length === 0) { return null; } return (

Найдено автомобилей: {results.length}

{results.map((vehicle, index) => (
handleSelectVehicle(vehicle)} > {/* Заголовок автомобиля */}

{vehicle.name || `${vehicle.brand} ${vehicle.model}`}

{/*

{vehicle.modification} ({vehicle.year})

*/}
{/* Основные характеристики */}
Основные характеристики
{renderAttribute('Марка', vehicle.brand)} {renderAttribute('Модель', vehicle.model)} {renderAttribute('Двигатель', vehicle.engine)}
{/* Все атрибуты из API */} {vehicle.attributes && vehicle.attributes.length > 0 && (
Дополнительные характеристики
{vehicle.attributes.map((attr, attrIndex) => (
{attr.name || attr.key}: {attr.value}
))}
)} {/* Технические характеристики (fallback для старых данных) */} {(!vehicle.attributes || vehicle.attributes.length === 0) && ( <>
Дополнительные характеристики
{renderAttribute('Год', vehicle.year)} {renderAttribute('Кузов', vehicle.bodytype)} {renderAttribute('Трансмиссия', vehicle.transmission)} {renderAttribute('Класс', vehicle.grade)} {renderAttribute('Цвет кузова', vehicle.framecolor)} {renderAttribute('Цвет салона', vehicle.trimcolor)} {renderAttribute('Рынок', vehicle.market)} {renderAttribute('Регион производства', vehicle.creationregion)} {renderAttribute('Регион назначения', vehicle.destinationregion)}
Технические характеристики
{renderAttribute('Информация о двигателе', vehicle.engine_info)} {renderAttribute('Номер двигателя', vehicle.engineno)} {renderAttribute('Дата производства', vehicle.date)} {renderAttribute('Произведен', vehicle.manufactured)} {renderAttribute('Период производства', vehicle.prodPeriod)} {renderAttribute('Диапазон производства', vehicle.prodRange)}
Даты и периоды
{renderAttribute('Дата с', vehicle.datefrom)} {renderAttribute('Дата по', vehicle.dateto)} {renderAttribute('Модельный год с', vehicle.modelyearfrom)} {renderAttribute('Модельный год по', vehicle.modelyearto)}
{/* Опции и описание */} {(vehicle.options || vehicle.description || vehicle.notes) && (
Опции и описание
{renderAttribute('Опции', vehicle.options)} {renderAttribute('Описание', vehicle.description)} {renderAttribute('Примечания', vehicle.notes)}
)} )} {/* Системная информация */}
))}
); }; export default VehicleSearchResults;