'use client' import { type ReactNode, useLayoutEffect, useRef, useState } from 'react' import { ChevronDown } from '@/lib/icons' import { cn } from '@/lib/utils' interface ExpandableBlockProps { children: ReactNode className?: string } export function ExpandableBlock({ children, className }: ExpandableBlockProps) { const innerRef = useRef(null) const [expanded, setExpanded] = useState(false) const [overflowing, setOverflowing] = useState(false) useLayoutEffect(() => { const el = innerRef.current if (!el) {return} const measure = () => setOverflowing(el.scrollHeight > 121) measure() const observer = new ResizeObserver(measure) observer.observe(el) return () => observer.disconnect() }, []) return (
{children}
{overflowing && ( )}
) }