pravkiend 29.06

This commit is contained in:
egortriston
2025-06-29 03:20:45 +03:00
parent f6cc95e714
commit d4ba549a81
5 changed files with 85 additions and 29 deletions

View File

@ -157,17 +157,17 @@ const VehicleDetailsPage = () => {
if (vehicleLoading) {
return (
<>
<>
<Head>
<title>Загрузка автомобиля...</title>
</Head>
<main className="min-h-screen bg-gray-50 flex items-center justify-center">
<div style={{ minHeight: '100vh', display: 'flex', alignItems: 'center', justifyContent: 'center', background: '#f9fafb' }}>
<div className="text-center">
<div className="animate-spin rounded-full h-32 w-32 border-b-2 border-red-600 mx-auto"></div>
<p className="mt-4 text-lg text-gray-600">Загружаем информацию об автомобиле...</p>
</div>
</main>
</>
</div>
</>
);
}
@ -194,16 +194,49 @@ const VehicleDetailsPage = () => {
);
}
// Если информация об автомобиле недоступна, создаем заглушку
const vehicleInfo = vehicleData?.laximoVehicleInfo || {
vehicleid: vehicleId as string,
// Если vehicleId невалидный (например, '0'), показываем предупреждение и не рендерим поиск
if (!vehicleId || vehicleId === '0') {
return (
<main className="min-h-screen bg-yellow-50 flex items-center justify-center">
<div className="text-center">
<h1 className="text-2xl font-bold text-yellow-900 mb-4">Автомобиль не выбран</h1>
<p className="text-yellow-700 mb-8">Для поиска по деталям необходимо выбрать конкретный автомобиль через VIN или мастер подбора.</p>
<button
onClick={() => router.back()}
className="bg-yellow-600 text-white px-6 py-3 rounded-lg hover:bg-yellow-700 transition-colors"
>
Назад к поиску
</button>
</div>
</main>
);
}
// Гарантируем, что vehicleId — строка
const vehicleIdStr = Array.isArray(vehicleId) ? (vehicleId[0] || '') : (vehicleId || '');
const fallbackVehicleId = (vehicleIdStr !== '0' ? vehicleIdStr : '');
let vehicleInfo = vehicleData?.laximoVehicleInfo || {
vehicleid: fallbackVehicleId,
name: `Автомобиль ${catalogData.laximoCatalogInfo.name}`,
ssd: finalSsd,
brand: catalogData.laximoCatalogInfo.brand,
catalog: catalogData.laximoCatalogInfo.code,
attributes: []
attributes: [] as never[]
};
// Если вдруг с сервера пришёл vehicleid: '0', подменяем на корректный
if (vehicleInfo.vehicleid === '0' && fallbackVehicleId) {
vehicleInfo = { ...vehicleInfo, vehicleid: fallbackVehicleId };
}
// Логируем, что реально передаём в VinLeftbar
console.log('Передаём в VinLeftbar:', {
catalog: vehicleInfo.catalog,
vehicleid: vehicleInfo.vehicleid,
ssd: vehicleInfo.ssd
});
// Если нет данных автомобиля и есть ошибка, показываем предупреждение
const hasError = vehicleError && !vehicleData?.laximoVehicleInfo;
const catalogInfo = catalogData.laximoCatalogInfo;