import { useEffect, useState } from "react" export function useLineCount(element: HTMLElement) { const [lineCount, setLineCount] = useState(0) useEffect(() => { const calculateLines = () => { if (!element) return const elementHeight = element.offsetHeight const style = window.getComputedStyle(element) const lineHeight = parseInt(style.lineHeight) const lines = Math.floor(elementHeight / lineHeight) setLineCount(lines) } calculateLines() const resizeObserver = new ResizeObserver(calculateLines) resizeObserver.observe(element) return () => { resizeObserver.disconnect() } }, [element]) return lineCount }