import React from 'react'; import { X, Building, Mail, Phone, MapPin, Globe, FileText, DollarSign, Users, Calendar } from 'lucide-react'; import { VendorModalProps } from '../types/vendor'; const VendorDetailsModal: React.FC = ({ vendor, isOpen, onClose, onApprove, onReject }) => { console.log('VendorDetailsModal props:', { isOpen, vendor: vendor?.id, vendorName: vendor ? `${vendor.firstName} ${vendor.lastName}` : null }); if (!isOpen || !vendor) return null; const formatRoleName = (role: string) => { if (role.startsWith('channel_partner_')) { return 'Vendor'; } else if (role.startsWith('reseller_')) { return 'Reseller'; } else if (role.startsWith('system_')) { return 'System Admin'; } return role.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()); }; const formatUserType = (userType: string) => { if (userType === 'channel_partner') { return 'Vendor'; } else if (userType === 'reseller') { return 'Reseller'; } return userType.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()); }; const formatCurrency = (amount: number) => { return new Intl.NumberFormat('en-IN', { style: 'currency', currency: 'INR', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(amount); }; return (
{/* Header */}

Vendor Details

{/* Content */}
{/* Basic Information */}

Basic Information

{vendor.firstName} {vendor.lastName}

{vendor.email}

{vendor.phone || 'N/A'}

{vendor.company}

{formatRoleName(vendor.role)}

{formatUserType(vendor.userType)}

{/* Business Information */} {(vendor.companyType || vendor.registrationNumber || vendor.gstNumber || vendor.panNumber) && (

Business Information

{vendor.companyType && (

{vendor.companyType.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())}

)} {vendor.registrationNumber && (

{vendor.registrationNumber}

)} {vendor.gstNumber && (

{vendor.gstNumber}

)} {vendor.panNumber && (

{vendor.panNumber}

)}
)} {/* Financial Information */} {(vendor.annualRevenue || vendor.employeeCount || vendor.yearsInBusiness) && (

Financial Information

{vendor.annualRevenue && (

{formatCurrency(vendor.annualRevenue)}

)} {vendor.employeeCount && (

{vendor.employeeCount} employees

)} {vendor.yearsInBusiness && (

{vendor.yearsInBusiness} years

)}
)} {/* Address Information */} {vendor.address && (

Address Information

{vendor.address}

)} {/* Additional Information */} {(vendor.website || vendor.businessLicense || vendor.taxId || vendor.industry) && (

Additional Information

{vendor.website && ( )} {vendor.businessLicense && (

{vendor.businessLicense}

)} {vendor.taxId && (

{vendor.taxId}

)} {vendor.industry && (

{vendor.industry}

)}
)} {/* Rejection Information */} {vendor.rejectionReason && (

Rejection Information

{vendor.rejectionReason}

)} {/* Timestamp */}

Timestamp

{new Date(vendor.createdAt).toLocaleString()}

{/* Footer */}
{vendor.status === 'pending' && ( <> )}
); }; export default VendorDetailsModal;