All files / src/features/tree numericTree.ts

0% Statements 0/4
100% Branches 0/0
0% Functions 0/1
0% Lines 0/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28                                                       
import { createGenericSlice, TreeState } from './genericTree';
import { PayloadAction } from '@reduxjs/toolkit';
 
type NumericTreeData = number;
const initialState: TreeState<NumericTreeData> = {
  root: undefined,
  childMap: {},
  parentMap: {},
  nodeMap: {},
};
export interface UpdateNodePayload {
  id: string;
  data: number;
}
export const numericTreeSlice = createGenericSlice({
  name: 'numericTree',
  initialState,
  reducers: {
    // extended reducers
    updateNode: (state, action: PayloadAction<UpdateNodePayload>) => {
      const { id, data } = action.payload;
      state.nodeMap[id] += data;    // state.nodeMap[id]: T is inferred as number
    }
  }
});
 
export default numericTreeSlice.reducer;