allow text selection of the post being replied to in composer

This commit is contained in:
Hailey
2024-03-23 08:53:13 -07:00
parent 0baf9f9919
commit ea280b0eb7
2 changed files with 27 additions and 23 deletions
+9 -6
View File
@@ -1,21 +1,22 @@
import React from 'react' import React from 'react'
import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native' import {LayoutAnimation, Pressable, StyleSheet, View} from 'react-native'
import {Image} from 'expo-image' import {Image} from 'expo-image'
import {useLingui} from '@lingui/react'
import {msg} from '@lingui/macro'
import { import {
AppBskyEmbedImages, AppBskyEmbedImages,
AppBskyEmbedRecord, AppBskyEmbedRecord,
AppBskyEmbedRecordWithMedia, AppBskyEmbedRecordWithMedia,
AppBskyFeedPost, AppBskyFeedPost,
} from '@atproto/api' } from '@atproto/api'
import {ComposerOptsPostRef} from 'state/shell/composer' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {usePalette} from 'lib/hooks/usePalette' import {usePalette} from 'lib/hooks/usePalette'
import {sanitizeDisplayName} from 'lib/strings/display-names' import {sanitizeDisplayName} from 'lib/strings/display-names'
import {sanitizeHandle} from 'lib/strings/handles' import {sanitizeHandle} from 'lib/strings/handles'
import {UserAvatar} from 'view/com/util/UserAvatar' import {ComposerOptsPostRef} from 'state/shell/composer'
import {Text} from 'view/com/util/text/Text'
import {QuoteEmbed} from 'view/com/util/post-embeds/QuoteEmbed' import {QuoteEmbed} from 'view/com/util/post-embeds/QuoteEmbed'
import {Text} from 'view/com/util/text/Text'
import {UserAvatar} from 'view/com/util/UserAvatar'
export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) {
const pal = usePalette('default') const pal = usePalette('default')
@@ -76,6 +77,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) {
<Pressable <Pressable
style={[pal.border, styles.replyToLayout]} style={[pal.border, styles.replyToLayout]}
onPress={onPress} onPress={onPress}
onLongPress={() => {}}
accessibilityRole="button" accessibilityRole="button"
accessibilityLabel={_( accessibilityLabel={_(
msg`Expand or collapse the full post you are replying to`, msg`Expand or collapse the full post you are replying to`,
@@ -100,7 +102,8 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) {
<Text <Text
type="post-text" type="post-text"
style={pal.text} style={pal.text}
numberOfLines={!showFull ? 6 : undefined}> numberOfLines={!showFull ? 6 : undefined}
selectable>
{replyTo.text} {replyTo.text}
</Text> </Text>
</View> </View>
+18 -17
View File
@@ -1,31 +1,32 @@
import React from 'react' import React from 'react'
import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native'
import { import {
AppBskyFeedDefs,
AppBskyEmbedRecord,
AppBskyFeedPost,
AppBskyEmbedImages,
AppBskyEmbedRecordWithMedia,
AppBskyEmbedExternal, AppBskyEmbedExternal,
RichText as RichTextAPI, AppBskyEmbedImages,
AppBskyEmbedRecord,
AppBskyEmbedRecordWithMedia,
AppBskyFeedDefs,
AppBskyFeedPost,
moderatePost, moderatePost,
ModerationDecision, ModerationDecision,
RichText as RichTextAPI,
} from '@atproto/api' } from '@atproto/api'
import {AtUri} from '@atproto/api' import {AtUri} from '@atproto/api'
import {PostMeta} from '../PostMeta'
import {Link} from '../Link'
import {Text} from '../text/Text'
import {usePalette} from 'lib/hooks/usePalette'
import {ComposerOptsQuote} from 'state/shell/composer'
import {PostEmbeds} from '.'
import {PostAlerts} from '../../../../components/moderation/PostAlerts'
import {makeProfileLink} from 'lib/routes/links'
import {InfoCircleIcon} from 'lib/icons'
import {Trans} from '@lingui/macro' import {Trans} from '@lingui/macro'
import {useModerationOpts} from '#/state/queries/preferences' import {useModerationOpts} from '#/state/queries/preferences'
import {ContentHider} from '../../../../components/moderation/ContentHider' import {usePalette} from 'lib/hooks/usePalette'
import {RichText} from '#/components/RichText' import {InfoCircleIcon} from 'lib/icons'
import {makeProfileLink} from 'lib/routes/links'
import {ComposerOptsQuote} from 'state/shell/composer'
import {atoms as a} from '#/alf' import {atoms as a} from '#/alf'
import {RichText} from '#/components/RichText'
import {ContentHider} from '../../../../components/moderation/ContentHider'
import {PostAlerts} from '../../../../components/moderation/PostAlerts'
import {Link} from '../Link'
import {PostMeta} from '../PostMeta'
import {Text} from '../text/Text'
import {PostEmbeds} from '.'
export function MaybeQuoteEmbed({ export function MaybeQuoteEmbed({
embed, embed,