import { useCallback } from 'react'; import { Input } from '@kit/ui/input'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@kit/ui/select'; import { Switch } from '@kit/ui/switch'; import { Textarea } from '@kit/ui/textarea'; type ModelType = | 'string' | 'longString' | 'number' | 'boolean' | 'enum' | 'url' | 'email'; interface DynamicFormInputProps { type: ModelType; value: string; name: string; onChange: (props: { name: string; value: string }) => void; placeholder?: string; enumValues?: Array; className?: string; } export function DynamicFormInput({ type, value, name, onChange, placeholder, enumValues = [], className, }: DynamicFormInputProps) { const handleInputChange = useCallback( (e: React.ChangeEvent) => { onChange({ name, value: e.target.value, }); }, [name, onChange], ); const handleSwitchChange = useCallback( (checked: boolean) => { onChange({ name, value: checked ? 'true' : 'false', }); }, [name, onChange], ); const handleSelectChange = useCallback( (value: string) => { onChange({ name, value: value === '' ? 'none' : value, }); }, [name, onChange], ); switch (type) { case 'longString': return (