import React, { useState, useEffect } from 'react' import { FormStoreType, FormFields } from '../../../store' import { observer } from 'mobx-react' import clsx from 'clsx' interface TextareaProps extends Omit, 'name'> { name: keyof T formStore: FormStoreType className?: string } const TextArea = observer( ({ name, formStore, className, ...rest }: TextareaProps) => { const [inputValue, setInputValue] = useState(formStore.fields[name] || '') useEffect(() => { setInputValue(formStore.fields[name] || '') }, [formStore.fields[name], name]) const handleInputChange = (e: React.ChangeEvent) => { const newValue = e.target.value setInputValue(newValue) formStore.setField(name, newValue as unknown as T[keyof T]) } const textareaClassName = clsx( 'w-full min-h-[200px] resize-none border p-2 text-black outline-none', className, ) return (