Rag-Model-For-DA / frontend /src /components /ReportPreview.jsx
Abhisingh-18's picture
Mirror of github.com/Abhisingh18/Rag-Model-For-DA
bd699fe verified
Raw
History Blame Contribute Delete
6.73 kB
import { Download, FileText, CheckCircle } from 'lucide-react';
function ReportPreview({ data }) {
const { reportFilename, analysis, executiveSummary } = data;
const handleDownload = () => {
window.open(`/api/analysis/report/${reportFilename}`, '_blank');
};
return (
<div className="fade-in">
<div className="glass-panel" style={{ maxWidth: '900px', margin: '0 auto' }}>
<div className="text-center mb-4">
<div style={{
width: '80px',
height: '80px',
margin: '0 auto 1.5rem',
background: 'linear-gradient(135deg, #10b981 0%, #059669 100%)',
borderRadius: '50%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: 'white'
}}>
<CheckCircle size={40} />
</div>
<h2 style={{ fontSize: '2rem', fontWeight: '700', marginBottom: '0.5rem' }}>
Report Generated Successfully
</h2>
<p style={{ color: 'var(--text-secondary)', fontSize: '1rem' }}>
Your government-format analysis report is ready for download
</p>
</div>
{/* Report Preview */}
<div style={{
background: 'var(--bg-secondary)',
border: '2px solid var(--border)',
borderRadius: 'var(--radius-lg)',
padding: '2rem',
marginBottom: '2rem'
}}>
<div style={{
borderBottom: '3px solid var(--primary)',
paddingBottom: '1.5rem',
marginBottom: '1.5rem',
textAlign: 'center'
}}>
<h3 style={{ fontSize: '1.5rem', fontWeight: '700', color: 'var(--primary)' }}>
GOVERNMENT OF INDIA
</h3>
<p style={{ fontSize: '1.2rem', fontWeight: '600', marginTop: '0.5rem' }}>
National Disaster Management Authority
</p>
<p style={{ fontSize: '0.9rem', color: 'var(--text-secondary)', marginTop: '0.25rem' }}>
(Ministry of Home Affairs)
</p>
</div>
<div style={{ textAlign: 'center', marginBottom: '2rem' }}>
<h4 style={{ fontSize: '1.3rem', fontWeight: '700', marginBottom: '0.5rem' }}>
DISASTER MANAGEMENT TRAINING
</h4>
<h4 style={{ fontSize: '1.2rem', fontWeight: '600', color: 'var(--text-secondary)' }}>
ANALYSIS REPORT
</h4>
</div>
<div style={{ marginBottom: '1.5rem' }}>
<h5 style={{ fontSize: '1.1rem', fontWeight: '600', marginBottom: '0.75rem', color: 'var(--primary)' }}>
EXECUTIVE SUMMARY
</h5>
<p style={{ lineHeight: '1.8', color: 'var(--text-secondary)', textAlign: 'justify', fontSize: '0.95rem' }}>
{executiveSummary ? executiveSummary.substring(0, 300) + '...' : 'Analysis summary not available'}
</p>
</div>
<div style={{ marginBottom: '1.5rem' }}>
<h5 style={{ fontSize: '1.1rem', fontWeight: '600', marginBottom: '0.75rem', color: 'var(--primary)' }}>
KEY METRICS
</h5>
<div className="grid grid-cols-2 gap-3">
<div style={{ padding: '0.75rem', background: 'var(--bg-tertiary)', borderRadius: 'var(--radius-md)' }}>
<p style={{ fontSize: '0.875rem', color: 'var(--text-secondary)' }}>Total Training Sessions</p>
<p style={{ fontSize: '1.5rem', fontWeight: '700', color: 'var(--primary)' }}>
{analysis.totalTrainings || 'N/A'}
</p>
</div>
<div style={{ padding: '0.75rem', background: 'var(--bg-tertiary)', borderRadius: 'var(--radius-md)' }}>
<p style={{ fontSize: '0.875rem', color: 'var(--text-secondary)' }}>Total Participants</p>
<p style={{ fontSize: '1.5rem', fontWeight: '700', color: 'var(--secondary)' }}>
{analysis.totalParticipants || 'N/A'}
</p>
</div>
</div>
</div>
<div style={{
borderTop: '2px solid var(--border)',
paddingTop: '1rem',
marginTop: '2rem',
textAlign: 'center',
fontSize: '0.875rem',
color: 'var(--text-tertiary)'
}}>
<p>© National Disaster Management Authority, Government of India</p>
<p style={{ marginTop: '0.25rem', fontSize: '0.8rem', fontStyle: 'italic' }}>
CONFIDENTIAL - For Official Use Only
</p>
</div>
</div>
{/* Download Button */}
<div className="text-center">
<button
onClick={handleDownload}
className="btn btn-success"
style={{ fontSize: '1.1rem', padding: '1rem 2.5rem' }}
>
<Download size={24} />
Download Full Report (PDF)
</button>
<p style={{ marginTop: '1rem', color: 'var(--text-secondary)', fontSize: '0.9rem' }}>
The complete report includes detailed analysis, charts, gap analysis, and recommendations
</p>
</div>
</div>
</div>
);
}
export default ReportPreview;