| 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) |
|
|