import { useEffect } from 'react' import { Box, Typography, Paper, Card, CardContent, List, ListItem, ListItemText, ListItemIcon, Alert, Chip, Button, CircularProgress, } from '@mui/material' import { Lightbulb, Warning, CheckCircle, TrendingUp, Schedule, Psychology, } from '@mui/icons-material' import { useAppDispatch, useAppSelector } from '../store' import { getConseil } from '../store/documentSlice' import { Layout } from '../components/Layout' export default function ConseilView() { const dispatch = useAppDispatch() const { currentDocument, conseilResult, loading } = useAppSelector( (state) => state.document ) useEffect(() => { if (currentDocument && !conseilResult) { dispatch(getConseil(currentDocument.id)) } }, [currentDocument, conseilResult, dispatch]) if (!currentDocument) { return ( Veuillez d'abord téléverser et sélectionner un document. ) } if (loading) { return ( Génération des conseils LLM... ) } if (!conseilResult) { return ( Aucun conseil disponible. ) } const getRiskColor = (risk: string) => { if (risk.toLowerCase().includes('élevé') || risk.toLowerCase().includes('critique')) { return 'error' } if (risk.toLowerCase().includes('moyen') || risk.toLowerCase().includes('modéré')) { return 'warning' } return 'info' } return ( Conseil LLM {/* Analyse LLM */} Analyse LLM {conseilResult.analysis} Généré le {new Date(conseilResult.generatedAt).toLocaleString()} {/* Recommandations */} Recommandations ({conseilResult.recommendations.length}) {conseilResult.recommendations.map((recommendation, index) => ( ))} {/* Risques identifiés */} Risques identifiés ({conseilResult.risks.length}) {conseilResult.risks.map((risk, index) => ( ))} {/* Prochaines étapes */} Prochaines étapes recommandées {conseilResult.nextSteps.map((step, index) => ( ))} {/* Actions */} Actions {/* Résumé exécutif */} Résumé exécutif Cette analyse LLM a été générée automatiquement et doit être validée par un expert notarial. ) }