Обновлены условия пропуска запросов в компонентах, чтобы учитывать случаи, когда vehicleId может быть undefined или null. Исправлены проверки в следующих компонентах: CatalogGroupsSection, CategoriesSection, GroupDetailsSection, QuickGroupsSection, UnitDetailsSection, UnitsSection, KnotIn, VinCategory, VinLeftbar, VehicleDetailsPage и PartDetailPage.
This commit is contained in:
@ -154,13 +154,13 @@ const QuickDetailSection: React.FC<QuickDetailSectionProps> = ({
|
||||
const { data: quickDetailData, loading: quickDetailLoading, error: quickDetailError } = useQuery<{ laximoQuickDetail: LaximoQuickDetail }>(
|
||||
GET_LAXIMO_QUICK_DETAIL,
|
||||
{
|
||||
variables: {
|
||||
variables: selectedGroup?.quickgroupid ? {
|
||||
catalogCode,
|
||||
vehicleId,
|
||||
quickGroupId: selectedGroup.quickgroupid,
|
||||
ssd
|
||||
},
|
||||
skip: !catalogCode || !vehicleId || !selectedGroup.quickgroupid || !ssd,
|
||||
} : undefined,
|
||||
skip: !catalogCode || vehicleId === undefined || vehicleId === null || !selectedGroup?.quickgroupid || !ssd || ssd.trim() === '',
|
||||
errorPolicy: 'all',
|
||||
fetchPolicy: 'cache-and-network' // Принудительно запрашиваем данные
|
||||
}
|
||||
@ -169,11 +169,28 @@ const QuickDetailSection: React.FC<QuickDetailSectionProps> = ({
|
||||
const quickDetail = quickDetailData?.laximoQuickDetail;
|
||||
|
||||
// Добавляем отладочную информацию
|
||||
console.log('🔍 QuickDetailSection Debug:');
|
||||
console.log('📊 quickDetailData:', quickDetailData);
|
||||
console.log('📋 quickDetail:', quickDetail);
|
||||
console.log('🏗️ quickDetail.units:', quickDetail?.units);
|
||||
console.log('⚙️ Variables:', { catalogCode, vehicleId, quickGroupId: selectedGroup.quickgroupid, ssd });
|
||||
console.log('🔍 QuickDetailSection Debug:', {
|
||||
catalogCode,
|
||||
vehicleId,
|
||||
vehicleIdType: typeof vehicleId,
|
||||
quickGroupId: selectedGroup?.quickgroupid,
|
||||
quickGroupIdType: typeof selectedGroup?.quickgroupid,
|
||||
ssd: ssd ? `${ssd.substring(0, 30)}...` : 'отсутствует',
|
||||
ssdType: typeof ssd,
|
||||
ssdLength: ssd?.length,
|
||||
hasData: !!quickDetailData,
|
||||
hasQuickDetail: !!quickDetail,
|
||||
unitsCount: quickDetail?.units?.length || 0,
|
||||
loading: quickDetailLoading,
|
||||
error: quickDetailError?.message,
|
||||
skipCondition: !catalogCode || vehicleId === undefined || vehicleId === null || !selectedGroup?.quickgroupid || !ssd,
|
||||
skipDetails: {
|
||||
noCatalogCode: !catalogCode,
|
||||
noVehicleId: vehicleId === undefined || vehicleId === null,
|
||||
noQuickGroupId: !selectedGroup?.quickgroupid,
|
||||
noSsd: !ssd
|
||||
}
|
||||
});
|
||||
|
||||
// Если выбран узел для детального просмотра, показываем UnitDetailsSection
|
||||
if (selectedUnit) {
|
||||
@ -213,6 +230,20 @@ const QuickDetailSection: React.FC<QuickDetailSectionProps> = ({
|
||||
}
|
||||
|
||||
if (quickDetailError) {
|
||||
console.error('🚨 QuickDetailSection Error Details:', {
|
||||
message: quickDetailError.message,
|
||||
graphQLErrors: quickDetailError.graphQLErrors,
|
||||
networkError: quickDetailError.networkError,
|
||||
extraInfo: quickDetailError.extraInfo,
|
||||
selectedGroup: selectedGroup,
|
||||
variables: selectedGroup?.quickgroupid ? {
|
||||
catalogCode,
|
||||
vehicleId,
|
||||
quickGroupId: selectedGroup.quickgroupid,
|
||||
ssd
|
||||
} : 'undefined (no variables sent)'
|
||||
});
|
||||
|
||||
return (
|
||||
<div className="space-y-4">
|
||||
<div className="flex items-center justify-between">
|
||||
@ -231,6 +262,33 @@ const QuickDetailSection: React.FC<QuickDetailSectionProps> = ({
|
||||
<h3 className="text-lg font-medium text-red-600 mb-2">Ошибка загрузки деталей</h3>
|
||||
<p className="text-red-700">Не удалось загрузить детали для группы "{selectedGroup.name}"</p>
|
||||
<p className="text-sm text-red-600 mt-2">Ошибка: {quickDetailError.message}</p>
|
||||
|
||||
{/* Отладочная информация */}
|
||||
<details className="mt-4">
|
||||
<summary className="text-sm text-red-700 cursor-pointer hover:text-red-800">
|
||||
🔧 Показать отладочную информацию
|
||||
</summary>
|
||||
<div className="mt-2 p-3 bg-red-100 rounded text-xs">
|
||||
<div><strong>Catalog Code:</strong> {catalogCode}</div>
|
||||
<div><strong>Vehicle ID:</strong> {vehicleId} (type: {typeof vehicleId})</div>
|
||||
<div><strong>Quick Group ID:</strong> {selectedGroup?.quickgroupid} (type: {typeof selectedGroup?.quickgroupid})</div>
|
||||
<div><strong>SSD:</strong> {ssd ? `${ssd.substring(0, 100)}...` : 'отсутствует'} (length: {ssd?.length})</div>
|
||||
<div className="mt-2">
|
||||
<strong>GraphQL Errors:</strong>
|
||||
<pre className="mt-1 text-xs overflow-auto">
|
||||
{JSON.stringify(quickDetailError.graphQLErrors, null, 2)}
|
||||
</pre>
|
||||
</div>
|
||||
{quickDetailError.networkError && (
|
||||
<div className="mt-2">
|
||||
<strong>Network Error:</strong>
|
||||
<pre className="mt-1 text-xs overflow-auto">
|
||||
{JSON.stringify(quickDetailError.networkError, null, 2)}
|
||||
</pre>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@ -464,7 +522,7 @@ const QuickGroupsSection: React.FC<QuickGroupsSectionProps> = ({
|
||||
vehicleId,
|
||||
...(ssd && ssd.trim() !== '' && { ssd })
|
||||
},
|
||||
skip: !catalogCode || !vehicleId,
|
||||
skip: !catalogCode || vehicleId === undefined || vehicleId === null,
|
||||
errorPolicy: 'all'
|
||||
}
|
||||
);
|
||||
|
Reference in New Issue
Block a user