Артем Леванов
first commit
41a71fd
raw
history blame contribute delete
988 Bytes
import { TextareaHTMLAttributes, useEffect, useRef } from 'react';
import { classNames } from '@/shared/lib/classNames/classNames';
import cls from './Textarea.module.scss';
type HTMLTextareaProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;
interface TextareaProps extends HTMLTextareaProps {
className?: string;
value?: string;
onChange?: (value: string) => void;
inputRef?: (ref: any) => void;
}
export const Textarea = (props: TextareaProps) => {
const { className, value, onChange, inputRef, ...otherProps } = props;
const inputRefValue = useRef(null);
useEffect(() => {
if (inputRef) inputRef(inputRefValue.current);
}, [inputRefValue.current]);
return (
<textarea
className={classNames(cls.Textarea, {}, [className])}
ref={inputRefValue}
value={value}
onChange={(e) => onChange?.(e.target.value)}
{...otherProps}
/>
);
};