UNPKG

@zohodesk/hooks

Version:

Unified Component Library - Hooks

19 lines (17 loc) 657 B
// Use this hook when the state is object and need to merge the new state object when state update import { useState, useCallback } from 'react'; export default function useMergeState() { let initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; const [state, setState] = useState(initialState); const setMergeState = useCallback(newState => setState(prevState => { const _prevState = prevState; let _newState = newState; if (typeof newState === 'function') { _newState = newState(prevState); } return { ..._prevState, ..._newState }; }), []); return [state, setMergeState]; }