You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
730 B
24 lines
730 B
import { EffectCallback, DependencyList } from 'react';
|
|
/**
|
|
* Runs a layout effect only when the dependencies have changed, skipping the
|
|
* initial "on mount" run. Caution, if the dependency list never changes,
|
|
* the effect is **never run**
|
|
*
|
|
* ```ts
|
|
* const ref = useRef<HTMLInput>(null);
|
|
*
|
|
* // focuses an element only if the focus changes, and not on mount
|
|
* useUpdateLayoutEffect(() => {
|
|
* const element = ref.current?.children[focusedIdx] as HTMLElement
|
|
*
|
|
* element?.focus()
|
|
*
|
|
* }, [focusedIndex])
|
|
* ```
|
|
* @param effect An effect to run on mount
|
|
*
|
|
* @category effects
|
|
*/
|
|
declare function useUpdateLayoutEffect(fn: EffectCallback, deps: DependencyList): void;
|
|
export default useUpdateLayoutEffect;
|