Iapetus / frontend /src /components /ExportButton.jsx
EphAsad's picture
Upload 9972 files
01fdca8 verified
Raw
History Blame Contribute Delete
1.05 kB
import { useState } from "react";
import { exportReport } from "../utils/exportReport";
/**
* Button to export simulation results as a downloadable PDF report.
*/
export function ExportButton({ result, scenario, chartRef }) {
const [exporting, setExporting] = useState(false);
async function handleExport() {
setExporting(true);
try {
const chartElement = chartRef?.current || null;
await exportReport(result, scenario, chartElement);
} catch (err) {
console.error("Export failed:", err);
alert("Export failed. Please try again.");
} finally {
setExporting(false);
}
}
return (
<div className="export-section">
<button
className="export-button"
onClick={handleExport}
disabled={exporting}
>
{exporting ? "Generating PDF..." : "Export Report (PDF)"}
</button>
<p className="export-note">
Download a formatted PDF report with scenario inputs, growth chart, risk analysis, and recommendations.
</p>
</div>
);
}