| import type { FC } from 'react' | |
| import { useTranslation } from 'react-i18next' | |
| import { memo } from 'react' | |
| import Textarea from '@/app/components/base/textarea' | |
| type InputProps = { | |
| form: any | |
| value: string | |
| onChange: (variable: string, value: string) => void | |
| } | |
| const FormInput: FC<InputProps> = ({ | |
| form, | |
| value, | |
| onChange, | |
| }) => { | |
| const { t } = useTranslation() | |
| const { | |
| type, | |
| label, | |
| required, | |
| max_length, | |
| variable, | |
| } = form | |
| if (type === 'paragraph') { | |
| return ( | |
| <Textarea | |
| value={value} | |
| className='resize-none' | |
| onChange={e => onChange(variable, e.target.value)} | |
| placeholder={`${label}${!required ? `(${t('appDebug.variableTable.optional')})` : ''}`} | |
| /> | |
| ) | |
| } | |
| return ( | |
| <input | |
| className='grow h-9 rounded-lg bg-gray-100 px-2.5 outline-none appearance-none' | |
| value={value || ''} | |
| maxLength={max_length} | |
| onChange={e => onChange(variable, e.target.value)} | |
| placeholder={`${label}${!required ? `(${t('appDebug.variableTable.optional')})` : ''}`} | |
| /> | |
| ) | |
| } | |
| export default memo(FormInput) | |