react-localstorage-hooks
Version:
A collection of React hooks for reactively managing localStorage
20 lines (19 loc) • 856 B
JavaScript
import { __assign } from "tslib";
import { useCallback } from 'react';
import useLocalStorageState from '../useLocalStorageState/useLocalStorageState';
;
/**
* An alternative hook to `useLocalStorageState` for managing complex state.
*
* @param key key for localStorage
* @param reducer reducer method that returns new state
* @param opts Options object
* @returns a pair of current state and dispatch method to dispatch actions
*/
function useLocalStorageReducer(key, reducer, opts) {
var options = __assign({ initialState: undefined, sync: true }, opts);
var _a = useLocalStorageState(key, options), state = _a[0], setState = _a[1];
var dispatch = useCallback(function (action) { return setState(function (prev) { return reducer(prev, action); }); }, [setState]);
return [state, dispatch];
}
export default useLocalStorageReducer;