"use client"; import React, { useState } from 'react'; import { Search, User, Mail, Phone, Building, MapPin, ChevronRight, Plus, Users } 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 => { const searchLower = searchQuery.toLowerCase(); return ( (contact.fullName?.toLowerCase() || '').includes(searchLower) || (contact.email?.toLowerCase() || '').includes(searchLower) || (contact.organization?.toLowerCase() || '').includes(searchLower) ); }); return (
{/* Header with Add Contact Button */}

Carnet d'adresses

{/* 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 || 'Sans nom'}
    {contact.email && (
    {contact.email}
    )}
  • ))}
)}
); };