@modern-kit/react
Version:
20 lines (16 loc) • 667 B
JavaScript
;
var React = require('react');
var hooksUsePreservedCallback = require('../usePreservedCallback/index.cjs');
var utils = require('@modern-kit/utils');
function usePreservedState(value, comparator = utils.isEqual) {
const [preservedState, setPreservedState] = React.useState(value);
const callbackComparator = hooksUsePreservedCallback.usePreservedCallback(comparator);
React.useEffect(() => {
if (!callbackComparator(preservedState, value)) {
setPreservedState(value);
}
}, [callbackComparator, preservedState, value]);
return preservedState;
}
exports.usePreservedState = usePreservedState;
//# sourceMappingURL=index.cjs.map