feat: lokale Speicherung der Referenzkurve per localStorage implementiert
- Aktuelle Messkurve wird bei Klick auf „Als Referenzkurve setzen“ in localStorage gespeichert - fetchTDRReferenceCurve lädt zuerst aus localStorage, dann aus Datei/Produktion - Ermöglicht Setzen und Testen von Referenzkurven in der Entwicklungsumgebung ohne Backend
This commit is contained in:
@@ -22,7 +22,11 @@ const TDRChartActionBar: React.FC = () => {
|
||||
const idsForSlot =
|
||||
selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : [];
|
||||
|
||||
const tdrDataById = useSelector(
|
||||
(state: RootState) => state.tdrDataById.dataById
|
||||
);
|
||||
const [selectedId, setSelectedId] = useState<number | null>(null);
|
||||
const currentChartData = selectedId !== null ? tdrDataById[selectedId] : [];
|
||||
|
||||
// 🔄 Dropdown-Auswahl: neue Messung laden
|
||||
const handleSelectChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
||||
@@ -32,19 +36,15 @@ const TDRChartActionBar: React.FC = () => {
|
||||
};
|
||||
|
||||
// 📌 Referenz setzen (nutzt Slotnummer + 1 für die API)
|
||||
const handleSetReference = async () => {
|
||||
if (selectedId === null || selectedSlot === null) return;
|
||||
const handleSetReference = () => {
|
||||
if (selectedSlot === null || !currentChartData?.length) return;
|
||||
|
||||
const apiSlot = selectedSlot + 1;
|
||||
const url = `${window.location.origin}/CPL?seite.ACP&KTR${apiSlot}=${selectedId}`;
|
||||
try {
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve");
|
||||
alert("✅ Referenzkurve erfolgreich gesetzt.");
|
||||
} catch (error) {
|
||||
console.error("❌ Fehler:", error);
|
||||
alert("❌ Referenzkurve konnte nicht gesetzt werden.");
|
||||
}
|
||||
localStorage.setItem(
|
||||
`ref-curve-slot${selectedSlot}`,
|
||||
JSON.stringify(currentChartData)
|
||||
);
|
||||
|
||||
alert("✅ Referenzkurve lokal gespeichert (nur im Browser)");
|
||||
};
|
||||
|
||||
// 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||
|
||||
*/
|
||||
const webVersion = "1.6.186";
|
||||
const webVersion = "1.6.187";
|
||||
export default webVersion;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// /redux/thunks/fetchAllTDRReferenceChartThunk.ts
|
||||
// /redux/thunks/fetchReferenceCurveBySlotThunk.ts
|
||||
import { createAsyncThunk } from "@reduxjs/toolkit";
|
||||
import { fetchTDRReferenceCurve } from "../../services/fetchTDRReferenceCurve";
|
||||
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
// /services/fetchTDRReferenceCurve.ts
|
||||
|
||||
export const fetchTDRReferenceCurve = async (
|
||||
slot: number
|
||||
): Promise<any[] | null> => {
|
||||
if (typeof window === "undefined") return null;
|
||||
// ✅ Erst aus localStorage lesen
|
||||
const local = localStorage.getItem(`ref-curve-slot${slot}`);
|
||||
if (local) {
|
||||
console.log(`📦 Lade Referenzkurve für Slot ${slot} aus localStorage`);
|
||||
return JSON.parse(local);
|
||||
}
|
||||
|
||||
// 🔁 Fallback: Datei oder Produktion-API
|
||||
const isDev = process.env.NEXT_PUBLIC_NODE_ENV === "development";
|
||||
|
||||
const url = isDev
|
||||
? `/CPLmockData/tdr-reference-curves/slot${slot}.json`
|
||||
: `${window.location.origin}/CPL?Service/empty.acp&TDRR=${slot}`;
|
||||
@@ -15,10 +21,7 @@ export const fetchTDRReferenceCurve = async (
|
||||
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||
return await res.json();
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`❌ Fehler beim Laden der Referenzkurve für Slot ${slot}:`,
|
||||
error
|
||||
);
|
||||
console.error(`❌ Fehler beim Laden von Slot ${slot}:`, error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user