···11import React from 'react'
22import {LayoutAnimation} from 'react-native'
33import * as Clipboard from 'expo-clipboard'
44-import {ChatBskyConvoDefs, RichText} from '@atproto/api'
44+import {type ChatBskyConvoDefs, RichText} from '@atproto/api'
55import {msg} from '@lingui/macro'
66import {useLingui} from '@lingui/react'
7788import {useOpenLink} from '#/lib/hooks/useOpenLink'
99import {richTextToString} from '#/lib/strings/rich-text-helpers'
1010import {getTranslatorLink} from '#/locale/helpers'
1111+import {isNative} from '#/platform/detection'
1112import {useConvoActive} from '#/state/messages/convo'
1213import {useLanguagePrefs} from '#/state/preferences'
1314import {useSession} from '#/state/session'
1415import * as Toast from '#/view/com/util/Toast'
1516import * as ContextMenu from '#/components/ContextMenu'
1616-import {TriggerProps} from '#/components/ContextMenu/types'
1717+import {type TriggerProps} from '#/components/ContextMenu/types'
1718import {ReportDialog} from '#/components/dms/ReportDialog'
1819import {BubbleQuestion_Stroke2_Corner0_Rounded as Translate} from '#/components/icons/Bubble'
1920import {Clipboard_Stroke2_Corner2_Rounded as ClipboardIcon} from '#/components/icons/Clipboard'
···2122import {Warning_Stroke2_Corner0_Rounded as Warning} from '#/components/icons/Warning'
2223import * as Prompt from '#/components/Prompt'
2324import {usePromptControl} from '#/components/Prompt'
2525+import {EmojiReactionPicker} from './EmojiReactionPicker'
24262527export let MessageContextMenu = ({
2628 message,
···7779 return (
7880 <>
7981 <ContextMenu.Root>
8282+ {isNative && (
8383+ <ContextMenu.AuxiliaryView align={isFromSelf ? 'right' : 'left'}>
8484+ <EmojiReactionPicker message={message} />
8585+ </ContextMenu.AuxiliaryView>
8686+ )}
8787+8088 <ContextMenu.Trigger
8189 label={_(msg`Message options`)}
8290 contentLabel={_(