import React, { useState, useEffect } from 'react'; import { useQuery } from '@apollo/client'; import { useRouter } from 'next/router'; import { GET_BRANDS_BY_CODE } from '@/lib/graphql'; interface BrandSelectionModalProps { isOpen: boolean; onClose: () => void; articleNumber: string; detailName: string; } const BrandSelectionModal: React.FC = ({ isOpen, onClose, articleNumber, detailName }) => { const router = useRouter(); const [selectedBrand, setSelectedBrand] = useState(''); const { data, loading, error } = useQuery(GET_BRANDS_BY_CODE, { variables: { code: articleNumber }, skip: !isOpen || !articleNumber, errorPolicy: 'all' }); useEffect(() => { if (!isOpen) { setSelectedBrand(''); } }, [isOpen]); const handleBrandSelect = (brand: string) => { console.log('🎯 Π’Ρ‹Π±Ρ€Π°Π½ Π±Ρ€Π΅Π½Π΄:', { articleNumber, brand }); router.push(`/search-result?article=${encodeURIComponent(articleNumber)}&brand=${encodeURIComponent(brand)}`); onClose(); }; const handleBackdropClick = (e: React.MouseEvent) => { if (e.target === e.currentTarget) { onClose(); } }; if (!isOpen) return null; const brandsData = data?.getBrandsByCode; const brands = brandsData?.brands || []; const hasError = brandsData?.error || error; const hasNoBrands = brandsData?.success && brands.length === 0; return (
{/* Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ */}

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ производитСля

Артикул: {articleNumber}

Π”Π΅Ρ‚Π°Π»ΡŒ: {detailName}

{/* Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ */}
{loading && (
Π—Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ...
)} {hasError && (

Ошибка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

{brandsData?.error || error?.message || 'НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ список ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ'}

)} {hasNoBrands && (

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹

К соТалСнию, ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ поиска ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ нашим ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌ

Π’Π΅Π»Π΅Ρ„ΠΎΠ½: +7 (495) 123-45-67

Email: info@protek.ru

)} {!loading && !hasError && brands.length > 0 && (

НайдСно ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ: {brands.length}

{brands.map((brand: any, index: number) => ( ))}
)}
{/* Π€ΡƒΡ‚Π΅Ρ€ */} {!loading && !hasError && brands.length > 0 && (
)}
); }; export default BrandSelectionModal;