@darwish/hooks-core
Version:
22 lines (21 loc) • 716 B
JavaScript
;
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;