@@ -7,7 +7,7 @@ import { Dispatch, SetStateAction, useState } from "react";
7
7
export interface ProvidedIndeterminateCheckboxProps {
8
8
"aria-checked" ?: "mixed" ;
9
9
checked : boolean ;
10
- onChange : ( ) => void ;
10
+ onChange ( ) : void ;
11
11
indeterminate : boolean ;
12
12
}
13
13
@@ -20,7 +20,7 @@ export interface ProvidedIndeterminateControlledCheckboxProps<
20
20
> {
21
21
value : T ;
22
22
checked : boolean ;
23
- onChange : ( ) => void ;
23
+ onChange ( ) : void ;
24
24
}
25
25
26
26
/**
@@ -34,8 +34,8 @@ export type GetIndeterminateControlledCheckboxProps<T extends string> = (
34
34
export interface IndeterminateCheckedReturnValue < T extends string > {
35
35
getProps : GetIndeterminateControlledCheckboxProps < T > ;
36
36
rootProps : ProvidedIndeterminateCheckboxProps ;
37
- checkedValues : T [ ] ;
38
- setCheckedValues : Dispatch < SetStateAction < T [ ] > > ;
37
+ checkedValues : readonly T [ ] ;
38
+ setCheckedValues : Dispatch < SetStateAction < readonly T [ ] > > ;
39
39
}
40
40
41
41
/**
@@ -48,8 +48,8 @@ export interface IndeterminateCheckedReturnValue<T extends string> {
48
48
* #### Simple value list with labels lookup:
49
49
*
50
50
* ```tsx
51
- * const values = ["a", "b", "c", "d"];
52
- * const LABELS = { a: "Label 1", b: "Label 2", c: "Label 3", d: "Label 4" };
51
+ * const values = ["a", "b", "c", "d"] as const ;
52
+ * const LABELS = { a: "Label 1", b: "Label 2", c: "Label 3", d: "Label 4" } as const ;
53
53
* const { getProps, rootProps } = useIndeterminateChecked(values);
54
54
*
55
55
* return (
@@ -127,15 +127,16 @@ export interface IndeterminateCheckedReturnValue<T extends string> {
127
127
* the list of values can be changed from external sources as well.
128
128
*/
129
129
export function useIndeterminateChecked < T extends string > (
130
- values : T [ ] ,
131
- defaultCheckedValues : T [ ] | ( ( ) => T [ ] ) = [ ] ,
132
- onChange ?: ( checkedValues : T [ ] ) => void
130
+ values : readonly T [ ] ,
131
+ defaultCheckedValues : readonly T [ ] | ( ( ) => readonly T [ ] ) = [ ] ,
132
+ onChange ?: ( checkedValues : readonly T [ ] ) => void
133
133
) : IndeterminateCheckedReturnValue < T > {
134
- const [ checkedValues , setCheckedValues ] = useState < T [ ] > ( defaultCheckedValues ) ;
134
+ const [ checkedValues , setCheckedValues ] =
135
+ useState < readonly T [ ] > ( defaultCheckedValues ) ;
135
136
const checked = checkedValues . length > 0 ;
136
137
const indeterminate = checked && checkedValues . length < values . length ;
137
138
138
- const updateCheckedValues = ( values : T [ ] ) : void => {
139
+ const updateCheckedValues = ( values : readonly T [ ] ) : void => {
139
140
if ( onChange ) {
140
141
onChange ( values ) ;
141
142
}
0 commit comments