@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)
13 lines (12 loc) • 582 B
JavaScript
import { useState } from '../use-state';
import { useCallback } from '../use-callback';
import { useMemo } from '../use-memo';
import { detectIsFunction } from '../utils';
function useReducer(reducer, initialState, initializer) {
const initialValue = useMemo(() => (detectIsFunction(initializer) ? initializer(initialState) : initialState), []);
const [state, setState] = useState(initialValue);
const dispatch = useCallback(action => setState(state => reducer(state, action)), []);
return [state, dispatch];
}
export { useReducer };
//# sourceMappingURL=use-reducer.js.map