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;
|