Skip to content

Commit 5e48753

Browse files
authored
TS Strict for react-aria Checkbox (#5467)
* TS Strict Checkbox
1 parent 1c1fbe5 commit 5e48753

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

packages/@react-aria/checkbox/src/useCheckbox.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export function useCheckbox(props: AriaCheckboxProps, state: ToggleState, inputR
5555
// indeterminate is a property, but it can only be set via javascript
5656
// https://css-tricks.com/indeterminate-checkboxes/
5757
if (inputRef.current) {
58-
inputRef.current.indeterminate = isIndeterminate;
58+
inputRef.current.indeterminate = !!isIndeterminate;
5959
}
6060
});
6161

packages/@react-aria/checkbox/src/useCheckboxGroupItem.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {CheckboxGroupState} from '@react-stately/checkbox';
1717
import {DEFAULT_VALIDATION_RESULT, privateValidationStateProp, useFormValidationState} from '@react-stately/form';
1818
import {RefObject, useEffect, useRef} from 'react';
1919
import {useToggleState} from '@react-stately/toggle';
20+
import {ValidationResult} from '@react-types/shared';
2021

2122
/**
2223
* Provides the behavior and accessibility implementation for a checkbox component contained within a checkbox group.
@@ -78,7 +79,7 @@ export function useCheckboxGroupItem(props: AriaCheckboxGroupItemProps, state: C
7879
displayValidation,
7980
resetValidation: state.resetValidation,
8081
commitValidation: state.commitValidation,
81-
updateValidation(v) {
82+
updateValidation(v: ValidationResult) {
8283
nativeValidation.current = v;
8384
updateValidation();
8485
}

packages/@react-aria/checkbox/src/utils.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
import {CheckboxGroupState} from '@react-stately/checkbox';
1414

1515
interface CheckboxGroupData {
16-
name: string,
17-
descriptionId: string,
18-
errorMessageId: string,
16+
name?: string,
17+
descriptionId?: string,
18+
errorMessageId?: string,
1919
validationBehavior: 'aria' | 'native'
2020
}
2121

packages/@react-aria/checkbox/test/useCheckboxGroup.test.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {useCheckboxGroup, useCheckboxGroupItem} from '../';
1818
import userEvent from '@testing-library/user-event';
1919

2020
function Checkbox({checkboxGroupState, ...props}: AriaCheckboxGroupItemProps & { checkboxGroupState: CheckboxGroupState }) {
21-
const ref = useRef<HTMLInputElement>();
21+
const ref = useRef<HTMLInputElement>(null);
2222
const {children} = props;
2323
const {inputProps} = useCheckboxGroupItem(props, checkboxGroupState, ref);
2424
return <label><input ref={ref} {...inputProps} />{children}</label>;
@@ -128,7 +128,7 @@ describe('useCheckboxGroup', () => {
128128

129129
let labelId = checkboxGroup.getAttribute('aria-labelledby');
130130
expect(labelId).toBeDefined();
131-
let label = document.getElementById(labelId);
131+
let label = document.getElementById(labelId!);
132132
expect(label).toHaveTextContent('Favorite Pet');
133133
});
134134

tsconfig.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"paths": [
3636
"./packages/@react-aria/a",
3737
"./packages/@react-aria/b",
38+
"./packages/@react-aria/checkbox",
3839
"./packages/@react-aria/l",
3940
"./packages/@react-aria/meter",
4041
"./packages/@react-aria/color",

0 commit comments

Comments
 (0)