@base-ui-components/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
20 lines (19 loc) • 708 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useValueChanged = useValueChanged;
var _useIsoLayoutEffect = require("@base-ui-components/utils/useIsoLayoutEffect");
var _useEventCallback = require("@base-ui-components/utils/useEventCallback");
function useValueChanged(valueRef, value, onChangeParam) {
const onChange = (0, _useEventCallback.useEventCallback)(onChangeParam);
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
if (valueRef.current === value) {
return;
}
onChange(valueRef.current);
}, [valueRef, value, onChange]);
(0, _useIsoLayoutEffect.useIsoLayoutEffect)(() => {
valueRef.current = value;
}, [valueRef, value]);
}