/* eslint-disable no-case-declarations */ import Checkbox from '@/containers/Checkbox' import ModelConfigInput from '@/containers/ModelConfigInput' import SliderRightPanel from '@/containers/SliderRightPanel' export type ControllerType = 'slider' | 'checkbox' | 'input' export type SettingComponentData = { name: string title: string description: string controllerType: ControllerType controllerData: SliderData | CheckboxData | InputData } export type InputData = { placeholder: string value: string } export type SliderData = { min: number max: number step: number value: number } type CheckboxData = { checked: boolean } const settingComponentBuilder = ( componentData: SettingComponentData[], onlyPrompt?: boolean ) => { const components = componentData .filter((x) => onlyPrompt ? x.name === 'prompt_template' : x.name !== 'prompt_template' ) .map((data) => { switch (data.controllerType) { case 'slider': const { min, max, step, value } = data.controllerData as SliderData return ( ) case 'input': const { placeholder, value: textValue } = data.controllerData as InputData return ( ) case 'checkbox': const { checked } = data.controllerData as CheckboxData return ( ) default: return null } }) return
{components}
} export default settingComponentBuilder