diff options
author | Jaz <ericvolp12@gmail.com> | 2023-05-30 18:25:29 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-30 18:25:29 -0700 |
commit | 09ade363fdcfadb03433385e0c5510bc58438a65 (patch) | |
tree | 710af28d1eb7f70acf81f86acb44759439e164fc /src/view/com/post-thread/PostThreadItem.tsx | |
parent | 7f76c2d67e62ba2d10e8b17673a7bbcf7248564f (diff) | |
parent | e224569a11b82361d782324a63bdfc19d44a3201 (diff) | |
download | voidsky-09ade363fdcfadb03433385e0c5510bc58438a65.tar.zst |
Merge branch 'main' into inherit_system_theme
Diffstat (limited to 'src/view/com/post-thread/PostThreadItem.tsx')
-rw-r--r-- | src/view/com/post-thread/PostThreadItem.tsx | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 084e30a25..4ba2e1a40 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import React, {useCallback, useMemo} from 'react' import {observer} from 'mobx-react-lite' import {Linking, StyleSheet, View} from 'react-native' import Clipboard from '@react-native-clipboard/clipboard' @@ -99,7 +99,11 @@ export const PostThreadItem = observer(function PostThreadItem({ const onOpenTranslate = React.useCallback(() => { Linking.openURL( - encodeURI(`https://translate.google.com/#auto|en|${record?.text || ''}`), + encodeURI( + `https://translate.google.com/?sl=auto&tl=en&text=${ + record?.text || '' + }`, + ), ) }, [record]) @@ -129,6 +133,40 @@ export const PostThreadItem = observer(function PostThreadItem({ ) }, [item, store]) + const accessibilityActions = useMemo( + () => [ + { + name: 'reply', + label: 'Reply', + }, + { + name: 'repost', + label: item.post.viewer?.repost ? 'Undo repost' : 'Repost', + }, + {name: 'like', label: item.post.viewer?.like ? 'Unlike' : 'Like'}, + ], + [item.post.viewer?.like, item.post.viewer?.repost], + ) + + const onAccessibilityAction = useCallback( + event => { + switch (event.nativeEvent.actionName) { + case 'like': + onPressToggleLike() + break + case 'reply': + onPressReply() + break + case 'repost': + onPressToggleRepost() + break + default: + break + } + }, + [onPressReply, onPressToggleLike, onPressToggleRepost], + ) + if (!record) { return <ErrorMessage message="Invalid or unsupported post record" /> } @@ -150,7 +188,9 @@ export const PostThreadItem = observer(function PostThreadItem({ <PostHider testID={`postThreadItem-by-${item.post.author.handle}`} style={[styles.outer, styles.outerHighlighted, pal.border, pal.view]} - moderation={item.moderation.thread}> + moderation={item.moderation.thread} + accessibilityActions={accessibilityActions} + onAccessibilityAction={onAccessibilityAction}> <View style={styles.layout}> <View style={styles.layoutAvi}> <Link @@ -320,7 +360,9 @@ export const PostThreadItem = observer(function PostThreadItem({ pal.view, item._showParentReplyLine && styles.noTopBorder, ]} - moderation={item.moderation.thread}> + moderation={item.moderation.thread} + accessibilityActions={accessibilityActions} + onAccessibilityAction={onAccessibilityAction}> {item._showParentReplyLine && ( <View style={[ |