import autosize from "autosize"; import { forwardRef, useEffect, useRef } from "react"; const AutosizeTextarea = forwardRef< HTMLTextAreaElement, React.DetailedHTMLProps< React.TextareaHTMLAttributes, HTMLTextAreaElement > & { onResize?: (target: HTMLTextAreaElement) => void; } >((props, ref) => { const { onResize } = props; const textareaRef = useRef(null); useEffect(() => { function handleResize() { if (textareaRef.current && onResize) { onResize(textareaRef.current); } } const target = textareaRef.current; if (target) { autosize(target); target.addEventListener("autosize:resized", handleResize); return () => { autosize.destroy(target); target.removeEventListener("autosize:resized", handleResize); }; } }, [onResize]); return (