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.

16 lines 578 B
import * as React from 'react'; import { useIsoLayoutEffect } from '@base-ui-components/utils/useIsoLayoutEffect'; import { useStableCallback } from '@base-ui-components/utils/useStableCallback'; export function useValueChanged(value, onChange) { const valueRef = React.useRef(value); const onChangeCallback = useStableCallback(onChange); useIsoLayoutEffect(() => { if (valueRef.current === value) { return; } onChangeCallback(valueRef.current); }, [value, onChangeCallback]); useIsoLayoutEffect(() => { valueRef.current = value; }, [value]); }