import * as React from 'react'; import { useImperativeHandle, useRef } from 'react'; interface AugmentRefProps { ref: React.Ref; methods?: Record any>; deps?: any[]; } export function useAugmentedRef({ ref, methods, deps = [], }: AugmentRefProps) { const augmentedRef = useRef(null); useImperativeHandle( ref, () => { if (typeof augmentedRef === 'function' || !augmentedRef?.current) { return {} as T; } return { ...augmentedRef.current, ...methods, }; }, // eslint-disable-next-line react-hooks/exhaustive-deps deps ); return augmentedRef; }