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)

13 lines (12 loc) 582 B
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