feat: Referenzkurve für TDR-Chart integriert
- Neues Verzeichnis `tdr-reference-curves` für JSON-Referenzdaten hinzugefügt - Redux Slice `tdrReferenceChartSlice` erstellt - Thunk `fetchAllTDRReferenceChartThunk` zum Laden aller Referenzdaten integriert - Service `fetchAllTDRReferenceChartData` mit Umgebungsunterscheidung (dev/prod) - Anzeige der Referenzkurve im TDR-Chart mit Tooltip und gestrichelter Linie - Referenzdaten werden automatisch beim Laden der Seite in Redux geladen
This commit is contained in:
@@ -23,6 +23,12 @@ const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => {
|
||||
selectedSlot !== null ? state.tdrChart.data[selectedSlot] || [] : []
|
||||
);
|
||||
|
||||
const referenceChartData = useSelector((state: RootState) =>
|
||||
selectedSlot !== null
|
||||
? state.tdrReferenceChart.referenceData[selectedSlot] || []
|
||||
: []
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
import("chartjs-plugin-zoom").then((zoomPlugin) => {
|
||||
Chart.register(...registerables, zoomPlugin.default);
|
||||
@@ -51,6 +57,21 @@ const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => {
|
||||
yAxisKey: "p", // Pegel // statt "m"
|
||||
},
|
||||
},
|
||||
{
|
||||
label: "Referenzkurve",
|
||||
data: referenceChartData,
|
||||
borderColor: "black", // Schwarz für Referenzkurve
|
||||
borderWidth: 1,
|
||||
borderDash: [5, 5], // Gepunktete Linie
|
||||
pointRadius: 3, // Punkte für Tooltip sichtbar machen
|
||||
pointHoverRadius: 5, // Größere Punkte beim Hover
|
||||
pointBackgroundColor: "black",
|
||||
tension: 0.1,
|
||||
parsing: {
|
||||
xAxisKey: "d",
|
||||
yAxisKey: "p",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
options: {
|
||||
@@ -80,10 +101,21 @@ const TDRChart: React.FC<{ isFullScreen: boolean }> = ({ isFullScreen }) => {
|
||||
title: () => "", // 🚫 Entfernt die erste Zeile mit der Nummer
|
||||
label: function (context) {
|
||||
const rawData = context.raw as { d: number; p: number };
|
||||
return [
|
||||
`Entfernung: ${rawData.d.toFixed(0)} Meter`,
|
||||
`Pegel: ${rawData.p.toFixed(2)}`,
|
||||
];
|
||||
|
||||
// 👇 Unterscheide zwischen Mess- und Referenzkurve
|
||||
if (context.dataset.label === "Referenzkurve") {
|
||||
return [
|
||||
`Referenzwert`,
|
||||
`Entfernung: ${rawData.d.toFixed(0)} Meter`,
|
||||
`Pegel: ${rawData.p.toFixed(2)}`,
|
||||
];
|
||||
} else {
|
||||
return [
|
||||
`Messwert`,
|
||||
`Entfernung: ${rawData.d.toFixed(0)} Meter`,
|
||||
`Pegel: ${rawData.p.toFixed(2)}`,
|
||||
];
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user