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:
42
redux/slices/tdrReferenceChartSlice.ts
Normal file
42
redux/slices/tdrReferenceChartSlice.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
// /redux/slices/tdrReferenceChartSlice.ts
|
||||
|
||||
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
||||
import { fetchAllTDRReferenceChartThunk } from "../thunks/fetchAllTDRReferenceChartThunk";
|
||||
|
||||
interface TDRReferenceChartState {
|
||||
referenceData: any[]; // Array mit Slot-Daten (Index = Slot)
|
||||
loading: boolean;
|
||||
error: string | null;
|
||||
}
|
||||
|
||||
const initialState: TDRReferenceChartState = {
|
||||
referenceData: [],
|
||||
loading: false,
|
||||
error: null,
|
||||
};
|
||||
|
||||
const tdrReferenceChartSlice = createSlice({
|
||||
name: "tdrReferenceChart",
|
||||
initialState,
|
||||
reducers: {},
|
||||
extraReducers: (builder) => {
|
||||
builder
|
||||
.addCase(fetchAllTDRReferenceChartThunk.pending, (state) => {
|
||||
state.loading = true;
|
||||
state.error = null;
|
||||
})
|
||||
.addCase(
|
||||
fetchAllTDRReferenceChartThunk.fulfilled,
|
||||
(state, action: PayloadAction<any[]>) => {
|
||||
state.loading = false;
|
||||
state.referenceData = action.payload;
|
||||
}
|
||||
)
|
||||
.addCase(fetchAllTDRReferenceChartThunk.rejected, (state, action) => {
|
||||
state.loading = false;
|
||||
state.error = action.payload as string | null;
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
export default tdrReferenceChartSlice.reducer;
|
||||
@@ -14,6 +14,7 @@ import brushReducer from "./slices/brushSlice";
|
||||
import tdrChartReducer from "./slices/tdrChartSlice";
|
||||
import analogeEingaengeReducer from "./slices/analogeEingaengeSlice";
|
||||
import digitalInputsReducer from "./slices/digitalInputsSlice";
|
||||
import tdrReferenceChartReducer from "./slices/tdrReferenceChartSlice";
|
||||
|
||||
const store = configureStore({
|
||||
reducer: {
|
||||
@@ -30,6 +31,7 @@ const store = configureStore({
|
||||
analogeEingaenge: analogeEingaengeReducer,
|
||||
brush: brushReducer,
|
||||
tdrChart: tdrChartReducer,
|
||||
tdrReferenceChart: tdrReferenceChartReducer,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
16
redux/thunks/fetchAllTDRReferenceChartThunk.ts
Normal file
16
redux/thunks/fetchAllTDRReferenceChartThunk.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
// /redux/thunks/fetchAllTDRReferenceChartThunk.ts
|
||||
|
||||
import { createAsyncThunk } from "@reduxjs/toolkit";
|
||||
import { fetchAllTDRReferenceChartData } from "../../services/fetchAllTDRReferenceChartData";
|
||||
|
||||
export const fetchAllTDRReferenceChartThunk = createAsyncThunk(
|
||||
"tdrReferenceChart/fetchAll",
|
||||
async (_, { rejectWithValue }) => {
|
||||
try {
|
||||
const data = await fetchAllTDRReferenceChartData();
|
||||
return data;
|
||||
} catch (error) {
|
||||
return rejectWithValue("Referenzdaten konnten nicht geladen werden");
|
||||
}
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user