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