diff --git a/web/app/components/app/overview/workflow-hidden-input-fields.tsx b/web/app/components/app/overview/workflow-hidden-input-fields.tsx new file mode 100644 index 0000000000..865b6ce852 --- /dev/null +++ b/web/app/components/app/overview/workflow-hidden-input-fields.tsx @@ -0,0 +1,115 @@ +import type { ChangeEvent } from 'react' +import type { WorkflowHiddenStartVariable, WorkflowLaunchInputValue } from './app-card-utils' +import Input from '@/app/components/base/input' +import Textarea from '@/app/components/base/textarea' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/app/components/base/ui/select' +import { InputVarType } from '@/app/components/workflow/types' + +type WorkflowHiddenInputFieldsProps = { + hiddenVariables: WorkflowHiddenStartVariable[] + values: Record + onValueChange: (variable: string, value: WorkflowLaunchInputValue) => void + fieldIdPrefix?: string +} + +const WorkflowHiddenInputFields = ({ + hiddenVariables, + values, + onValueChange, + fieldIdPrefix = 'workflow-launch-hidden-input', +}: WorkflowHiddenInputFieldsProps) => { + const renderField = (variable: WorkflowHiddenStartVariable) => { + const fieldId = `${fieldIdPrefix}-${variable.variable}` + const fieldValue = values[variable.variable] + const label = typeof variable.label === 'string' ? variable.label : variable.variable + + if (variable.type === InputVarType.select) { + return ( + + ) + } + + if (variable.type === InputVarType.checkbox) { + return ( + + ) + } + + if ( + variable.type === InputVarType.paragraph + || variable.type === InputVarType.json + || variable.type === InputVarType.jsonObject + ) { + return ( +