@dark-engine/core
Version:
The lightweight and powerful UI rendering engine without dependencies and written in TypeScript (Browser, Node.js, Android, iOS, Windows, Linux, macOS)
19 lines (18 loc) • 781 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
exports.useReducer = void 0;
const use_state_1 = require('../use-state');
const use_callback_1 = require('../use-callback');
const use_memo_1 = require('../use-memo');
const utils_1 = require('../utils');
function useReducer(reducer, initialState, initializer) {
const initialValue = (0, use_memo_1.useMemo)(
() => ((0, utils_1.detectIsFunction)(initializer) ? initializer(initialState) : initialState),
[],
);
const [state, setState] = (0, use_state_1.useState)(initialValue);
const dispatch = (0, use_callback_1.useCallback)(action => setState(state => reducer(state, action)), []);
return [state, dispatch];
}
exports.useReducer = useReducer;
//# sourceMappingURL=use-reducer.js.map