30 lines
		
	
	
		
			594 B
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			594 B
		
	
	
	
		
			TypeScript
		
	
	
	
import { createSlice, type PayloadAction } from "@reduxjs/toolkit";
 | 
						|
 | 
						|
interface CounterState {
 | 
						|
  value: number;
 | 
						|
}
 | 
						|
 | 
						|
const initialState: CounterState = {
 | 
						|
  value: 0,
 | 
						|
};
 | 
						|
 | 
						|
const counterSlice = createSlice({
 | 
						|
  name: "counter",
 | 
						|
  initialState,
 | 
						|
  reducers: {
 | 
						|
    increment(state) {
 | 
						|
      state.value += 1;
 | 
						|
    },
 | 
						|
    decrement(state) {
 | 
						|
      state.value -= 1;
 | 
						|
    },
 | 
						|
    incrementByAmount(state, action: PayloadAction<number>) {
 | 
						|
      state.value += action.payload;
 | 
						|
    },
 | 
						|
  },
 | 
						|
});
 | 
						|
 | 
						|
export const { increment, decrement, incrementByAmount } = counterSlice.actions;
 | 
						|
 | 
						|
export default counterSlice.reducer;
 |