import { fullContactDisplayName } from "./types" import type { FullContact } from "./types" function escapeHtml(s: string): string { return s .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) } export function printContacts(contacts: FullContact[], title = "Contacts"): void { const rows = contacts .map((c) => { const name = escapeHtml( fullContactDisplayName(c) || c.emails[0]?.value || c.phones[0]?.value || "—" ) const email = escapeHtml(c.emails[0]?.value ?? "") const phone = escapeHtml(c.phones[0]?.value ?? "") const company = escapeHtml( [c.jobTitle, c.company].filter(Boolean).join(", ") ) return `${name}${email}${phone}${company}` }) .join("") const html = ` ${escapeHtml(title)}

${escapeHtml(title)} (${contacts.length})

${rows}
Nom E-mail Téléphone Fonction et entreprise
` const win = window.open("", "_blank", "noopener,noreferrer") if (!win) { window.alert("Impossible d'ouvrir la fenêtre d'impression. Vérifiez les pop-ups bloquées.") return } win.document.write(html) win.document.close() win.focus() win.onload = () => { win.print() } setTimeout(() => win.print(), 250) }