import { IReactComponent } from '@wowpic/xform-types'; import { Input as AntdInput } from 'antd'; import React, { FormEvent, FunctionComponent, useCallback, useEffect, useState } from 'react'; const AntdTextArea = AntdInput.TextArea; const TextArea: FunctionComponent = ({ value, onChange: onChangeDefault, onBlur: onBlurDefault, ...restProps }) => { const [inputValue, setInputValue] = useState(value); useEffect(() => { setInputValue(value); }, [value]); const onChange = useCallback((e: FormEvent) => { const v = (e.target as HTMLTextAreaElement).value; setInputValue(v); onChangeDefault(v); }, [onChangeDefault]); const onBlur = useCallback((e: FormEvent) => { const v = (e.target as HTMLTextAreaElement).value.trim(); setInputValue(v); onChangeDefault(v); onBlurDefault(v); }, [onChangeDefault, onBlurDefault]); return ( ); }; export default TextArea;