new interactive

This commit is contained in:
Biqoz
2025-09-15 19:05:59 +02:00
parent 130929b756
commit 050474e95b
16 changed files with 746 additions and 330 deletions

View File

@@ -7,7 +7,7 @@ import { ProgressBar } from "./components/ProgressBar";
import { useFileHandler } from "./components/FileHandler";
import { useAnonymization } from "./components/AnonymizationLogic";
import { useDownloadActions } from "./components/DownloadActions";
import { ResultPreviewComponent } from "./components/ResultPreviewComponent";
import { EntityMapping } from "./config/entityLabels"; // Importer l'interface unifiée
// Supprimer l'interface locale EntityMapping (lignes 12-18)
@@ -15,6 +15,7 @@ import { EntityMapping } from "./config/entityLabels"; // Importer l'interface u
export default function Home() {
const [sourceText, setSourceText] = useState("");
const [outputText, setOutputText] = useState("");
const [anonymizedText, setAnonymizedText] = useState(""); // Nouveau state pour le texte anonymisé de Presidio
const [uploadedFile, setUploadedFile] = useState<File | null>(null);
const [error, setError] = useState<string | null>(null);
const [isLoadingFile, setIsLoadingFile] = useState(false);
@@ -60,16 +61,18 @@ export default function Home() {
setOutputText,
setError,
setEntityMappings,
setAnonymizedText, // Passer la fonction pour stocker le texte anonymisé
});
const { copyToClipboard, downloadText } = useDownloadActions({
outputText,
entityMappings,
anonymizedText, // Passer le texte anonymisé de Presidio
});
// Fonction wrapper pour appeler anonymizeData avec les bonnes données
const handleAnonymize = () => {
anonymizeData({ file: uploadedFile, text: sourceText });
const handleAnonymize = (category?: string) => {
anonymizeData({ file: uploadedFile, text: sourceText, category });
};
return (
@@ -102,26 +105,11 @@ export default function Home() {
isExampleLoaded={isExampleLoaded}
setIsExampleLoaded={setIsExampleLoaded}
entityMappings={entityMappings}
onMappingsUpdate={handleMappingsUpdate}
/>
</div>
</div>
{/* Interactive Text Editor - Nouveau composant pour l'édition interactive */}
{outputText && (
<div className="bg-white rounded-2xl border border-gray-100 overflow-hidden">
<div className="p-1 sm:p-3">
<ResultPreviewComponent
outputText={outputText}
sourceText={sourceText}
copyToClipboard={copyToClipboard}
downloadText={downloadText}
entityMappings={entityMappings}
onMappingsUpdate={handleMappingsUpdate}
/>
</div>
</div>
)}
{/* Entity Mapping Table - Seulement si outputText existe */}
{outputText && (
<div className="bg-white rounded-2xl border border-gray-100 overflow-hidden">