UNPKG

@modern-kit/react

Version:
20 lines (16 loc) 667 B
'use strict'; 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