UNPKG

@figliolia/react-hooks

Version:

A small collection of simple React Hooks you're probably rewriting on a regular basis

23 lines (20 loc) 565 B
import type { RefCallback, RefObject } from "react"; import { useCallback } from "react"; export const useMergedRefs = <T>( ...refs: (RefObject<T | null> | RefCallback<T> | null | undefined)[] ) => { const ref = useCallback( (instance: T | null) => { for (const mergedRef of refs) { if (typeof mergedRef === "function") { mergedRef(instance); } else if (mergedRef && typeof mergedRef === "object") { // @ts-ignore mergedRef.current = instance; } } }, [refs], ); return ref; };