'use client';

import { Label } from '@admin/components/ui/label';
import { Switch } from '@admin/components/ui/switch';
import { cn } from '@admin/utils/common';
import { Controller, useFormContext } from 'react-hook-form';

interface ToggleFieldProps {
    name: string;
    disabled?: boolean;
    className?: string;
    toggleLabel?: string;
}

export const ToggleField = ({ name, disabled, className, toggleLabel }: ToggleFieldProps) => {
    const { control } = useFormContext();

    return (
        <Controller
            control={control}
            name={name}
            render={({ field }) => (
                <div className="flex items-center space-x-2">
                    <Switch checked={field.value || false} onCheckedChange={field.onChange} disabled={disabled} className={cn(className)} />
                    {toggleLabel && <Label>{toggleLabel}</Label>}
                </div>
            )}
        />
    );
};
