diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index fd8edaf2..f8f5197c 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -62,19 +62,23 @@ export let MessageItem = ({ lastInGroupRef.current = isLastInGroup } + const pendingColor = + t.name === 'light' ? t.palette.primary_200 : t.palette.primary_800 + return ( {item.text} diff --git a/src/components/dms/MessageMenu.tsx b/src/components/dms/MessageMenu.tsx index a2132420..1e173360 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 }, []) @@ -62,12 +73,22 @@ export let MessageMenu = ({ )} + + + {_(msg`Copy message text`)} + + + + - {_(msg`Delete`)} + {_(msg`Delete for me`)} {!isFromSelf && ( diff --git a/src/components/dms/NewChat.tsx b/src/components/dms/NewChat.tsx index a6b5d563..5dde8628 100644 --- a/src/components/dms/NewChat.tsx +++ b/src/components/dms/NewChat.tsx @@ -20,6 +20,7 @@ import * as TextField from '#/components/forms/TextField' import {MagnifyingGlass2_Stroke2_Corner0_Rounded as Search} from '#/components/icons/MagnifyingGlass2' import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus' import {Button} from '../Button' +import {Envelope_Stroke2_Corner0_Rounded as Envelope} from '../icons/Envelope' import {ListMaybePlaceholder} from '../Lists' import {Text} from '../Typography' @@ -178,7 +179,7 @@ function SearchablePeopleList({ - @@ -211,20 +213,35 @@ function SearchablePeopleList({ ListHeaderComponent={ <> {listHeader} - {searchText.length > 0 && !actorAutocompleteData?.length && ( - + {searchText.length === 0 ? ( + + + + Search for someone to start a conversation with. + + + ) : ( + !actorAutocompleteData?.length && ( + + ) )} } diff --git a/src/screens/Messages/List/index.tsx b/src/screens/Messages/List/index.tsx index 25c1a39d..ce8f52af 100644 --- a/src/screens/Messages/List/index.tsx +++ b/src/screens/Messages/List/index.tsx @@ -21,6 +21,7 @@ import {TimeElapsed} from '#/view/com/util/TimeElapsed' import {PreviewableUserAvatar} from '#/view/com/util/UserAvatar' import {ViewHeader} from '#/view/com/util/ViewHeader' import {CenteredView} from '#/view/com/util/Views' +import {ScrollView} from '#/view/com/util/Views' import {atoms as a, useBreakpoints, useTheme, web} from '#/alf' import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {DialogControlProps, useDialogControl} from '#/components/Dialog' @@ -130,7 +131,7 @@ export function MessagesScreen({navigation}: Props) { if (!hasValidServiceUrl) { return ( - + Service URL @@ -143,7 +144,7 @@ export function MessagesScreen({navigation}: Props) { /> - + ) } diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index 32520182..ac97f3da 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,6 +1,6 @@ import React, {memo} from 'react' import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' -import {setStringAsync} from 'expo-clipboard' +import * as Clipboard from 'expo-clipboard' import { AppBskyActorDefs, AppBskyFeedPost, @@ -160,7 +160,7 @@ let PostDropdownBtn = ({ const onCopyPostText = React.useCallback(() => { const str = richTextToString(richText, true) - setStringAsync(str) + Clipboard.setStringAsync(str) Toast.show(_(msg`Copied to clipboard`)) }, [_, richText])