import React, { useState } from 'react'; import { useLazyQuery } from '@apollo/client'; import { FIND_LAXIMO_APPLICABLE_VEHICLES } from '@/lib/graphql'; import { LaximoVehicleSearchResult } from '@/types/laximo'; interface PartSearchFormProps { catalogCode: string; onVehiclesFound: (vehicles: LaximoVehicleSearchResult[]) => void; onSearchStart?: () => void; isLoading: boolean; placeholder?: string; } const PartSearchForm: React.FC = ({ catalogCode, onVehiclesFound, onSearchStart, isLoading, placeholder = '1J0853665BB41' }) => { const [partNumber, setPartNumber] = useState(''); // Запрос для поиска автомобилей по артикулу в каталоге const [findApplicableVehicles, { loading: searchLoading }] = useLazyQuery(FIND_LAXIMO_APPLICABLE_VEHICLES, { onCompleted: (data) => { const vehicles = data.laximoFindApplicableVehicles || []; console.log('✅ Найдено автомобилей по артикулу:', vehicles.length); onVehiclesFound(vehicles); }, onError: (error) => { console.error('❌ Ошибка поиска автомобилей по артикулу:', error); onVehiclesFound([]); } }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (partNumber.trim()) { console.log('🔍 Поиск автомобилей по артикулу:', partNumber, 'в каталоге:', catalogCode); onSearchStart?.(); findApplicableVehicles({ variables: { catalogCode, partNumber: partNumber.trim().toUpperCase() } }); } }; const handleInputChange = (e: React.ChangeEvent) => { const value = e.target.value.toUpperCase().replace(/[^A-Z0-9]/g, ''); setPartNumber(value); }; const loading = isLoading || searchLoading; return (

Введите артикул (OEM номер) детали для поиска применимых автомобилей в каталоге

Например: {placeholder}

); }; export default PartSearchForm;