[APP-703] Android horizontal scroll registers as tap (#960)
* use Touchables from react-native-gesture-handler * upgrade `react-native-gesture-handler` to latest version * add FixedTouchableHighlight for android * add workaround comment * wait for animations to complete before loading data * downgrade RNGH back to the version we had
This commit is contained in:
parent
bf1785765d
commit
df7552135a
3 changed files with 74 additions and 9 deletions
|
@ -5,11 +5,11 @@ import {
|
|||
GestureResponderEvent,
|
||||
Platform,
|
||||
StyleProp,
|
||||
TouchableWithoutFeedback,
|
||||
TouchableOpacity,
|
||||
TextStyle,
|
||||
View,
|
||||
ViewStyle,
|
||||
TouchableOpacity,
|
||||
TouchableWithoutFeedback,
|
||||
} from 'react-native'
|
||||
import {
|
||||
useLinkProps,
|
||||
|
@ -22,8 +22,9 @@ import {NavigationProp} from 'lib/routes/types'
|
|||
import {router} from '../../../routes'
|
||||
import {useStores, RootStoreModel} from 'state/index'
|
||||
import {convertBskyAppUrlIfNeeded, isExternalUrl} from 'lib/strings/url-helpers'
|
||||
import {isDesktopWeb} from 'platform/detection'
|
||||
import {isAndroid, isDesktopWeb} from 'platform/detection'
|
||||
import {sanitizeUrl} from '@braintree/sanitize-url'
|
||||
import FixedTouchableHighlight from '../pager/FixedTouchableHighlight'
|
||||
|
||||
type Event =
|
||||
| React.MouseEvent<HTMLAnchorElement, MouseEvent>
|
||||
|
@ -65,6 +66,24 @@ export const Link = observer(function Link({
|
|||
)
|
||||
|
||||
if (noFeedback) {
|
||||
if (isAndroid) {
|
||||
// workaround for Android not working well with left/right swipe gestures and TouchableWithoutFeedback
|
||||
// https://github.com/callstack/react-native-pager-view/issues/424
|
||||
return (
|
||||
<FixedTouchableHighlight
|
||||
testID={testID}
|
||||
onPress={onPress}
|
||||
// @ts-ignore web only -prf
|
||||
href={asAnchor ? sanitizeUrl(href) : undefined}
|
||||
accessible={accessible}
|
||||
accessibilityRole="link"
|
||||
{...props}>
|
||||
<View style={style}>
|
||||
{children ? children : <Text>{title || 'link'}</Text>}
|
||||
</View>
|
||||
</FixedTouchableHighlight>
|
||||
)
|
||||
}
|
||||
return (
|
||||
<TouchableWithoutFeedback
|
||||
testID={testID}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue