Files
CPLv4.0/redux/slices/tdrDataByIdSlice.ts
2025-06-21 10:15:05 +02:00

36 lines
1.1 KiB
TypeScript

// redux/slices/tdrDataByIdSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { getTDRChartDataByIdThunk } from "../thunks/getTDRChartDataByIdThunk";
const initialState = {
dataById: {} as Record<number, { d: number; p: number }[]>,
selectedId: null as number | null,
};
const tdrDataByIdSlice = createSlice({
name: "tdrDataByIdSlice",
initialState,
reducers: {
setTDRChartDataById: (
state,
action: PayloadAction<{ id: number; data: { d: number; p: number }[] }>
) => {
state.dataById[action.payload.id] = action.payload.data;
},
setSelectedTDRId: (state, action: PayloadAction<number>) => {
state.selectedId = action.payload;
},
},
extraReducers: (builder) => {
builder.addCase(getTDRChartDataByIdThunk.fulfilled, (state, action) => {
const { id, data } = action.payload;
state.dataById[id] = data;
state.selectedId = id;
});
},
});
export const { setTDRChartDataById, setSelectedTDRId } =
tdrDataByIdSlice.actions;
export default tdrDataByIdSlice.reducer;