UNPKG

@redocly/theme

Version:

Shared UI components lib

21 lines (16 loc) 501 B
import { useRef, useState, useLayoutEffect } from 'react'; export function useIsTruncated<T extends HTMLElement>( content: string | null, ): [React.RefObject<T | null>, boolean] { const ref = useRef<T | null>(null); const [isTruncated, setIsTruncated] = useState(false); useLayoutEffect(() => { const el = ref.current; if (!el) { setIsTruncated(false); } else { setIsTruncated(el.scrollWidth > el.clientWidth); } }, [content]); return [ref, isTruncated]; }