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 =
|
const idsForSlot =
|
||||||
selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : [];
|
selectedSlot !== null ? tdmChartData[selectedSlot] ?? [] : [];
|
||||||
|
|
||||||
|
const tdrDataById = useSelector(
|
||||||
|
(state: RootState) => state.tdrDataById.dataById
|
||||||
|
);
|
||||||
const [selectedId, setSelectedId] = useState<number | null>(null);
|
const [selectedId, setSelectedId] = useState<number | null>(null);
|
||||||
|
const currentChartData = selectedId !== null ? tdrDataById[selectedId] : [];
|
||||||
|
|
||||||
// 🔄 Dropdown-Auswahl: neue Messung laden
|
// 🔄 Dropdown-Auswahl: neue Messung laden
|
||||||
const handleSelectChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
const handleSelectChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
|
||||||
@@ -32,19 +36,15 @@ const TDRChartActionBar: React.FC = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 📌 Referenz setzen (nutzt Slotnummer + 1 für die API)
|
// 📌 Referenz setzen (nutzt Slotnummer + 1 für die API)
|
||||||
const handleSetReference = async () => {
|
const handleSetReference = () => {
|
||||||
if (selectedId === null || selectedSlot === null) return;
|
if (selectedSlot === null || !currentChartData?.length) return;
|
||||||
|
|
||||||
const apiSlot = selectedSlot + 1;
|
localStorage.setItem(
|
||||||
const url = `${window.location.origin}/CPL?seite.ACP&KTR${apiSlot}=${selectedId}`;
|
`ref-curve-slot${selectedSlot}`,
|
||||||
try {
|
JSON.stringify(currentChartData)
|
||||||
const response = await fetch(url);
|
);
|
||||||
if (!response.ok) throw new Error("Fehler beim Setzen der Referenzkurve");
|
|
||||||
alert("✅ Referenzkurve erfolgreich gesetzt.");
|
alert("✅ Referenzkurve lokal gespeichert (nur im Browser)");
|
||||||
} catch (error) {
|
|
||||||
console.error("❌ Fehler:", error);
|
|
||||||
alert("❌ Referenzkurve konnte nicht gesetzt werden.");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden
|
// 📥 Beim Slot-Wechsel TDM-Liste + letzte ID laden
|
||||||
|
|||||||
@@ -6,5 +6,5 @@
|
|||||||
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
2: Patch oder Hotfix (Bugfixes oder kleine Änderungen).
|
||||||
|
|
||||||
*/
|
*/
|
||||||
const webVersion = "1.6.186";
|
const webVersion = "1.6.187";
|
||||||
export default webVersion;
|
export default webVersion;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// /redux/thunks/fetchAllTDRReferenceChartThunk.ts
|
// /redux/thunks/fetchReferenceCurveBySlotThunk.ts
|
||||||
import { createAsyncThunk } from "@reduxjs/toolkit";
|
import { createAsyncThunk } from "@reduxjs/toolkit";
|
||||||
import { fetchTDRReferenceCurve } from "../../services/fetchTDRReferenceCurve";
|
import { fetchTDRReferenceCurve } from "../../services/fetchTDRReferenceCurve";
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,17 @@
|
|||||||
// /services/fetchTDRReferenceCurve.ts
|
// /services/fetchTDRReferenceCurve.ts
|
||||||
|
|
||||||
export const fetchTDRReferenceCurve = async (
|
export const fetchTDRReferenceCurve = async (
|
||||||
slot: number
|
slot: number
|
||||||
): Promise<any[] | null> => {
|
): 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 isDev = process.env.NEXT_PUBLIC_NODE_ENV === "development";
|
||||||
|
|
||||||
const url = isDev
|
const url = isDev
|
||||||
? `/CPLmockData/tdr-reference-curves/slot${slot}.json`
|
? `/CPLmockData/tdr-reference-curves/slot${slot}.json`
|
||||||
: `${window.location.origin}/CPL?Service/empty.acp&TDRR=${slot}`;
|
: `${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}`);
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||||
return await res.json();
|
return await res.json();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(
|
console.error(`❌ Fehler beim Laden von Slot ${slot}:`, error);
|
||||||
`❌ Fehler beim Laden der Referenzkurve für Slot ${slot}:`,
|
|
||||||
error
|
|
||||||
);
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user