/** * БЛОК ВЫБОРА ПОСТАВЩИКОВ * * Выделен из create-suppliers-supply-page.tsx * Горизонтальный скролл поставщиков с поиском */ 'use client' import { Search } from 'lucide-react' import React from 'react' import { OrganizationAvatar } from '@/components/market/organization-avatar' import { Input } from '@/components/ui/input' import type { SuppliersBlockProps } from '../types/supply-creation.types' export const SuppliersBlock = React.memo(function SuppliersBlock({ suppliers, selectedSupplier, searchQuery, loading, onSupplierSelect, onSearchChange, }: SuppliersBlockProps) { if (loading) { return (
Загрузка поставщиков...
) } return (
{/* Заголовок и поиск */}

1. Выберите поставщика ({suppliers.length})

onSearchChange(e.target.value)} className="glass-input pl-10 h-9 text-sm text-white placeholder:text-white/50" />
{suppliers.length === 0 ? (
{searchQuery ? 'Поставщики не найдены' : 'Нет доступных поставщиков'}
{searchQuery && ( )}
) : (
{suppliers.map((supplier) => (
onSupplierSelect(supplier)} className={`flex-shrink-0 p-3 rounded-lg cursor-pointer group transition-all duration-200 w-[184px] md:w-[200px] lg:w-[216px] h-[92px] ${ selectedSupplier?.id === supplier.id ? 'bg-green-500/20 border border-green-400/60 shadow-lg ring-1 ring-green-400/30' : 'bg-white/5 border border-white/10 hover:border-white/20 hover:bg-white/10 hover:shadow-md' }`} >

{supplier.name || supplier.fullName}

ИНН: {supplier.inn}

{/* Дополнительная информация */}
{supplier.rating && ★ {supplier.rating}} {supplier.market && ( {getMarketLabel(supplier.market)} )}
))}
)} {/* Информация о выбранном поставщике */} {selectedSupplier && (
Выбран: {selectedSupplier.name || selectedSupplier.fullName} {selectedSupplier.address && ( • {selectedSupplier.address} )}
)}
) }) // Утилитарная функция для меток рынков (временно, потом перенести в хук) function getMarketLabel(market?: string) { switch (market) { case 'wildberries': return 'WB' case 'ozon': return 'OZON' case 'yandexmarket': return 'YM' default: return 'Универсальный' } }