import React from 'react'; import { Vendor } from '../types'; import { ShoppingCart, Star, TrendingUp, TrendingDown, Package, Clock, ShieldCheck, Search, Filter, MoreVertical } from 'lucide-react'; interface VendorAnalyticsProps { vendors: Vendor[]; } const VendorAnalytics: React.FC = ({ vendors }) => { const [searchQuery, setSearchQuery] = React.useState(''); const filteredVendors = vendors.filter(v => v.name.toLowerCase().includes(searchQuery.toLowerCase()) || v.category.toLowerCase().includes(searchQuery.toLowerCase()) ); const getRatingColor = (rating: number) => { if (rating >= 4.5) return 'text-emerald-600 bg-emerald-50 border-emerald-100'; if (rating >= 3.5) return 'text-blue-600 bg-blue-50 border-blue-100'; if (rating >= 2.5) return 'text-amber-600 bg-amber-50 border-amber-100'; return 'text-red-600 bg-red-50 border-red-100'; }; return (
setSearchQuery(e.target.value)} className="w-full pl-10 pr-4 py-2 bg-slate-50 border border-slate-200 rounded-xl focus:ring-2 focus:ring-blue-500 outline-none text-sm transition-all" />
{filteredVendors.length === 0 ? (

No vendors found

) : ( filteredVendors.map(vendor => (
{vendor.rating.toFixed(1)}

{vendor.name}

{vendor.category}
Total Orders

{vendor.totalOrders}

On-Time Rate

90 ? 'text-emerald-600' : 'text-amber-600'}`}> {vendor.onTimeDeliveryRate}%

Quality Score {vendor.qualityScore}%
Avg. 4 days delivery
)) )}
); }; export default VendorAnalytics;