Skip to content

Commit afe9c35

Browse files
Additional TS StrictMode support (#5305)
* ts strict for react-types l * react aria tabs * react aria meter * react aria radio * react aria separator * react aria sidenav * react aria toggle * tabs react types tabs * yarn lock * fix ref in sidenav * layout required * updates after devon's pr * remove stale lock file change --------- Co-authored-by: Robert Snow <[email protected]>
1 parent 9ce2f67 commit afe9c35

File tree

7 files changed

+22
-13
lines changed

7 files changed

+22
-13
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ import {RadioGroupState} from '@react-stately/radio';
1414

1515
interface RadioGroupData {
1616
name: string,
17-
descriptionId: string,
18-
errorMessageId: string,
17+
descriptionId: string | undefined,
18+
errorMessageId: string | undefined,
1919
validationBehavior: 'aria' | 'native'
2020
}
2121

packages/@react-aria/sidenav/src/useSideNav.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import {TreeState} from '@react-stately/tree';
1818
import {useSelectableCollection} from '@react-aria/selection';
1919

2020
interface SideNavAriaOptions<T> extends AriaSideNavProps<T> {
21-
layout?: KeyboardDelegate
21+
layout: KeyboardDelegate
2222
}
2323

2424
interface SideNavAria {
@@ -52,7 +52,7 @@ export function useSideNav<T>(props: SideNavAriaOptions<T>, state: TreeState<T>,
5252
id
5353
}),
5454
listProps: {
55-
'aria-labelledby': ariaLabeldBy || (ariaLabel ? id : null),
55+
'aria-labelledby': ariaLabeldBy || (ariaLabel ? id : undefined),
5656
role: 'list',
5757
...collectionProps
5858
}

packages/@react-aria/sidenav/src/useSideNavItem.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ interface SideNavItemAria {
2121
listItemLinkProps: AnchorHTMLAttributes<HTMLAnchorElement>
2222
}
2323

24-
export function useSideNavItem<T>(props: SpectrumSideNavItemProps<T>, state: TreeState<T>, ref: RefObject<HTMLAnchorElement | null>): SideNavItemAria {
24+
export function useSideNavItem<T>(props: SpectrumSideNavItemProps<T>, state: TreeState<T>, ref: RefObject<HTMLAnchorElement>): SideNavItemAria {
2525
let {
2626
item,
2727
'aria-current': ariaCurrent

packages/@react-aria/tabs/src/TabsKeyboardDelegate.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ export class TabsKeyboardDelegate<T> implements KeyboardDelegate {
4747

4848
getFirstKey() {
4949
let key = this.collection.getFirstKey();
50-
if (this.disabledKeys.has(key)) {
50+
if (key && this.disabledKeys.has(key)) {
5151
key = this.getNextKey(key);
5252
}
5353
return key;
5454
}
5555

5656
getLastKey() {
5757
let key = this.collection.getLastKey();
58-
if (this.disabledKeys.has(key)) {
58+
if (key && this.disabledKeys.has(key)) {
5959
key = this.getPreviousKey(key);
6060
}
6161
return key;

packages/@react-aria/tabs/stories/example.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {useTabListState} from '@react-stately/tabs';
1616

1717
export function Tabs({shouldSelectOnPressUp, ...props}) {
1818
let state = useTabListState(props);
19-
let ref = React.useRef();
19+
let ref = React.useRef(null);
2020
let {tabListProps} = useTabList(props, state, ref);
2121
return (
2222
<div style={{height: '150px'}}>
@@ -46,7 +46,7 @@ export function Tabs({shouldSelectOnPressUp, ...props}) {
4646

4747
function Tab({shouldSelectOnPressUp, item, state}) {
4848
let {key, rendered} = item;
49-
let ref = React.useRef();
49+
let ref = React.useRef(null);
5050
let {tabProps} = useTab({key, shouldSelectOnPressUp}, state, ref);
5151
let isSelected = state.selectedKey === key;
5252
let isDisabled = state.disabledKeys.has(key);
@@ -65,7 +65,7 @@ function Tab({shouldSelectOnPressUp, item, state}) {
6565
}
6666

6767
function TabPanel({state, ...props}) {
68-
let ref = React.useRef();
68+
let ref = React.useRef(null);
6969
let {tabPanelProps} = useTabPanel(props, state, ref);
7070
return (
7171
<div {...tabPanelProps} ref={ref} style={{padding: '10px'}}>

packages/@react-stately/radio/src/useRadioGroupState.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,13 @@ export interface RadioGroupState extends FormValidationState {
4646
readonly selectedValue: string | null,
4747

4848
/** Sets the selected value. */
49-
setSelectedValue(value: string): void,
49+
setSelectedValue(value: string | null): void,
5050

5151
/** The value of the last focused radio. */
5252
readonly lastFocusedValue: string | null,
5353

5454
/** Sets the last focused value. */
55-
setLastFocusedValue(value: string): void
55+
setLastFocusedValue(value: string | null): void
5656
}
5757

5858
let instance = Math.round(Math.random() * 10000000000);

tsconfig.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
"paths": [
3636
"./packages/@react-aria/a",
3737
"./packages/@react-aria/b",
38+
"./packages/@react-aria/l",
39+
"./packages/@react-aria/meter",
3840
"./packages/@react-aria/color",
3941
"./packages/@react-aria/e",
4042
"./packages/@react-aria/f",
@@ -44,6 +46,12 @@
4446
"./packages/@react-aria/k",
4547
"./packages/@react-aria/l",
4648
"./packages/@react-aria/progress",
49+
"./packages/@react-aria/radio",
50+
"./packages/@react-aria/searchfield",
51+
"./packages/@react-aria/separator",
52+
"./packages/@react-aria/sidenav",
53+
"./packages/@react-aria/tabs",
54+
"./packages/@react-aria/toggle",
4755
"./packages/@react-aria/q",
4856
"./packages/@react-aria/searchfield",
4957
"./packages/@react-aria/w",
@@ -83,12 +91,13 @@
8391
"./packages/@react-types/divider",
8492
"./packages/@react-types/illustratedmessage",
8593
"./packages/@react-types/image",
86-
"./packages/@react-types/link",
94+
"./packages/@react-types/l",
8795
"./packages/@react-types/meter",
8896
"./packages/@react-types/progress",
8997
"./packages/@react-types/searchfield",
9098
"./packages/@react-types/shared",
9199
"./packages/@react-types/statuslight",
100+
"./packages/@react-types/tabs",
92101
"./packages/@react-types/text",
93102
"./packages/@react-types/tooltip",
94103
"./packages/@react-types/view",

0 commit comments

Comments
 (0)