'use client' import { Users, Search } from 'lucide-react' import React from 'react' import { Input } from '@/components/ui/input' import { SupplierCard } from './supplier-card' import { SupplierForCreation, CounterpartySupplier } from './types' interface SupplierGridProps { suppliers: CounterpartySupplier[] onSupplierSelect: (supplier: SupplierForCreation) => void searchQuery: string onSearchChange: (query: string) => void loading?: boolean } export function SupplierGrid({ suppliers, onSupplierSelect, searchQuery, onSearchChange, loading = false, }: SupplierGridProps) { // Фильтруем поставщиков по поисковому запросу const filteredSuppliers = suppliers.filter( (supplier) => supplier.name?.toLowerCase().includes(searchQuery.toLowerCase()) || supplier.fullName?.toLowerCase().includes(searchQuery.toLowerCase()) || supplier.inn?.toLowerCase().includes(searchQuery.toLowerCase()), ) const handleSupplierClick = (supplier: CounterpartySupplier) => { // Адаптируем данные под существующий интерфейс const adaptedSupplier: SupplierForCreation = { id: supplier.id, inn: supplier.inn || '', name: supplier.name || 'Неизвестная организация', fullName: supplier.fullName || supplier.name || 'Неизвестная организация', address: supplier.address || 'Адрес не указан', phone: supplier.phones?.[0]?.value, email: supplier.emails?.[0]?.value, rating: 4.5, // Временное значение productCount: 0, // Временное значение specialization: ['Оптовая торговля'], // Временное значение } onSupplierSelect(adaptedSupplier) } if (loading) { return (

Загружаем поставщиков...

) } return (
{/* Поиск */}
onSearchChange(e.target.value)} className="pl-10 glass-input text-white placeholder:text-white/40 h-10" />
{filteredSuppliers.length === 0 ? (

{searchQuery ? 'Поставщики не найдены' : 'У вас нет контрагентов-поставщиков'}

{searchQuery ? 'Попробуйте изменить условия поиска' : 'Добавьте поставщиков в разделе "Партнеры"'}

) : (
{filteredSuppliers.map((supplier) => { const adaptedSupplier: SupplierForCreation = { id: supplier.id, inn: supplier.inn || '', name: supplier.name || 'Неизвестная организация', fullName: supplier.fullName || supplier.name || 'Неизвестная организация', address: supplier.address || 'Адрес не указан', phone: supplier.phones?.[0]?.value, email: supplier.emails?.[0]?.value, rating: 4.5, productCount: 0, specialization: ['Оптовая торговля'], } return ( handleSupplierClick(supplier)} /> ) })}
)}
) }