import React, { useCallback, useEffect, useRef } from 'react'; export function useMounted() { const mountedRef = useRef(false); const isMounted = useCallback(() => mountedRef.current, []); useEffect(() => { mountedRef.current = true; return () => { mountedRef.current = false; }; }, []); return isMounted; } export function useCombinedRefs(...refs: (React.Ref | undefined)[]): React.RefCallback { return useCallback((element: T | null) => refs.forEach((ref) => assignToRef(element, ref)), []); } export function assignToRef(element: T | null, ref?: React.Ref) { if (typeof ref === 'function') { ref(element); } else if (ref && element) { (ref as React.MutableRefObject).current = element; } }