@@ -10,20 +10,21 @@ import {
1010} from "@mantine/core" ;
1111
1212export type CheckboxProps < T extends FieldValues > = UseControllerProps < T > &
13- $CheckboxProps ;
13+ Omit < $CheckboxProps , "checked" | "defaultValue" > ;
1414export type CheckboxGroupProps < T extends FieldValues > = UseControllerProps < T > &
15- $CheckboxGroupProps ;
15+ Omit < $CheckboxGroupProps , "checked" | "defaultValue" > ;
1616
1717export function Checkbox < T extends FieldValues > ( {
1818 name,
1919 control,
2020 defaultValue,
2121 rules,
2222 shouldUnregister,
23- ...mantineProps
23+ onChange,
24+ ...props
2425} : CheckboxProps < T > ) {
2526 const {
26- field : { value, ...field } ,
27+ field : { value, onChange : fieldOnChange , ...field } ,
2728 fieldState,
2829 } = useController < T > ( {
2930 name,
@@ -38,8 +39,12 @@ export function Checkbox<T extends FieldValues>({
3839 error = { fieldState . error ?. message }
3940 value = { value }
4041 checked = { value }
42+ onChange = { ( e ) => {
43+ fieldOnChange ( e ) ;
44+ onChange ?.( e ) ;
45+ } }
4146 { ...field }
42- { ...mantineProps }
47+ { ...props }
4348 />
4449 ) ;
4550}
@@ -50,9 +55,13 @@ Checkbox.Group = <T extends FieldValues>({
5055 defaultValue,
5156 rules,
5257 shouldUnregister,
58+ onChange,
5359 ...props
5460} : CheckboxGroupProps < T > ) => {
55- const { field, fieldState } = useController < T > ( {
61+ const {
62+ field : { value, onChange : fieldOnChange , ...field } ,
63+ fieldState,
64+ } = useController < T > ( {
5665 name,
5766 control,
5867 defaultValue,
@@ -61,7 +70,16 @@ Checkbox.Group = <T extends FieldValues>({
6170 } ) ;
6271
6372 return (
64- < $Checkbox . Group error = { fieldState . error ?. message } { ...field } { ...props } />
73+ < $Checkbox . Group
74+ error = { fieldState . error ?. message }
75+ value = { value }
76+ onChange = { ( e ) => {
77+ fieldOnChange ( e ) ;
78+ onChange ?.( e ) ;
79+ } }
80+ { ...field }
81+ { ...props }
82+ />
6583 ) ;
6684} ;
6785
0 commit comments