import { CheckCircle } from "lucide-react"; interface AnonymizationInterfaceProps { isProcessing: boolean; outputText?: string; sourceText?: string; } export const AnonymizationInterface = ({ isProcessing, outputText, sourceText, }: AnonymizationInterfaceProps) => { // Fonction pour détecter quels types de données ont été anonymisés const getAnonymizedDataTypes = () => { if (!outputText || !sourceText) return new Set(); const anonymizedTypes = new Set(); if (outputText.includes("")) { anonymizedTypes.add("Prénoms"); anonymizedTypes.add("Noms de famille"); anonymizedTypes.add("Noms complets"); } // EMAIL_ADDRESS -> Adresses e-mail if (outputText.includes("")) { anonymizedTypes.add("Adresses e-mail"); } // PHONE_NUMBER -> Numéros de téléphone if (outputText.includes("")) { anonymizedTypes.add("Numéros de téléphone"); } // BE_PHONE_NUMBER -> aussi Numéros de téléphone if (outputText.includes("")) { anonymizedTypes.add("Numéros de téléphone"); } // LOCATION -> Adresses if (outputText.includes("")) { anonymizedTypes.add("Adresses"); } // BE_ADDRESS -> aussi Adresses if (outputText.includes("")) { anonymizedTypes.add("Adresses"); } // DATE -> Dates if (outputText.includes("") || outputText.includes("")) { anonymizedTypes.add("Dates"); } // IBAN -> Coordonnées bancaires (au lieu de Numéros d'ID) if (outputText.includes("")) { anonymizedTypes.add("Coordonnées bancaires"); } // CREDIT_CARD -> aussi Coordonnées bancaires (au lieu de Valeurs numériques) if (outputText.includes("")) { anonymizedTypes.add("Coordonnées bancaires"); } // NRP -> Numéros d'ID if (outputText.includes("")) { anonymizedTypes.add("Numéros d'ID"); } // BE_PRO_ID -> Numéros d'ID if (outputText.includes("")) { anonymizedTypes.add("Numéros d'ID"); } // BE_ENTERPRISE_NUMBER -> Numéros d'ID if (outputText.includes("")) { anonymizedTypes.add("Numéros d'ID"); } // URL -> Noms de domaine if (outputText.includes("")) { anonymizedTypes.add("Noms de domaine"); } // CREDIT_CARD -> Coordonnées bancaires (supprimer la duplication) if (outputText.includes("")) { anonymizedTypes.add("Coordonnées bancaires"); } // IP_ADDRESS -> Valeurs numériques if (outputText.includes("")) { anonymizedTypes.add("Valeurs numériques"); } // BE_VAT -> Valeurs numériques if (outputText.includes("")) { anonymizedTypes.add("Valeurs numériques"); } return anonymizedTypes; }; // Structure exacte de SupportedDataTypes (récupérée dynamiquement) const supportedDataStructure = [ { items: ["Prénoms", "Numéros de téléphone", "Noms de domaine"], }, { items: ["Noms de famille", "Adresses", "Dates"], }, { items: ["Noms complets", "Numéros d'ID", "Coordonnées bancaires"], }, { items: ["Adresses e-mail", "Valeurs monétaires", "Texte personnalisé"], }, ]; if (isProcessing) { return (

Anonymisation en cours...

Analyse du contenu
Détection des données sensibles
Application de l'anonymisation
); } if (outputText) { const anonymizedTypes = getAnonymizedDataTypes(); return (

Anonymisation terminée avec succès

{supportedDataStructure.map((column, columnIndex) => (
{column.items.map((item, itemIndex) => { const isAnonymized = anonymizedTypes.has(item); return ( {isAnonymized ? "✓" : "•"} {item} ); })}
))}
); } return null; };