45f0f7eefe
* Direct port of embeds to new arch (cherry picked from commit cc3fa1f6cea396dd9222486c633a508bfee1ecd6) * Re-org * Split out ListEmbed and FeedEmbed * Split out ImageEmbed * DRY up a bit * Port over ExternalLinkEmbed * Port over Player and Gif embeds * Migrate ComposerReplyTo * Replace other usages of old post-embeds * Migrate view contexts * Copy pasta VideoEmbed * Copy pasta GifEmbed * Swap in new file location * Clean up * Fix up native * Add back in correct moderation on List and Feed embeds * Format * Prettier * delete old video utils * move bandwidth-estimate.ts * Remove log * Add LazyQuoteEmbed for composer use * Clean up unused things * Remove remaining items * Prettier * Fix imports * Handle nested quotes same as prod * Add back silenced error handling * Fix lint --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import {View} from 'react-native'
|
|
import {type ChatBskyConvoDefs} from '@atproto/api'
|
|
import {msg} from '@lingui/macro'
|
|
import {useLingui} from '@lingui/react'
|
|
|
|
import {atoms as a} from '#/alf'
|
|
import {MessageContextMenu} from '#/components/dms/MessageContextMenu'
|
|
|
|
export function ActionsWrapper({
|
|
message,
|
|
isFromSelf,
|
|
children,
|
|
}: {
|
|
message: ChatBskyConvoDefs.MessageView
|
|
isFromSelf: boolean
|
|
children: React.ReactNode
|
|
}) {
|
|
const {_} = useLingui()
|
|
|
|
return (
|
|
<MessageContextMenu message={message}>
|
|
{trigger =>
|
|
// will always be true, since this file is platform split
|
|
trigger.isNative && (
|
|
<View style={[a.flex_1, a.relative]}>
|
|
<View
|
|
style={[
|
|
{maxWidth: '80%'},
|
|
isFromSelf
|
|
? [a.self_end, a.align_end]
|
|
: [a.self_start, a.align_start],
|
|
]}
|
|
accessible={true}
|
|
accessibilityActions={[
|
|
{name: 'activate', label: _(msg`Open message options`)},
|
|
]}
|
|
onAccessibilityAction={() => trigger.control.open('full')}>
|
|
{children}
|
|
</View>
|
|
</View>
|
|
)
|
|
}
|
|
</MessageContextMenu>
|
|
)
|
|
}
|