"use client"; import React, { useState } from 'react'; import { Search, User, Mail, Phone, Building, MapPin, ChevronRight } from 'lucide-react'; interface Contact { id: string; fullName: string; email: string; phone?: string; organization?: string; address?: string; notes?: string; group?: string; } interface ContactsViewProps { contacts: Contact[]; onContactSelect: (contact: Contact) => void; selectedContact: Contact | null; loading?: boolean; } export const ContactsView: React.FC = ({ contacts, onContactSelect, selectedContact, loading = false }) => { const [searchQuery, setSearchQuery] = useState(''); const filteredContacts = contacts.filter(contact => contact.fullName.toLowerCase().includes(searchQuery.toLowerCase()) || contact.email.toLowerCase().includes(searchQuery.toLowerCase()) || contact.organization?.toLowerCase().includes(searchQuery.toLowerCase()) ); return (
{/* Search Bar */}
setSearchQuery(e.target.value)} placeholder="Rechercher un contact..." className="w-full pl-9 pr-4 py-2 bg-white border border-carnet-border rounded-md text-sm text-carnet-text-primary placeholder-carnet-text-muted focus:outline-none focus:ring-1 focus:ring-primary" />
{/* Contacts List */}
{loading ? (
Chargement...
) : filteredContacts.length === 0 ? (
Aucun contact trouvé
) : (
    {filteredContacts.map((contact) => (
  • onContactSelect(contact)} className={`p-4 cursor-pointer hover:bg-carnet-hover ${ selectedContact?.id === contact.id ? 'bg-carnet-hover' : '' }`} >
    {contact.fullName}
    {contact.email}
  • ))}
)}
{/* Contact Details */} {selectedContact && (

{selectedContact.fullName}

{selectedContact.organization && (

{selectedContact.organization}

)}
{selectedContact.email && (
{selectedContact.email}
)} {selectedContact.phone && (
{selectedContact.phone}
)} {selectedContact.address && (
{selectedContact.address}
)} {selectedContact.notes && (

Notes

{selectedContact.notes}

)}
)}
); };