import Head from "next/head"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import { useQuery } from "@apollo/client"; import Header from "@/components/Header"; import Footer from "@/components/Footer"; import MobileMenuBottomSection from "@/components/MobileMenuBottomSection"; import { DOC_FIND_OEM } from "@/lib/graphql"; import { LaximoDocFindOEMResult } from "@/types/laximo"; import MetaTags from "@/components/MetaTags"; import { getMetaByPath } from "@/lib/meta-config"; const InfoArticleSearch = () => ( Главная → Поиск деталей по артикулу Поиск деталей по артикулу ); const ArticleSearchPage = () => { const router = useRouter(); const { article } = router.query; const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { if (article && typeof article === 'string') { setSearchQuery(article.trim().toUpperCase()); } }, [article]); const { data, loading, error } = useQuery(DOC_FIND_OEM, { variables: { oemNumber: searchQuery }, skip: !searchQuery, errorPolicy: 'all' }); const handleFindOffers = (articleNumber: string, brand: string) => { router.push(`/search-result?article=${encodeURIComponent(articleNumber)}&brand=${encodeURIComponent(brand)}`); }; const result: LaximoDocFindOEMResult | null = data?.laximoDocFindOEM || null; const hasResults = result && result.details && result.details.length > 0; const metaData = getMetaByPath('/article-search'); return ( <> {loading && ( Поиск деталей по артикулу... )} {error && !loading && ( Ошибка поиска Произошла ошибка при поиске деталей. Попробуйте еще раз. )} {!hasResults && !loading && !error && ( Детали не найдены По артикулу {searchQuery} детали не найдены. Попробуйте изменить запрос или проверьте правильность написания артикула. )} {hasResults && ( Поиск деталей по артикулу: {searchQuery} Выберите нужную деталь {result.details.map((detail, index) => ( handleFindOffers(detail.formattedoem || detail.oem, detail.manufacturer)} className="w-full text-left p-4 hover:bg-gray-50 transition-colors block" > {detail.manufacturer}: {detail.formattedoem || detail.oem} {detail.name} ))} )} > ); }; export default ArticleSearchPage;
Поиск деталей по артикулу...
Произошла ошибка при поиске деталей. Попробуйте еще раз.
По артикулу {searchQuery} детали не найдены.
Попробуйте изменить запрос или проверьте правильность написания артикула.
Выберите нужную деталь