react-localstorage-hooks
Version:
A collection of React hooks for reactively managing localStorage
22 lines (21 loc) • 985 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = require("react");
var useLocalStorageState_1 = tslib_1.__importDefault(require("../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 = tslib_1.__assign({ initialState: undefined, sync: true }, opts);
var _a = useLocalStorageState_1.default(key, options), state = _a[0], setState = _a[1];
var dispatch = react_1.useCallback(function (action) { return setState(function (prev) { return reducer(prev, action); }); }, [setState]);
return [state, dispatch];
}
exports.default = useLocalStorageReducer;