import React, { useState } from 'react'; import classNames from 'classnames'; import { BaseProps } from '../_utils/props'; export interface TextareaProps extends BaseProps { rows?: number; limit?: number; counter?: (count?: number) => React.ReactNode; defaultValue?: string; value?: string; onChange?: (value: any, event: React.ChangeEvent) => void; disabled?: boolean; } const Textarea = (props: TextareaProps) => { const { prefixCls = 'ty-textarea', disabled = false, limit, counter, defaultValue, value, rows, onChange, className, style, ...otherProps } = props; const cls = classNames(prefixCls, className, { [`${prefixCls}_disabled`]: disabled, }); const [count, setCount] = useState(0); const textareaOnChange = (e: React.ChangeEvent) => { setCount(e.currentTarget.value.length); onChange && onChange(e.currentTarget.value, e); }; if (limit || counter) { return (