diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-05-04 01:49:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-04 01:49:49 +0100 |
commit | c223bcdaf796938b411c7df5c9560ebc0685ceb4 (patch) | |
tree | ce78c0c1aadf2e9825f6a8e7cd28d6c8a2d9c553 /src/components/dms/MessageMenu.tsx | |
parent | feff55a14a050665e6cc8bb7511425986ef4768a (diff) | |
download | voidsky-c223bcdaf796938b411c7df5c9560ebc0685ceb4.tar.zst |
Assorted clipclop fixes (#3853)
* empty state for new chat dialog * use terniary * dark mode pending state * copy message text option * fix service url input (scrollview ftw) * whoops, fix equality * slightly reduce horizontal message padding
Diffstat (limited to 'src/components/dms/MessageMenu.tsx')
-rw-r--r-- | src/components/dms/MessageMenu.tsx | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index a21324204..1e1733609 100644 --- a/src/components/dms/MessageMenu.tsx +++ b/src/components/dms/MessageMenu.tsx @@ -1,10 +1,12 @@ import React from 'react' import {Pressable, View} from 'react-native' +import * as Clipboard from 'expo-clipboard' import {ChatBskyConvoDefs} from '@atproto-labs/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useSession} from 'state/session' +import * as Toast from '#/view/com/util/Toast' import {atoms as a, useTheme} from '#/alf' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {Trash_Stroke2_Corner0_Rounded as Trash} from '#/components/icons/Trash' @@ -12,6 +14,7 @@ import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/War import * as Menu from '#/components/Menu' import * as Prompt from '#/components/Prompt' import {usePromptControl} from '#/components/Prompt' +import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '../icons/Clipboard' export let MessageMenu = ({ message, @@ -32,6 +35,14 @@ export let MessageMenu = ({ const isFromSelf = message.sender?.did === currentAccount?.did + const onCopyPostText = React.useCallback(() => { + // use when we have rich text + // const str = richTextToString(richText, true) + + Clipboard.setStringAsync(message.text) + Toast.show(_(msg`Copied to clipboard`)) + }, [_, message.text]) + const onDelete = React.useCallback(() => { // TODO delete the message }, []) @@ -64,10 +75,20 @@ export let MessageMenu = ({ <Menu.Outer> <Menu.Group> <Menu.Item + testID="messageDropdownCopyBtn" + label={_(msg`Copy message text`)} + onPress={onCopyPostText}> + <Menu.ItemText>{_(msg`Copy message text`)}</Menu.ItemText> + <Menu.ItemIcon icon={ClipboardIcon} position="right" /> + </Menu.Item> + </Menu.Group> + <Menu.Divider /> + <Menu.Group> + <Menu.Item testID="messageDropdownDeleteBtn" - label={_(msg`Delete message`)} + label={_(msg`Delete message for me`)} onPress={deleteControl.open}> - <Menu.ItemText>{_(msg`Delete`)}</Menu.ItemText> + <Menu.ItemText>{_(msg`Delete for me`)}</Menu.ItemText> <Menu.ItemIcon icon={Trash} position="right" /> </Menu.Item> {!isFromSelf && ( |