rhf-checkbox-field
shuip/rhf-checkbox-fieldFreeComponent
shuip publishes no description for this item.
Install it
npx shadcn@latest add https://shuip.plvo.dev/r/rhf-checkbox-field.jsonSource
1'use client';23import type { Lens } from '@hookform/lenses';4import type * as React from 'react';5import { useController } from 'react-hook-form';6import { Checkbox } from '@/components/ui/checkbox';7import { Field, FieldDescription, FieldError, FieldLabel } from '@/components/ui/field';89export interface CheckboxFieldProps extends Omit<React.ComponentProps<typeof Checkbox>, 'checked' | 'onCheckedChange'> {10 lens: Lens<boolean>;11 label: string;12 description?: string;13}1415export function CheckboxField({ lens, label, description, ...props }: CheckboxFieldProps) {16 const { field, fieldState } = useController(lens.interop());17 const id = props.id ?? field.name;1819 return (20 <Field className='gap-2' data-invalid={fieldState.invalid}>21 <div className='flex items-center gap-2'>22 <Checkbox23 {...props}24 id={id}25 name={field.name}26 checked={field.value ?? false}27 onCheckedChange={(checked) => field.onChange(checked === true)}28 onBlur={field.onBlur}29 aria-invalid={fieldState.invalid}30 />31 <FieldLabel htmlFor={id} className='text-sm cursor-pointer'>32 {label}33 </FieldLabel>34 </div>35 {fieldState.invalid && <FieldError className='text-xs text-left' errors={[fieldState.error]} />}36 {description && <FieldDescription className='text-xs'>{description}</FieldDescription>}37 </Field>38 );39}
What it pulls in
npm packages
Other registry items
Files it writes
More from shuip
All 52 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| confirmation-dialogconfirmation-dialog | shuip | Components | Free | 1 dep | |
| copy-buttoncopy-button | shuip | Components | Free | 3 deps | |
| hover-revealhover-reveal | shuip | Components | Free | 1 dep | |
| rhf-address-fieldrhf-address-field | shuip | Components | Free | 5 deps · 2 files | |
| rhf-autocomplete-fieldrhf-autocomplete-field | shuip | Components | Free | 4 deps | |
| rhf-combobox-fieldrhf-combobox-field | shuip | Components | Free | 5 deps | |
| rhf-date-fieldrhf-date-field | shuip | Components | Free | 6 deps | |
| rhf-date-range-fieldrhf-date-range-field | shuip | Components | Free | 6 deps |
