import { useEffect } from 'react' import { Box, Typography, Paper, Card, CardContent, Chip, List, ListItem, ListItemText, Alert, CircularProgress, } from '@mui/material' import { Person, LocationOn, Home, Description, Language, Verified, } from '@mui/icons-material' import { useAppDispatch, useAppSelector } from '../store' import { extractDocument } from '../store/documentSlice' import { Layout } from '../components/Layout' export default function ExtractionView() { const dispatch = useAppDispatch() const { currentDocument, extractionResult, loading } = useAppSelector( (state) => state.document ) useEffect(() => { if (currentDocument && !extractionResult) { dispatch(extractDocument(currentDocument.id)) } }, [currentDocument, extractionResult, dispatch]) if (!currentDocument) { return ( Veuillez d'abord téléverser et sélectionner un document. ) } if (loading) { return ( Extraction en cours... ) } if (!extractionResult) { return ( Aucun résultat d'extraction disponible. ) } return ( Extraction des données {/* Informations générales */} Informations générales } label={`Langue: ${extractionResult.language}`} color="primary" variant="outlined" /> } label={`Type: ${extractionResult.documentType}`} color="secondary" variant="outlined" /> } label={`Confiance: ${(extractionResult.confidence * 100).toFixed(1)}%`} color={extractionResult.confidence > 0.8 ? 'success' : 'warning'} variant="outlined" /> {/* Identités */} Identités ({extractionResult.identities.length}) {extractionResult.identities.map((identity, index) => ( Type: {identity.type} {identity.birthDate && ( Naissance: {identity.birthDate} )} {identity.nationality && ( Nationalité: {identity.nationality} )} Confiance: {(identity.confidence * 100).toFixed(1)}% } /> ))} {/* Adresses */} Adresses ({extractionResult.addresses.length}) {extractionResult.addresses.map((address, index) => ( ))} {/* Biens */} Biens ({extractionResult.properties.length}) {extractionResult.properties.map((property, index) => ( {property.address.street} {property.surface && ( Surface: {property.surface} m² )} {property.cadastralReference && ( Cadastre: {property.cadastralReference} )} } /> ))} {/* Contrats */} Contrats ({extractionResult.contracts.length}) {extractionResult.contracts.map((contract, index) => ( Parties: {contract.parties.length} {contract.date && ( Date: {contract.date} )} Clauses: {contract.clauses.length} } /> ))} {/* Signatures */} Signatures détectées ({extractionResult.signatures.length}) {extractionResult.signatures.map((signature, index) => ( ))} {/* Texte extrait */} Texte extrait {extractionResult.text} ) }