"use client"; import React from "react"; import { cn } from "@/lib/utils"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Switch } from "@/components/ui/switch"; import { Slider } from "@/components/ui/slider"; import { Checkbox } from "@/components/ui/checkbox"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { Label } from "@/components/ui/label"; import { FieldConfig } from "@/types/admin-panel"; interface FieldRendererProps { field: FieldConfig; value?: any; error?: string; disabled?: boolean; onChange: (value: any) => void; onBlur?: () => void; className?: string; form_field?: any; } export function FieldRenderer({ field, value, error, disabled = false, onChange, onBlur, className, form_field }: FieldRendererProps) { const isDisabled = disabled || field.disabled; const isReadOnly = field.readOnly; // Use custom render function if provided if (field.render) { return (
{field.render(field, value, onChange)}
); } const renderField = () => { switch (field.type) { case "input": case "email": case "url": case "tel": return ( ); case "password": return ( ); case "number": return ( ); case "textarea": return (