UNPKG

@darwish/hooks-core

Version:

22 lines (21 loc) 716 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var immer_1 = require("immer"); var react_1 = require("react"); function useImmer(initialValue) { var _a = (0, react_1.useState)(function () { return (0, immer_1.freeze)(typeof initialValue === 'function' ? initialValue() : initialValue, true); }), val = _a[0], updateValue = _a[1]; return [ val, (0, react_1.useCallback)(function (updater) { if (typeof updater === 'function') updateValue((0, immer_1.produce)(updater)); else updateValue((0, immer_1.freeze)(updater)); }, []), ]; } exports.default = useImmer;