import { useLayoutEffect, useRef, useState, type ReactNode } from "react"; import { Tooltip } from "@/components/Tooltip"; type Props = { text: string; className?: string; tooltipContent?: ReactNode; delayDuration?: number; }; export const TruncatedText = ({ text, className, tooltipContent, delayDuration = 600 }: Props) => { const ref = useRef(null); const [overflowing, setOverflowing] = useState(false); useLayoutEffect(() => { const el = ref.current; if (!el) return; setOverflowing(el.scrollWidth > el.clientWidth); }, [text]); const span = ( {text} ); if (!overflowing) return span; return ( {span} ); };