UNPKG

@base-ui/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.

15 lines (14 loc) 515 B
'use client'; import * as React from 'react'; import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect'; import { useStableCallback } from '@base-ui/utils/useStableCallback'; export function useValueChanged(value, onChange) { const valueRef = React.useRef(value); const onChangeCallback = useStableCallback(onChange); useIsoLayoutEffect(() => { if (valueRef.current !== value) { onChangeCallback(valueRef.current); } valueRef.current = value; }, [value, onChangeCallback]); }