import React from "react"; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend, } from "recharts"; import { SpectrumData } from "../apiClient"; interface SpectrumChartProps { spectrum: SpectrumData; processedSpectrum?: SpectrumData; } const SpectrumChart: React.FC = ({ spectrum, processedSpectrum, }) => { if (!spectrum || !spectrum.x_values || spectrum.x_values.length === 0) { return null; } const chartData = spectrum.x_values.map((x, index) => ({ wavenumber: x, intensity: spectrum.y_values[index], processed: processedSpectrum ? processedSpectrum.y_values[index] : undefined, })); return ( Math.round(tick).toString()} tick={{ fill: "var(--color-text-tertiary)" }} label={{ value: "Wavenumber (cm⁻¹)", position: "insideBottom", offset: -15, fill: "var(--color-text-secondary)", }} /> [ typeof value === "number" ? value.toFixed(4) : value, name === "intensity" ? "Original" : "Processed", ]} labelFormatter={(label: any) => typeof label === "number" ? `Wavenumber: ${label.toFixed(2)} cm⁻¹` : "" } /> {processedSpectrum && ( )} ); }; export default SpectrumChart;