UNPKG

@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
"use strict"; 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]); }