"use client"; import { Input } from "~/components/ui/input"; import { Label } from "~/components/ui/label"; import { Textarea } from "~/components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "~/components/ui/select"; import type { FormField } from "~/lib/types/forms"; import { FORM_FIELD_TYPES } from "~/lib/types/forms"; interface FormFieldRendererProps { field: FormField; value: unknown; onChange: (value: unknown) => void; mode: "preview" | "data-entry" | "participant"; index: number; error?: string; disabled?: boolean; } export function FormFieldRenderer({ field, value, onChange, mode, index, error, disabled = false, }: FormFieldRendererProps) { const handleChange = (val: unknown) => { if (!disabled) { onChange(val); } }; const commonProps = { disabled, className: error ? "border-destructive" : "", }; const scale = field.settings?.scale ?? 5; switch (field.type) { case "text": return ( handleChange(e.target.value)} placeholder="Enter your response..." /> ); case "textarea": return (