UNPKG

react-localstorage-hooks

Version:

A collection of React hooks for reactively managing localStorage

22 lines (21 loc) 985 B
"use strict"; 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;