@zohodesk/utils
Version:
Unified Component Library - Utils
18 lines (15 loc) • 444 B
JavaScript
import { useReducer } from 'react';
export default function useCommonReducer(defaultReducer, customReducer, initialArg, init) {
const proxyReducer = (state, action) => {
let lastState = defaultReducer(state, action);
if (customReducer) {
return customReducer(lastState, action);
}
return lastState;
};
const [state, dispatch] = useReducer(proxyReducer, initialArg, init);
return {
state,
dispatch
};
}