Skip to content

Commit e97c368

Browse files
authored
feat(useSelect): react native handlers (#1476)
1 parent 4566580 commit e97c368

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

src/hooks/useSelect/index.js

+26-10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
debounce,
1919
normalizeArrowKey,
2020
} from '../../utils'
21+
import {isReactNative} from '../../is.macro'
2122
import downshiftSelectReducer from './reducer'
2223
import {validatePropTypes, defaultProps} from './utils'
2324
import * as stateChangeTypes from './stateChangeTypes'
@@ -354,7 +355,7 @@ function useSelect(userProps = {}) {
354355
)
355356
const getToggleButtonProps = useCallback(
356357
(
357-
{onBlur, onClick, onKeyDown, refKey = 'ref', ref, ...rest} = {},
358+
{onBlur, onClick, onPress, onKeyDown, refKey = 'ref', ref, ...rest} = {},
358359
{suppressRefError = false} = {},
359360
) => {
360361
const latestState = latest.current.state
@@ -405,14 +406,22 @@ function useSelect(userProps = {}) {
405406
}
406407

407408
if (!rest.disabled) {
408-
toggleProps.onClick = callAllEventHandlers(
409-
onClick,
410-
toggleButtonHandleClick,
411-
)
412-
toggleProps.onKeyDown = callAllEventHandlers(
413-
onKeyDown,
414-
toggleButtonHandleKeyDown,
415-
)
409+
/* istanbul ignore if (react-native) */
410+
if (isReactNative) {
411+
toggleProps.onPress = callAllEventHandlers(
412+
onPress,
413+
toggleButtonHandleClick,
414+
)
415+
} else {
416+
toggleProps.onClick = callAllEventHandlers(
417+
onClick,
418+
toggleButtonHandleClick,
419+
)
420+
toggleProps.onKeyDown = callAllEventHandlers(
421+
onKeyDown,
422+
toggleButtonHandleKeyDown,
423+
)
424+
}
416425
}
417426

418427
setGetterPropCallInfo(
@@ -440,6 +449,7 @@ function useSelect(userProps = {}) {
440449
index: indexProp,
441450
onMouseMove,
442451
onClick,
452+
onPress,
443453
refKey = 'ref',
444454
ref,
445455
disabled,
@@ -485,8 +495,14 @@ function useSelect(userProps = {}) {
485495
}
486496

487497
if (!disabled) {
488-
itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick)
498+
/* istanbul ignore next (react-native) */
499+
if (isReactNative) {
500+
itemProps.onPress = callAllEventHandlers(onPress, itemHandleClick)
501+
} else {
502+
itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick)
503+
}
489504
}
505+
490506
itemProps.onMouseMove = callAllEventHandlers(
491507
onMouseMove,
492508
itemHandleMouseMove,

0 commit comments

Comments
 (0)