31 lines
878 B
JavaScript
31 lines
878 B
JavaScript
const CounterActionTypes = {
|
|
INCREMENT: "INCREMENT",
|
|
DECREMENT: "DECREMENT",
|
|
RESET: "RESET",
|
|
SET: "SET",
|
|
};
|
|
|
|
export const initialState = { count: 0 };
|
|
|
|
export const reducer = (state, action) => {
|
|
switch (action.type) {
|
|
case CounterActionTypes.INCREMENT:
|
|
return { ...state, count: state.count + 1 };
|
|
case CounterActionTypes.DECREMENT:
|
|
return { ...state, count: state.count - 1 };
|
|
case CounterActionTypes.RESET:
|
|
return { ...state, count: 0 };
|
|
case CounterActionTypes.SET:
|
|
return { ...state, count: action.payload };
|
|
default:
|
|
return state;
|
|
}
|
|
};
|
|
|
|
export const actions = {
|
|
increment: () => ({ type: CounterActionTypes.INCREMENT }),
|
|
decrement: () => ({ type: CounterActionTypes.DECREMENT }),
|
|
reset: () => ({ type: CounterActionTypes.RESET }),
|
|
set: (value) => ({ type: CounterActionTypes.SET, payload: value }),
|
|
};
|