@@ -27,9 +27,6 @@ import type { Scope } from '@radix-ui/react-context';
27
27
28
28
type Direction = 'ltr' | 'rtl' ;
29
29
30
- const startTransition = React . startTransition
31
- ? React . startTransition
32
- : window . requestAnimationFrame ;
33
30
const OPEN_KEYS = [ ' ' , 'Enter' , 'ArrowUp' , 'ArrowDown' ] ;
34
31
const SELECTION_KEYS = [ ' ' , 'Enter' ] ;
35
32
@@ -1272,8 +1269,13 @@ const SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>(
1272
1269
1273
1270
const handleSelect = ( ) => {
1274
1271
if ( ! disabled ) {
1275
- context . onValueChange ( value ) ;
1276
- context . onOpenChange ( false ) ;
1272
+ const startTransition = React . startTransition
1273
+ ? React . startTransition
1274
+ : window . requestAnimationFrame ;
1275
+ startTransition ( ( ) => {
1276
+ context . onValueChange ( value ) ;
1277
+ context . onOpenChange ( false ) ;
1278
+ } ) ;
1277
1279
}
1278
1280
} ;
1279
1281
@@ -1316,12 +1318,12 @@ const SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>(
1316
1318
onBlur = { composeEventHandlers ( itemProps . onBlur , ( ) => setIsFocused ( false ) ) }
1317
1319
onClick = { composeEventHandlers ( itemProps . onClick , ( ) => {
1318
1320
// Open on click when using a touch or pen device
1319
- if ( pointerTypeRef . current !== 'mouse' ) startTransition ( ( ) => handleSelect ( ) ) ;
1321
+ if ( pointerTypeRef . current !== 'mouse' ) handleSelect ( ) ;
1320
1322
} ) }
1321
1323
onPointerUp = { composeEventHandlers ( itemProps . onPointerUp , ( ) => {
1322
1324
// Using a mouse you should be able to do pointer down, move through
1323
1325
// the list, and release the pointer over the item to select it.
1324
- if ( pointerTypeRef . current === 'mouse' ) startTransition ( ( ) => handleSelect ( ) ) ;
1326
+ if ( pointerTypeRef . current === 'mouse' ) handleSelect ( ) ;
1325
1327
} ) }
1326
1328
onPointerDown = { composeEventHandlers ( itemProps . onPointerDown , ( event ) => {
1327
1329
pointerTypeRef . current = event . pointerType ;
@@ -1345,7 +1347,7 @@ const SelectItem = React.forwardRef<SelectItemElement, SelectItemProps>(
1345
1347
onKeyDown = { composeEventHandlers ( itemProps . onKeyDown , ( event ) => {
1346
1348
const isTypingAhead = contentContext . searchRef ?. current !== '' ;
1347
1349
if ( isTypingAhead && event . key === ' ' ) return ;
1348
- if ( SELECTION_KEYS . includes ( event . key ) ) startTransition ( ( ) => handleSelect ( ) ) ;
1350
+ if ( SELECTION_KEYS . includes ( event . key ) ) handleSelect ( ) ;
1349
1351
// prevent page scroll if using the space key to select an item
1350
1352
if ( event . key === ' ' ) event . preventDefault ( ) ;
1351
1353
} ) }
0 commit comments