diff --git a/web/app/components/base/form/components/base/base-field.tsx b/web/app/components/base/form/components/base/base-field.tsx index 00a1f9b2da..55a4201cf2 100644 --- a/web/app/components/base/form/components/base/base-field.tsx +++ b/web/app/components/base/form/components/base/base-field.tsx @@ -3,7 +3,10 @@ import { memo, useMemo, } from 'react' -import { RiExternalLinkLine } from '@remixicon/react' +import { + RiArrowDownSFill, + RiExternalLinkLine, +} from '@remixicon/react' import type { AnyFieldApi } from '@tanstack/react-form' import { useStore } from '@tanstack/react-form' import cn from '@/utils/classnames' @@ -13,6 +16,9 @@ import type { FormSchema } from '@/app/components/base/form/types' import { FormTypeEnum } from '@/app/components/base/form/types' import { useRenderI18nObject } from '@/hooks/use-i18n' import RadioE from '@/app/components/base/radio/ui' +import Textarea from '@/app/components/base/textarea' +import PromptEditor from '@/app/components/base/prompt-editor' +import ModelParameterModal from '@/app/components/plugins/plugin-detail-panel/model-selector' export type BaseFieldProps = { fieldClassName?: string @@ -39,6 +45,9 @@ const BaseField = ({ placeholder, options, labelClassName: formLabelClassName, + fieldClassName: formFieldClassName, + inputContainerClassName: formInputContainerClassName, + inputClassName: formInputClassName, show_on = [], } = formSchema @@ -104,7 +113,7 @@ const BaseField = ({ return null return ( -
+
{memorizedLabel} { @@ -112,14 +121,25 @@ const BaseField = ({ * ) } + { + formSchema.type === FormTypeEnum.collapse && ( + field.handleChange(!value)} + /> + ) + }
-
+
{ formSchema.type === FormTypeEnum.textInput && ( field.handleChange(e.target.value)} onBlur={field.handleBlur} @@ -134,7 +154,7 @@ const BaseField = ({ id={field.name} name={field.name} type='password' - className={cn(inputClassName)} + className={cn(inputClassName, formInputClassName)} value={value || ''} onChange={e => field.handleChange(e.target.value)} onBlur={field.handleBlur} @@ -149,7 +169,7 @@ const BaseField = ({ id={field.name} name={field.name} type='number' - className={cn(inputClassName)} + className={cn(inputClassName, formInputClassName)} value={value || ''} onChange={e => field.handleChange(e.target.value)} onBlur={field.handleBlur} @@ -183,6 +203,7 @@ const BaseField = ({ 'system-sm-regular hover:bg-components-option-card-option-hover-bg hover:border-components-option-card-option-hover-border flex h-8 flex-[1] grow cursor-pointer items-center justify-center rounded-lg border border-components-option-card-option-border bg-components-option-card-option-bg p-2 text-text-secondary', value === option.value && 'border-components-option-card-option-selected-border bg-components-option-card-option-selected-bg text-text-primary shadow-xs', inputClassName, + formInputClassName, )} onClick={() => field.handleChange(option.value)} > @@ -201,6 +222,50 @@ const BaseField = ({
) } + { + formSchema.type === FormTypeEnum.textareaInput && ( +