Files
var-monorepo/apps/hub/app/_components/ui/Switch.tsx

36 lines
816 B
TypeScript

import {
FieldValues,
Path,
RegisterOptions,
UseFormReturn,
} from 'react-hook-form';
import { cn } from '../../../helper/cn';
interface InputProps<T extends FieldValues>
extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'form'> {
name: Path<T>;
form: UseFormReturn<T>;
formOptions?: RegisterOptions<T>;
label?: string;
}
export const Switch = <T extends FieldValues>({
name,
label = name,
form,
formOptions,
className,
...inputProps
}: InputProps<T>) => {
return (
<div className="form-control ">
<label className="label cursor-pointer w-full">
<span className={cn('label-text text-left w-full', className)}>
{label}
</span>
<input type="checkbox" className="toggle" {...form.register(name)} />
</label>
</div>
);
};