diff options
Diffstat (limited to 'src/view/com/post/Post.tsx')
-rw-r--r-- | src/view/com/post/Post.tsx | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index 5139d5830..a1f8298ff 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -1,4 +1,4 @@ -import React, {useState, useEffect} from 'react' +import React, {useCallback, useEffect, useMemo, useState} from 'react' import { ActivityIndicator, Linking, @@ -205,11 +205,47 @@ const PostLoaded = observer( ) }, [item, setDeleted, 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], + ) + return ( <PostHider href={itemHref} style={[styles.outer, pal.view, pal.border, style]} - moderation={item.moderation.list}> + moderation={item.moderation.list} + accessibilityActions={accessibilityActions} + onAccessibilityAction={onAccessibilityAction}> {showReplyLine && <View style={styles.replyLine} />} <View style={styles.layout}> <View style={styles.layoutAvi}> |