/** * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates * SPDX-License-Identifier: MIT */ import { FC } from 'react'; import classNames from 'classnames'; import { DisplaySchemaTag } from '@flowgram.ai/form-materials'; import { Input, Switch, InputNumber } from '@douyinfe/semi-ui'; import { JsonValueEditor } from '../json-value-editor'; import { useFormMeta } from '../hooks/use-form-meta'; import { useFields } from '../hooks/use-fields'; import { useSyncDefault } from '../hooks'; import styles from './index.module.less'; interface TestRunFormProps { values: Record; setValues: (values: Record) => void; } export const TestRunForm: FC = ({ values, setValues }) => { const formMeta = useFormMeta(); const fields = useFields({ formMeta, values, setValues, }); useSyncDefault({ formMeta, values, setValues, }); const renderField = (field: any) => { switch (field.type) { case 'boolean': return (
field.onChange(checked)} />
); case 'integer': return (
field.onChange(value)} placeholder="Please input integer" />
); case 'number': return (
field.onChange(value)} placeholder="Please input number" />
); case 'object': return (
field.onChange(value)} />
); case 'array': return (
field.onChange(value)} />
); default: return (
field.onChange(value)} placeholder="Please input text" />
); } }; // Show empty state if no fields if (fields.length === 0) { return (
Empty
No inputs found in start node
); } return (
{fields.map((field) => (
{renderField(field)}
))}
); };