UNPKG

@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
'use strict'; 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