From 4f8381678da505737a96b7420c0f1ea8329f3672 Mon Sep 17 00:00:00 2001 From: Hailey Date: Thu, 14 Mar 2024 18:46:06 -0700 Subject: [PATCH] Remove `FixedTouchableHighlight` , fix Android press issues (#3214) * rm `FixedTouchableHighlight` * adjust delay for highlight * remove unnecessary background colors to support background ripple --- src/view/com/notifications/FeedItem.tsx | 1 - .../com/pager/FixedTouchableHighlight.tsx | 42 ------------------- src/view/com/post-thread/PostThreadItem.tsx | 3 -- src/view/com/post/Post.tsx | 2 +- src/view/com/posts/FeedItem.tsx | 1 - src/view/com/posts/FeedSlice.tsx | 6 +-- src/view/com/util/Link.tsx | 32 ++++---------- 7 files changed, 11 insertions(+), 76 deletions(-) delete mode 100644 src/view/com/pager/FixedTouchableHighlight.tsx diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index 45166fe3..a4687026 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -182,7 +182,6 @@ let FeedItem = ({ testID={`feedItem-by-${item.notification.author.handle}`} style={[ styles.outer, - pal.view, pal.border, item.notification.isRead ? undefined diff --git a/src/view/com/pager/FixedTouchableHighlight.tsx b/src/view/com/pager/FixedTouchableHighlight.tsx deleted file mode 100644 index d0719697..00000000 --- a/src/view/com/pager/FixedTouchableHighlight.tsx +++ /dev/null @@ -1,42 +0,0 @@ -// FixedTouchableHighlight.tsx -import React, {ComponentProps, useRef} from 'react' -import {GestureResponderEvent, TouchableHighlight} from 'react-native' - -type Position = {pageX: number; pageY: number} - -export default function FixedTouchableHighlight({ - onPress, - onPressIn, - ...props -}: ComponentProps) { - const _touchActivatePositionRef = useRef(null) - - function _onPressIn(e: GestureResponderEvent) { - const {pageX, pageY} = e.nativeEvent - - _touchActivatePositionRef.current = { - pageX, - pageY, - } - - onPressIn?.(e) - } - - function _onPress(e: GestureResponderEvent) { - const {pageX, pageY} = e.nativeEvent - - const absX = Math.abs(_touchActivatePositionRef.current?.pageX! - pageX) - const absY = Math.abs(_touchActivatePositionRef.current?.pageY! - pageY) - - const dragged = absX > 2 || absY > 2 - if (!dragged) { - onPress?.(e) - } - } - - return ( - - {props.children} - - ) -} diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 7efd535f..cd746f9a 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -432,7 +432,6 @@ let PostThreadItemLoaded = ({ + {showReplyLine && } diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 4b78dce7..f3911da6 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -144,7 +144,6 @@ let FeedItemInner = ({ const outerStyles = [ styles.outer, - pal.view, { borderColor: pal.colors.border, paddingBottom: diff --git a/src/view/com/posts/FeedSlice.tsx b/src/view/com/posts/FeedSlice.tsx index 84edee4a..49e48aa2 100644 --- a/src/view/com/posts/FeedSlice.tsx +++ b/src/view/com/posts/FeedSlice.tsx @@ -78,11 +78,7 @@ function ViewFullThread({slice}: {slice: FeedPostSlice}) { }, [slice.rootUri]) return ( - + @@ -63,6 +62,7 @@ export const Link = memo(function Link({ navigationAction, ...props }: Props) { + const t = useTheme() const {closeModal} = useModalControls() const navigation = useNavigationDeduped() const anchorHref = asAnchor ? sanitizeUrl(href) : undefined @@ -85,37 +85,23 @@ export const Link = memo(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 ( - - - {children ? children : {title || 'link'}} - - - ) - } return ( - + {...props} + android_ripple={{ + color: t.atoms.bg_contrast_25.backgroundColor, + }} + unstable_pressDelay={isAndroid ? 90 : undefined}> {/* @ts-ignore web only -prf */} {children ? children : {title || 'link'}} - + ) }