import type { ChangeEventHandler, DetailedHTMLProps, TextareaHTMLAttributes } from 'react';
import { useCallback } from 'react';
type Props = DetailedHTMLProps, HTMLTextAreaElement>;
export const ResizableTextarea = (props: Props): JSX.Element => {
const { onChange: _onChange, ...rest } = props;
const onChange: ChangeEventHandler = useCallback((e) => {
_onChange?.(e);
// auto resize
// refs: https://zenn.dev/soma3134/articles/1e2fb0eab75b2d
e.target.style.height = 'auto';
e.target.style.height = `${e.target.scrollHeight + 4}px`;
}, [_onChange]);
return (
);
};