@planningcenter/chat-react-native 4.2.1-qa-staging.1 → 4.2.1-qa-staging.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/build/components/conversation/message_form.d.ts.map +1 -1
  2. package/build/components/conversation/message_form.js +1 -1
  3. package/build/components/conversation/message_form.js.map +1 -1
  4. package/build/contexts/conversation_context.d.ts +3 -1
  5. package/build/contexts/conversation_context.d.ts.map +1 -1
  6. package/build/contexts/conversation_context.js +23 -18
  7. package/build/contexts/conversation_context.js.map +1 -1
  8. package/build/hooks/use_conversation_message_lookup.d.ts +7 -0
  9. package/build/hooks/use_conversation_message_lookup.d.ts.map +1 -0
  10. package/build/hooks/use_conversation_message_lookup.js +52 -0
  11. package/build/hooks/use_conversation_message_lookup.js.map +1 -0
  12. package/build/hooks/use_conversation_messages.d.ts +1 -0
  13. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  14. package/build/hooks/use_conversation_messages.js +8 -1
  15. package/build/hooks/use_conversation_messages.js.map +1 -1
  16. package/build/hooks/use_conversation_messages_jolt_events.d.ts +12 -4
  17. package/build/hooks/use_conversation_messages_jolt_events.d.ts.map +1 -1
  18. package/build/hooks/use_conversation_messages_jolt_events.js +82 -88
  19. package/build/hooks/use_conversation_messages_jolt_events.js.map +1 -1
  20. package/build/hooks/use_fetch_newer_messages.d.ts.map +1 -1
  21. package/build/hooks/use_fetch_newer_messages.js +27 -21
  22. package/build/hooks/use_fetch_newer_messages.js.map +1 -1
  23. package/build/hooks/use_fetch_newer_on_foreground.d.ts +1 -1
  24. package/build/hooks/use_fetch_newer_on_foreground.d.ts.map +1 -1
  25. package/build/hooks/use_fetch_newer_on_foreground.js +2 -1
  26. package/build/hooks/use_fetch_newer_on_foreground.js.map +1 -1
  27. package/build/hooks/use_held_back_messages.d.ts +11 -0
  28. package/build/hooks/use_held_back_messages.d.ts.map +1 -0
  29. package/build/hooks/use_held_back_messages.js +24 -0
  30. package/build/hooks/use_held_back_messages.js.map +1 -0
  31. package/build/hooks/use_message_create_or_update.d.ts.map +1 -1
  32. package/build/hooks/use_message_create_or_update.js +91 -80
  33. package/build/hooks/use_message_create_or_update.js.map +1 -1
  34. package/build/hooks/use_message_reaction_toggle.d.ts.map +1 -1
  35. package/build/hooks/use_message_reaction_toggle.js +45 -40
  36. package/build/hooks/use_message_reaction_toggle.js.map +1 -1
  37. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  38. package/build/screens/conversation_screen.d.ts.map +1 -1
  39. package/build/screens/conversation_screen.js +495 -157
  40. package/build/screens/conversation_screen.js.map +1 -1
  41. package/build/screens/message_actions_screen.d.ts.map +1 -1
  42. package/build/screens/message_actions_screen.js +21 -26
  43. package/build/screens/message_actions_screen.js.map +1 -1
  44. package/build/screens/message_report_screen.d.ts.map +1 -1
  45. package/build/screens/message_report_screen.js +17 -44
  46. package/build/screens/message_report_screen.js.map +1 -1
  47. package/build/screens/reactions_screen.d.ts.map +1 -1
  48. package/build/screens/reactions_screen.js +70 -88
  49. package/build/screens/reactions_screen.js.map +1 -1
  50. package/build/utils/cache/find_message_in_caches.d.ts +4 -0
  51. package/build/utils/cache/find_message_in_caches.d.ts.map +1 -0
  52. package/build/utils/cache/find_message_in_caches.js +16 -0
  53. package/build/utils/cache/find_message_in_caches.js.map +1 -0
  54. package/build/utils/cache/messages_cache.d.ts +1 -0
  55. package/build/utils/cache/messages_cache.d.ts.map +1 -1
  56. package/build/utils/cache/messages_cache.js +3 -0
  57. package/build/utils/cache/messages_cache.js.map +1 -1
  58. package/build/utils/cache/optimistically_update_message.d.ts +2 -1
  59. package/build/utils/cache/optimistically_update_message.d.ts.map +1 -1
  60. package/build/utils/cache/optimistically_update_message.js +4 -4
  61. package/build/utils/cache/optimistically_update_message.js.map +1 -1
  62. package/build/utils/cache/prepend_newer_page.d.ts +1 -1
  63. package/build/utils/cache/prepend_newer_page.d.ts.map +1 -1
  64. package/build/utils/cache/prepend_newer_page.js +10 -9
  65. package/build/utils/cache/prepend_newer_page.js.map +1 -1
  66. package/package.json +3 -3
  67. package/src/__tests__/hooks/use_conversation_messages.test.ts +22 -0
  68. package/src/__tests__/hooks/use_conversation_messages_jolt_events.test.ts +22 -25
  69. package/src/components/conversation/message_form.tsx +1 -2
  70. package/src/contexts/conversation_context.tsx +6 -1
  71. package/src/hooks/__tests__/use_fetch_newer_messages.test.tsx +68 -0
  72. package/src/hooks/__tests__/use_held_back_messages.test.tsx +60 -0
  73. package/src/hooks/__tests__/use_message_reaction_toggle.test.tsx +73 -0
  74. package/src/hooks/use_conversation_message_lookup.ts +29 -0
  75. package/src/hooks/use_conversation_messages.ts +9 -0
  76. package/src/hooks/use_conversation_messages_jolt_events.ts +43 -41
  77. package/src/hooks/use_fetch_newer_messages.ts +19 -12
  78. package/src/hooks/use_fetch_newer_on_foreground.ts +2 -2
  79. package/src/hooks/use_held_back_messages.ts +33 -0
  80. package/src/hooks/use_message_create_or_update.ts +8 -8
  81. package/src/hooks/use_message_reaction_toggle.ts +3 -1
  82. package/src/screens/conversation_new/components/services_form.tsx +1 -1
  83. package/src/screens/conversation_screen.tsx +21 -20
  84. package/src/screens/message_actions_screen.tsx +3 -5
  85. package/src/screens/message_report_screen.tsx +2 -3
  86. package/src/screens/reactions_screen.tsx +2 -4
  87. package/src/utils/cache/__tests__/find_message_in_caches.test.ts +37 -0
  88. package/src/utils/cache/__tests__/messages_cache.test.ts +14 -1
  89. package/src/utils/cache/__tests__/prepend_newer_page.test.ts +13 -14
  90. package/src/utils/cache/find_message_in_caches.ts +20 -0
  91. package/src/utils/cache/messages_cache.ts +3 -0
  92. package/src/utils/cache/optimistically_update_message.ts +2 -5
  93. package/src/utils/cache/prepend_newer_page.ts +7 -10
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_screen.js","names":["HeaderTitle","PlatformPressable","CommonActions","useNavigation","useTheme","useNavigationTheme","useRoute","React","startTransition","useCallback","useEffect","useRef","useState","Platform","StyleSheet","useWindowDimensions","View","useSafeAreaInsets","Badge","Icon","AnchorNotFoundBoundary","ConversationStartBanner","JumpToBottomButton","MessageForm","MessageList","ConversationDisabledBanner","LeaderMessagesDisabledBanner","MemberMessagesDisabledBanner","TypingIndicator","KeyboardView","useHeaderSlotReserve","BlankState","ConversationContextProvider","useMessageAvailableMembersAction","useConversation","useConversationJoltEvents","useConversationMessages","useConversationMessagesJoltEvents","useFetchNewerMessages","useFetchNewerOnForeground","useMarkLatestMessageRead","analyticsEvents","normalizeAnalyticsMetadata","usePublishProductAnalyticsEvent","useRestAwayFromDismissEdge","useVideoModerationJoltEvents","gatedMessageCache","decodeUlidTime","jsx","_jsx","jsxs","_jsxs","ConversationScreen","t0","$","_c","route","conversation_id","reply_root_id","initial_message_id","params","t1","data","conversation","t2","lastMessageCreatedAt","isBeforeLatestMessage","anchor","setAnchor","t3","Symbol","for","exitAnchoredMode","t4","dropAnchor","t5","t6","conversation_show_opened","t7","t8","children","ConversationScreenContent","t9","currentPageReplyRootId","onExitAnchoredMode","styles","useStyles","navigation","editing_message_id","reply_root_author_name","anchored","messages","fetchNextPage","hasNextPage","fetchPreviousPage","hasPreviousPage","isFetchingPreviousPage","queryKey","behindLatest","caughtUp","showJumpToBottomButton","setShowJumpToBottomButton","readingHistory","skippedNewMessages","messageCaches","acceptNewMessages","onSkippedNewMessage","current","newestMessageId","id","conversationId","markHandledByMessageForm","useEnsureConversationsRouteExists","enabled","fetchNewer","noMessages","length","repliesDisabled","memberAbility","badges","title","canReply","showLeaderDisabledReplyBanner","currentlyEditingMessage","find","m","String","replyRootAuthorFirstName","split","replyHeaderTitle","muted","conversationMembership","listRef","hasDragged","setHasDragged","holdListPosition","restOffset","onLayout","onContentSizeChange","onMomentumScrollEnd","onScrollEndDrag","OS","handleReturnToBottom","scrollToOffset","offset","jumpToLatest","trackScroll","event","offsetY","nativeEvent","contentOffset","y","loadNewerMessages","setParams","badge","deleted","style","container","Root","Imagery","name","Content","Heading","Button","onPress","goBack","accessibilityHint","accessibilityRole","emptyState","hasMessages","replyRootId","anchorMessageId","onEndReached","onScroll","onScrollBeginDrag","undefined","onStartReached","onStartReachedThreshold","maintainVisibleContentPosition","minIndexForVisible","visible","ConversationBottomBar","onFlaggedInMessageForm","onBeforeSubmit","messageLink","disabled","disabledMessage","message","AttachmentPicker","Commands","TextInput","SubmitButton","latestMessageCreatedAt","Date","parse","ConversationScreenTitle","usePressableHeaderStyle","resourceType","pcoResourceType","productName","appName","text","navigate","maxFontSizeMultiplier","titleTextContainer","size","titleWrapper","variant","testID","width","slotReserve","headerContainerStyle","maxWidth","create","alignItems","select","android","default","flex","columnGap","flexDirection","flexShrink","minWidth","alignSelf","marginTop","navigationTheme","bottom","colors","card","justifyContent","backgroundColor","paddingBottom","chat_group_graph_id","navigationState","getState","routes","conversationsRoute","_temp","dispatch","state","reset","index","r"],"sources":["../../src/screens/conversation_screen.tsx"],"sourcesContent":["import { HeaderTitle, HeaderTitleProps, PlatformPressable } from '@react-navigation/elements'\nimport {\n CommonActions,\n RouteProp,\n StaticScreenProps,\n useNavigation,\n useTheme as useNavigationTheme,\n useRoute,\n} from '@react-navigation/native'\nimport React, { startTransition, useCallback, useEffect, useRef, useState } from 'react'\nimport { FlatList, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Badge, Icon } from '../components'\nimport { AnchorNotFoundBoundary } from '../components/conversation/anchor_not_found_boundary'\nimport { ConversationStartBanner } from '../components/conversation/conversation_start_banner'\nimport { JumpToBottomButton } from '../components/conversation/jump_to_bottom_button'\nimport { MessageForm } from '../components/conversation/message_form'\nimport { MessageList } from '../components/conversation/message_list'\nimport {\n ConversationDisabledBanner,\n LeaderMessagesDisabledBanner,\n MemberMessagesDisabledBanner,\n} from '../components/conversation/messages_disabled_banners'\nimport { TypingIndicator } from '../components/conversation/typing_indicator'\nimport { KeyboardView } from '../components/display/keyboard_view'\nimport { useHeaderSlotReserve } from '../components/display/platform_modal_header_buttons'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport { ConversationContextProvider } from '../contexts/conversation_context'\nimport { useMessageAvailableMembersAction } from '../hooks/direct_messages/use_message_available_members_action'\nimport { useConversation } from '../hooks/use_conversation'\nimport { useConversationJoltEvents } from '../hooks/use_conversation_jolt_events'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { useConversationMessagesJoltEvents } from '../hooks/use_conversation_messages_jolt_events'\nimport { useFetchNewerMessages } from '../hooks/use_fetch_newer_messages'\nimport { useFetchNewerOnForeground } from '../hooks/use_fetch_newer_on_foreground'\nimport { useMarkLatestMessageRead } from '../hooks/use_mark_latest_message_read'\nimport {\n analyticsEvents,\n normalizeAnalyticsMetadata,\n usePublishProductAnalyticsEvent,\n} from '../hooks/use_product_analytics'\nimport { useRestAwayFromDismissEdge } from '../hooks/use_rest_away_from_dismiss_edge'\nimport { useVideoModerationJoltEvents } from '../hooks/use_video_moderation_jolt_events'\nimport { ConversationResource } from '../types/resources/conversation'\nimport { ConversationBadgeResource } from '../types/resources/conversation_badge'\nimport { MessageResource } from '../types/resources/message'\nimport { gatedMessageCache } from '../utils/gated_message_cache'\nimport { decodeUlidTime } from '../utils/ulid'\n\nexport type ConversationRouteProps = {\n conversation_id: number\n reply_root_id?: string | null\n reply_root_author_name?: string\n chat_group_graph_id?: string\n clear_input?: boolean\n editing_message_id?: number | null\n initial_message_id?: string | null\n title?: string\n subtitle?: string\n badge?: ConversationBadgeResource\n deleted?: boolean\n muted?: boolean\n}\n\nexport type ConversationScreenProps = StaticScreenProps<ConversationRouteProps>\n\nexport function ConversationScreen({ route }: ConversationScreenProps) {\n const { conversation_id, reply_root_id, initial_message_id } = route.params\n\n const { data: conversation } = useConversation({ conversation_id })\n const [anchor, setAnchor] = useState(() =>\n isBeforeLatestMessage(initial_message_id, conversation?.lastMessageCreatedAt)\n ? initial_message_id\n : null\n )\n const exitAnchoredMode = useCallback(() => startTransition(() => setAnchor(null)), [])\n const dropAnchor = useCallback(() => setAnchor(null), [])\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_show_opened, {\n reply_root_id,\n ...normalizeAnalyticsMetadata(conversation),\n })\n\n return (\n <ConversationContextProvider\n conversationId={conversation_id}\n currentPageReplyRootId={reply_root_id ?? null}\n >\n {anchor ? (\n <AnchorNotFoundBoundary onAnchorNotFound={dropAnchor}>\n <ConversationScreenContent\n route={route}\n anchor={anchor}\n onExitAnchoredMode={exitAnchoredMode}\n />\n </AnchorNotFoundBoundary>\n ) : (\n <ConversationScreenContent\n route={route}\n anchor={null}\n onExitAnchoredMode={exitAnchoredMode}\n />\n )}\n </ConversationContextProvider>\n )\n}\n\ninterface ConversationScreenContentProps extends ConversationScreenProps {\n anchor: string | null | undefined\n onExitAnchoredMode: () => void\n}\n\nfunction ConversationScreenContent({\n route,\n anchor,\n onExitAnchoredMode,\n}: ConversationScreenContentProps) {\n const styles = useStyles()\n const navigation = useNavigation()\n const { conversation_id, editing_message_id, reply_root_id, reply_root_author_name } =\n route.params\n const { data: conversation } = useConversation(route.params)\n const anchored = !!anchor\n const {\n messages,\n fetchNextPage,\n hasNextPage,\n fetchPreviousPage,\n hasPreviousPage,\n isFetchingPreviousPage,\n queryKey,\n } = useConversationMessages({ conversation_id, reply_root_id, anchor })\n const behindLatest = anchored && hasPreviousPage\n const caughtUp = !hasPreviousPage\n const [showJumpToBottomButton, setShowJumpToBottomButton] = useState(false)\n const readingHistory = showJumpToBottomButton\n const skippedNewMessages = useRef(false)\n const messageCaches = [\n gatedMessageCache({\n queryKey,\n acceptNewMessages: caughtUp && !readingHistory,\n onSkippedNewMessage: () => {\n skippedNewMessages.current = true\n },\n }),\n ]\n const newestMessageId = messages[0]?.id\n useConversationJoltEvents({ conversationId: conversation_id })\n useConversationMessagesJoltEvents({ conversationId: conversation_id, messageCaches })\n const { markHandledByMessageForm } = useVideoModerationJoltEvents()\n useEnsureConversationsRouteExists()\n useMarkLatestMessageRead({ conversation, messages, enabled: !behindLatest })\n const fetchNewer = useFetchNewerMessages({ conversation_id, reply_root_id, queryKey })\n useFetchNewerOnForeground({ fetchNewer, newestMessageId, enabled: anchored && caughtUp })\n const noMessages = messages.length === 0\n\n const { repliesDisabled, memberAbility, badges, title } = conversation\n const canReply = memberAbility?.canReply\n const showLeaderDisabledReplyBanner = canReply && repliesDisabled\n const currentlyEditingMessage = messages.find(m => String(m.id) === String(editing_message_id))\n const replyRootAuthorFirstName = reply_root_author_name?.split(' ')[0]\n const replyHeaderTitle = replyRootAuthorFirstName\n ? `Reply to ${replyRootAuthorFirstName}`\n : 'Reply'\n // Prefer the membership for optimistic updates.\n const muted = conversation.conversationMembership?.muted ?? conversation.muted\n\n const listRef = useRef<FlatList>(null)\n const [hasDragged, setHasDragged] = useState(false)\n const holdListPosition = behindLatest || readingHistory\n\n const { restOffset, onLayout, onContentSizeChange, onMomentumScrollEnd, onScrollEndDrag } =\n useRestAwayFromDismissEdge({\n listRef,\n enabled: Platform.OS === 'ios',\n })\n\n const handleReturnToBottom = useCallback(() => {\n listRef.current?.scrollToOffset({\n offset: restOffset,\n })\n }, [restOffset])\n\n const exitAnchoredMode = useCallback(() => {\n onExitAnchoredMode()\n handleReturnToBottom()\n }, [handleReturnToBottom, onExitAnchoredMode])\n const jumpToLatest = useCallback(() => {\n setShowJumpToBottomButton(false)\n if (behindLatest) exitAnchoredMode()\n else handleReturnToBottom()\n }, [behindLatest, exitAnchoredMode, handleReturnToBottom])\n\n const trackScroll = (event: any) => {\n const offsetY = event.nativeEvent.contentOffset.y\n setShowJumpToBottomButton(offsetY > 200)\n }\n\n const loadNewerMessages = () => {\n if (!hasPreviousPage || isFetchingPreviousPage) return\n\n setHasDragged(false)\n fetchPreviousPage()\n }\n\n useEffect(() => {\n if (readingHistory || !caughtUp || !newestMessageId || !skippedNewMessages.current) return\n\n skippedNewMessages.current = false\n fetchNewer(newestMessageId)\n }, [caughtUp, fetchNewer, newestMessageId, readingHistory])\n\n useEffect(() => {\n if (reply_root_id) {\n navigation.setParams({\n title: replyHeaderTitle,\n })\n } else {\n navigation.setParams({\n title: title,\n badge: badges?.[0],\n deleted: conversation?.deleted,\n muted,\n })\n }\n }, [navigation, title, badges, conversation?.deleted, reply_root_id, replyHeaderTitle, muted])\n\n if (!conversation || conversation.deleted) {\n return (\n <View style={styles.container}>\n <BlankState.Root>\n <BlankState.Imagery name=\"general.outlinedTextMessage\" />\n <BlankState.Content>\n <BlankState.Heading>This conversation has been deleted</BlankState.Heading>\n </BlankState.Content>\n <BlankState.Button\n onPress={navigation.goBack}\n title=\"Back to conversations\"\n accessibilityHint=\"Navigates back to the conversations list\"\n accessibilityRole=\"link\"\n />\n </BlankState.Root>\n </View>\n )\n }\n\n return (\n <View style={styles.container}>\n <KeyboardView>\n {noMessages ? (\n <View style={styles.emptyState}>\n <ConversationStartBanner conversation={conversation} hasMessages={false} />\n </View>\n ) : (\n <MessageList\n listRef={listRef}\n conversation={conversation}\n conversationId={conversation_id}\n messages={messages}\n replyRootId={reply_root_id}\n anchorMessageId={anchor}\n hasNextPage={hasNextPage}\n onEndReached={() => fetchNextPage()}\n onScroll={trackScroll}\n onLayout={onLayout}\n onContentSizeChange={onContentSizeChange}\n onScrollEndDrag={onScrollEndDrag}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollBeginDrag={anchored ? () => setHasDragged(true) : undefined}\n onStartReached={anchored && hasDragged ? loadNewerMessages : undefined}\n onStartReachedThreshold={anchored ? 0.5 : undefined}\n maintainVisibleContentPosition={\n holdListPosition ? { minIndexForVisible: 0 } : undefined\n }\n />\n )}\n <JumpToBottomButton\n onPress={jumpToLatest}\n visible={behindLatest || showJumpToBottomButton}\n />\n {!noMessages && <TypingIndicator />}\n {showLeaderDisabledReplyBanner && <LeaderMessagesDisabledBanner />}\n <ConversationBottomBar\n conversation={conversation}\n canReply={canReply}\n replyRootAuthorFirstName={replyRootAuthorFirstName}\n replyRootId={reply_root_id}\n currentlyEditingMessage={currentlyEditingMessage}\n onFlaggedInMessageForm={markHandledByMessageForm}\n onBeforeSubmit={jumpToLatest}\n />\n </KeyboardView>\n </View>\n )\n}\n\ninterface ConversationBottomBarProps {\n conversation: ConversationResource\n canReply: boolean | undefined\n replyRootAuthorFirstName: string | undefined\n replyRootId: string | null | undefined\n currentlyEditingMessage: MessageResource | undefined\n onFlaggedInMessageForm?: (id: string) => void\n onBeforeSubmit?: () => void\n}\n\nfunction ConversationBottomBar({\n conversation,\n canReply,\n replyRootAuthorFirstName,\n replyRootId,\n currentlyEditingMessage,\n onFlaggedInMessageForm,\n onBeforeSubmit,\n}: ConversationBottomBarProps) {\n const messageLink = useMessageAvailableMembersAction(conversation)\n\n if (conversation.disabled)\n return (\n <ConversationDisabledBanner\n message={conversation.disabledMessage ?? null}\n messageLink={messageLink}\n />\n )\n if (!canReply) return <MemberMessagesDisabledBanner />\n return (\n <MessageForm.Root\n replyRootAuthorFirstName={replyRootAuthorFirstName}\n conversation={conversation}\n replyRootId={replyRootId}\n currentlyEditingMessage={currentlyEditingMessage}\n onFlaggedInMessageForm={onFlaggedInMessageForm}\n onBeforeSubmit={onBeforeSubmit}\n key={\n currentlyEditingMessage\n ? `edit-message-form-${currentlyEditingMessage.id}`\n : 'new-message-form'\n }\n >\n <MessageForm.AttachmentPicker />\n <MessageForm.Commands />\n <MessageForm.TextInput />\n <MessageForm.SubmitButton />\n </MessageForm.Root>\n )\n}\n\nconst isBeforeLatestMessage = (anchor?: string | null, latestMessageCreatedAt?: string) =>\n !!anchor &&\n !!latestMessageCreatedAt &&\n decodeUlidTime(anchor) < Date.parse(latestMessageCreatedAt)\n\ninterface ConversationScreenTitleProps extends HeaderTitleProps {\n conversation_id: number\n badge?: ConversationBadgeResource\n deleted?: boolean\n muted?: boolean\n}\n\nexport const ConversationScreenTitle = ({\n conversation_id,\n badge,\n children,\n style,\n deleted,\n muted,\n}: ConversationScreenTitleProps) => {\n const styles = usePressableHeaderStyle()\n const navigation = useNavigation()\n const resourceType = badge?.pcoResourceType || ''\n const productName = badge?.appName\n const name = badge?.text || undefined\n\n return (\n <PlatformPressable\n testID=\"conversation-details-button\"\n accessibilityHint=\"Opens details about members and settings\"\n style={styles.container}\n onPress={() => {\n if (deleted) return\n\n navigation.navigate('ConversationDetails', { conversation_id })\n }}\n >\n <View style={styles.titleWrapper}>\n <View style={styles.titleTextContainer}>\n <HeaderTitle maxFontSizeMultiplier={1} style={style}>\n {children}\n </HeaderTitle>\n </View>\n {muted && <Icon name=\"general.bellMuted\" size={12} />}\n {!deleted && <Icon name=\"general.downChevron\" size={12} />}\n </View>\n <Badge\n variant=\"metaSubtle\"\n productLogoName={productName}\n label={resourceType}\n metaLabel={name}\n style={styles.badge}\n maxFontSizeMultiplier={1}\n />\n </PlatformPressable>\n )\n}\n\nconst usePressableHeaderStyle = () => {\n const { width } = useWindowDimensions()\n const slotReserve = useHeaderSlotReserve()\n const headerContainerStyle = { maxWidth: width - slotReserve * 2 }\n\n return StyleSheet.create({\n container: {\n alignItems: Platform.select({ android: 'flex-start', default: 'center' }),\n flex: 1,\n ...headerContainerStyle,\n },\n titleWrapper: {\n alignItems: 'center',\n columnGap: 4,\n flexDirection: 'row',\n flexShrink: 1,\n },\n titleTextContainer: {\n flexShrink: 1,\n minWidth: 0,\n },\n badge: {\n alignSelf: Platform.select({ android: 'flex-start', default: 'center' }),\n marginTop: 2,\n },\n })\n}\n\nconst useStyles = () => {\n const navigationTheme = useNavigationTheme()\n const { bottom } = useSafeAreaInsets()\n\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n backgroundColor: navigationTheme.colors.card,\n paddingBottom: bottom,\n },\n emptyState: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n\n/**\n * useEnsureConversationsRouteExists\n */\nconst useEnsureConversationsRouteExists = () => {\n const navigation = useNavigation()\n const { params } = useRoute<RouteProp<ConversationScreenProps['route']>>()\n\n useEffect(() => {\n const navigationState = navigation.getState()\n const routes = navigationState?.routes || []\n const conversationsRoute = routes.find(r => r.name === 'Conversations')\n\n if (conversationsRoute) return\n\n navigation.dispatch(state => {\n return CommonActions.reset({\n ...state,\n routes: [\n { name: 'Conversations', params: { chat_group_graph_id: params?.chat_group_graph_id } },\n ...routes,\n ],\n index: state.index + 1,\n })\n })\n }, [navigation, params?.chat_group_graph_id])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"conversation_screen.js","names":["HeaderTitle","PlatformPressable","CommonActions","useNavigation","useTheme","useNavigationTheme","useRoute","React","startTransition","useCallback","useEffect","useRef","useState","Platform","StyleSheet","useWindowDimensions","View","useSafeAreaInsets","Badge","Icon","AnchorNotFoundBoundary","ConversationStartBanner","JumpToBottomButton","MessageForm","MessageList","ConversationDisabledBanner","LeaderMessagesDisabledBanner","MemberMessagesDisabledBanner","TypingIndicator","KeyboardView","useHeaderSlotReserve","BlankState","ConversationContextProvider","useMessageAvailableMembersAction","useConversation","useConversationJoltEvents","useConversationMessages","useConversationMessagesJoltEvents","useFetchNewerMessages","useFetchNewerOnForeground","useHeldBackMessages","useMarkLatestMessageRead","analyticsEvents","normalizeAnalyticsMetadata","usePublishProductAnalyticsEvent","useRestAwayFromDismissEdge","useVideoModerationJoltEvents","newestPersistedMessageId","gatedMessageCache","getMessagesQueryKey","decodeUlidTime","jsx","_jsx","jsxs","_jsxs","ConversationScreen","t0","$","_c","route","conversation_id","reply_root_id","initial_message_id","params","t1","data","conversation","t2","lastMessageCreatedAt","isBeforeLatestMessage","anchor","setAnchor","t3","Symbol","for","exitAnchoredMode","t4","dropAnchor","t5","t6","conversation_show_opened","t7","t8","t9","children","ConversationScreenContent","t10","currentPageReplyRootId","messagesQueryKey","onExitAnchoredMode","styles","useStyles","navigation","editing_message_id","reply_root_author_name","anchored","messages","fetchNextPage","hasNextPage","fetchPreviousPage","hasPreviousPage","isFetchingPreviousPage","queryKey","behindLatest","caughtUp","showJumpToBottomButton","setShowJumpToBottomButton","readingHistory","newestMessageId","fetchNewer","onSkippedNewMessage","conversationId","acceptNewMessages","replyRootId","messageCache","markHandledByMessageForm","useEnsureConversationsRouteExists","t11","enabled","t12","t13","noMessages","length","repliesDisabled","memberAbility","badges","title","canReply","showLeaderDisabledReplyBanner","t14","t15","m","String","id","find","currentlyEditingMessage","split","replyRootAuthorFirstName","replyHeaderTitle","muted","conversationMembership","listRef","hasDragged","setHasDragged","holdListPosition","t16","OS","restOffset","onLayout","onContentSizeChange","onMomentumScrollEnd","onScrollEndDrag","t17","current","scrollToOffset","offset","handleReturnToBottom","t18","t19","jumpToLatest","t20","event","offsetY","nativeEvent","contentOffset","y","trackScroll","t21","loadNewerMessages","t22","deleted","setParams","badge","t23","t24","t25","Imagery","name","t26","Content","Heading","t27","goBack","Root","Button","onPress","accessibilityHint","accessibilityRole","t28","container","style","emptyState","hasMessages","onEndReached","onScrollBeginDrag","undefined","onStartReached","onStartReachedThreshold","maintainVisibleContentPosition","minIndexForVisible","visible","t29","t30","ConversationBottomBar","t31","t32","onFlaggedInMessageForm","onBeforeSubmit","messageLink","disabled","disabledMessage","message","AttachmentPicker","Commands","TextInput","SubmitButton","latestMessageCreatedAt","Date","parse","ConversationScreenTitle","usePressableHeaderStyle","resourceType","pcoResourceType","productName","appName","text","navigate","maxFontSizeMultiplier","titleTextContainer","size","titleWrapper","variant","testID","width","slotReserve","headerContainerStyle","maxWidth","create","alignItems","select","android","default","flex","columnGap","flexDirection","flexShrink","minWidth","alignSelf","marginTop","navigationTheme","bottom","colors","card","justifyContent","backgroundColor","paddingBottom","chat_group_graph_id","navigationState","getState","routes","conversationsRoute","_temp","dispatch","state","reset","index","r"],"sources":["../../src/screens/conversation_screen.tsx"],"sourcesContent":["import { HeaderTitle, HeaderTitleProps, PlatformPressable } from '@react-navigation/elements'\nimport {\n CommonActions,\n RouteProp,\n StaticScreenProps,\n useNavigation,\n useTheme as useNavigationTheme,\n useRoute,\n} from '@react-navigation/native'\nimport React, { startTransition, useCallback, useEffect, useRef, useState } from 'react'\nimport { FlatList, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useSafeAreaInsets } from 'react-native-safe-area-context'\nimport { Badge, Icon } from '../components'\nimport { AnchorNotFoundBoundary } from '../components/conversation/anchor_not_found_boundary'\nimport { ConversationStartBanner } from '../components/conversation/conversation_start_banner'\nimport { JumpToBottomButton } from '../components/conversation/jump_to_bottom_button'\nimport { MessageForm } from '../components/conversation/message_form'\nimport { MessageList } from '../components/conversation/message_list'\nimport {\n ConversationDisabledBanner,\n LeaderMessagesDisabledBanner,\n MemberMessagesDisabledBanner,\n} from '../components/conversation/messages_disabled_banners'\nimport { TypingIndicator } from '../components/conversation/typing_indicator'\nimport { KeyboardView } from '../components/display/keyboard_view'\nimport { useHeaderSlotReserve } from '../components/display/platform_modal_header_buttons'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport { ConversationContextProvider } from '../contexts/conversation_context'\nimport { useMessageAvailableMembersAction } from '../hooks/direct_messages/use_message_available_members_action'\nimport { useConversation } from '../hooks/use_conversation'\nimport { useConversationJoltEvents } from '../hooks/use_conversation_jolt_events'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { useConversationMessagesJoltEvents } from '../hooks/use_conversation_messages_jolt_events'\nimport { useFetchNewerMessages } from '../hooks/use_fetch_newer_messages'\nimport { useFetchNewerOnForeground } from '../hooks/use_fetch_newer_on_foreground'\nimport { useHeldBackMessages } from '../hooks/use_held_back_messages'\nimport { useMarkLatestMessageRead } from '../hooks/use_mark_latest_message_read'\nimport {\n analyticsEvents,\n normalizeAnalyticsMetadata,\n usePublishProductAnalyticsEvent,\n} from '../hooks/use_product_analytics'\nimport { useRestAwayFromDismissEdge } from '../hooks/use_rest_away_from_dismiss_edge'\nimport { useVideoModerationJoltEvents } from '../hooks/use_video_moderation_jolt_events'\nimport { ConversationResource } from '../types/resources/conversation'\nimport { ConversationBadgeResource } from '../types/resources/conversation_badge'\nimport { MessageResource } from '../types/resources/message'\nimport { newestPersistedMessageId } from '../utils/cache/messages_cache'\nimport { gatedMessageCache } from '../utils/gated_message_cache'\nimport { getMessagesQueryKey } from '../utils/request/get_messages'\nimport { decodeUlidTime } from '../utils/ulid'\n\nexport type ConversationRouteProps = {\n conversation_id: number\n reply_root_id?: string | null\n reply_root_author_name?: string\n chat_group_graph_id?: string\n clear_input?: boolean\n editing_message_id?: number | null\n initial_message_id?: string | null\n title?: string\n subtitle?: string\n badge?: ConversationBadgeResource\n deleted?: boolean\n muted?: boolean\n}\n\nexport type ConversationScreenProps = StaticScreenProps<ConversationRouteProps>\n\nexport function ConversationScreen({ route }: ConversationScreenProps) {\n const { conversation_id, reply_root_id, initial_message_id } = route.params\n\n const { data: conversation } = useConversation({ conversation_id })\n const [anchor, setAnchor] = useState(() =>\n isBeforeLatestMessage(initial_message_id, conversation?.lastMessageCreatedAt)\n ? initial_message_id\n : null\n )\n const exitAnchoredMode = useCallback(() => startTransition(() => setAnchor(null)), [])\n const dropAnchor = useCallback(() => setAnchor(null), [])\n\n usePublishProductAnalyticsEvent(analyticsEvents.conversation_show_opened, {\n reply_root_id,\n ...normalizeAnalyticsMetadata(conversation),\n })\n\n return (\n <ConversationContextProvider\n conversationId={conversation_id}\n currentPageReplyRootId={reply_root_id ?? null}\n messagesQueryKey={getMessagesQueryKey({ conversation_id, reply_root_id, anchor })}\n >\n {anchor ? (\n <AnchorNotFoundBoundary onAnchorNotFound={dropAnchor}>\n <ConversationScreenContent\n route={route}\n anchor={anchor}\n onExitAnchoredMode={exitAnchoredMode}\n />\n </AnchorNotFoundBoundary>\n ) : (\n <ConversationScreenContent\n route={route}\n anchor={null}\n onExitAnchoredMode={exitAnchoredMode}\n />\n )}\n </ConversationContextProvider>\n )\n}\n\ninterface ConversationScreenContentProps extends ConversationScreenProps {\n anchor: string | null | undefined\n onExitAnchoredMode: () => void\n}\n\nfunction ConversationScreenContent({\n route,\n anchor,\n onExitAnchoredMode,\n}: ConversationScreenContentProps) {\n const styles = useStyles()\n const navigation = useNavigation()\n const { conversation_id, editing_message_id, reply_root_id, reply_root_author_name } =\n route.params\n const { data: conversation } = useConversation(route.params)\n const anchored = !!anchor\n const {\n messages,\n fetchNextPage,\n hasNextPage,\n fetchPreviousPage,\n hasPreviousPage,\n isFetchingPreviousPage,\n queryKey,\n } = useConversationMessages({ conversation_id, reply_root_id, anchor })\n const behindLatest = anchored && hasPreviousPage\n const caughtUp = !hasPreviousPage\n const [showJumpToBottomButton, setShowJumpToBottomButton] = useState(false)\n const readingHistory = showJumpToBottomButton\n const newestMessageId = newestPersistedMessageId(messages)\n const fetchNewer = useFetchNewerMessages({ conversation_id, reply_root_id, queryKey })\n const { onSkippedNewMessage } = useHeldBackMessages({\n fetchNewer,\n newestMessageId,\n readingHistory,\n caughtUp,\n })\n useConversationJoltEvents({ conversationId: conversation_id })\n useConversationMessagesJoltEvents({\n conversationId: conversation_id,\n replyRootId: reply_root_id ?? null,\n messageCache: gatedMessageCache({\n queryKey,\n acceptNewMessages: caughtUp && !readingHistory,\n onSkippedNewMessage,\n }),\n })\n const { markHandledByMessageForm } = useVideoModerationJoltEvents()\n useEnsureConversationsRouteExists()\n useMarkLatestMessageRead({ conversation, messages, enabled: !behindLatest })\n useFetchNewerOnForeground({ fetchNewer, newestMessageId, enabled: anchored && caughtUp })\n const noMessages = messages.length === 0\n\n const { repliesDisabled, memberAbility, badges, title } = conversation\n const canReply = memberAbility?.canReply\n const showLeaderDisabledReplyBanner = canReply && repliesDisabled\n const currentlyEditingMessage = messages.find(m => String(m.id) === String(editing_message_id))\n const replyRootAuthorFirstName = reply_root_author_name?.split(' ')[0]\n const replyHeaderTitle = replyRootAuthorFirstName\n ? `Reply to ${replyRootAuthorFirstName}`\n : 'Reply'\n // Prefer the membership for optimistic updates.\n const muted = conversation.conversationMembership?.muted ?? conversation.muted\n\n const listRef = useRef<FlatList>(null)\n const [hasDragged, setHasDragged] = useState(false)\n const holdListPosition = behindLatest || readingHistory\n\n const { restOffset, onLayout, onContentSizeChange, onMomentumScrollEnd, onScrollEndDrag } =\n useRestAwayFromDismissEdge({\n listRef,\n enabled: Platform.OS === 'ios',\n })\n\n const handleReturnToBottom = useCallback(() => {\n listRef.current?.scrollToOffset({\n offset: restOffset,\n })\n }, [restOffset])\n\n const exitAnchoredMode = useCallback(() => {\n onExitAnchoredMode()\n handleReturnToBottom()\n }, [handleReturnToBottom, onExitAnchoredMode])\n const jumpToLatest = useCallback(() => {\n setShowJumpToBottomButton(false)\n if (anchored) exitAnchoredMode()\n else handleReturnToBottom()\n }, [anchored, exitAnchoredMode, handleReturnToBottom])\n\n const trackScroll = (event: any) => {\n const offsetY = event.nativeEvent.contentOffset.y\n setShowJumpToBottomButton(offsetY > 200)\n }\n\n const loadNewerMessages = () => {\n if (!hasPreviousPage || isFetchingPreviousPage) return\n\n setHasDragged(false)\n fetchPreviousPage()\n }\n\n useEffect(() => {\n if (reply_root_id) {\n navigation.setParams({\n title: replyHeaderTitle,\n })\n } else {\n navigation.setParams({\n title: title,\n badge: badges?.[0],\n deleted: conversation?.deleted,\n muted,\n })\n }\n }, [navigation, title, badges, conversation?.deleted, reply_root_id, replyHeaderTitle, muted])\n\n if (!conversation || conversation.deleted) {\n return (\n <View style={styles.container}>\n <BlankState.Root>\n <BlankState.Imagery name=\"general.outlinedTextMessage\" />\n <BlankState.Content>\n <BlankState.Heading>This conversation has been deleted</BlankState.Heading>\n </BlankState.Content>\n <BlankState.Button\n onPress={navigation.goBack}\n title=\"Back to conversations\"\n accessibilityHint=\"Navigates back to the conversations list\"\n accessibilityRole=\"link\"\n />\n </BlankState.Root>\n </View>\n )\n }\n\n return (\n <View style={styles.container}>\n <KeyboardView>\n {noMessages ? (\n <View style={styles.emptyState}>\n <ConversationStartBanner conversation={conversation} hasMessages={false} />\n </View>\n ) : (\n <MessageList\n listRef={listRef}\n conversation={conversation}\n conversationId={conversation_id}\n messages={messages}\n replyRootId={reply_root_id}\n anchorMessageId={anchor}\n hasNextPage={hasNextPage}\n onEndReached={() => fetchNextPage()}\n onScroll={trackScroll}\n onLayout={onLayout}\n onContentSizeChange={onContentSizeChange}\n onScrollEndDrag={onScrollEndDrag}\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScrollBeginDrag={anchored ? () => setHasDragged(true) : undefined}\n onStartReached={anchored && hasDragged ? loadNewerMessages : undefined}\n onStartReachedThreshold={anchored ? 0.5 : undefined}\n maintainVisibleContentPosition={\n holdListPosition ? { minIndexForVisible: 0 } : undefined\n }\n />\n )}\n <JumpToBottomButton\n onPress={jumpToLatest}\n visible={behindLatest || showJumpToBottomButton}\n />\n {!noMessages && <TypingIndicator />}\n {showLeaderDisabledReplyBanner && <LeaderMessagesDisabledBanner />}\n <ConversationBottomBar\n conversation={conversation}\n canReply={canReply}\n replyRootAuthorFirstName={replyRootAuthorFirstName}\n replyRootId={reply_root_id}\n currentlyEditingMessage={currentlyEditingMessage}\n onFlaggedInMessageForm={markHandledByMessageForm}\n onBeforeSubmit={jumpToLatest}\n />\n </KeyboardView>\n </View>\n )\n}\n\ninterface ConversationBottomBarProps {\n conversation: ConversationResource\n canReply: boolean | undefined\n replyRootAuthorFirstName: string | undefined\n replyRootId: string | null | undefined\n currentlyEditingMessage: MessageResource | undefined\n onFlaggedInMessageForm?: (id: string) => void\n onBeforeSubmit?: () => void\n}\n\nfunction ConversationBottomBar({\n conversation,\n canReply,\n replyRootAuthorFirstName,\n replyRootId,\n currentlyEditingMessage,\n onFlaggedInMessageForm,\n onBeforeSubmit,\n}: ConversationBottomBarProps) {\n const messageLink = useMessageAvailableMembersAction(conversation)\n\n if (conversation.disabled)\n return (\n <ConversationDisabledBanner\n message={conversation.disabledMessage ?? null}\n messageLink={messageLink}\n />\n )\n if (!canReply) return <MemberMessagesDisabledBanner />\n return (\n <MessageForm.Root\n replyRootAuthorFirstName={replyRootAuthorFirstName}\n conversation={conversation}\n replyRootId={replyRootId}\n currentlyEditingMessage={currentlyEditingMessage}\n onFlaggedInMessageForm={onFlaggedInMessageForm}\n onBeforeSubmit={onBeforeSubmit}\n key={\n currentlyEditingMessage\n ? `edit-message-form-${currentlyEditingMessage.id}`\n : 'new-message-form'\n }\n >\n <MessageForm.AttachmentPicker />\n <MessageForm.Commands />\n <MessageForm.TextInput />\n <MessageForm.SubmitButton />\n </MessageForm.Root>\n )\n}\n\nconst isBeforeLatestMessage = (anchor?: string | null, latestMessageCreatedAt?: string) =>\n !!anchor &&\n !!latestMessageCreatedAt &&\n decodeUlidTime(anchor) < Date.parse(latestMessageCreatedAt)\n\ninterface ConversationScreenTitleProps extends HeaderTitleProps {\n conversation_id: number\n badge?: ConversationBadgeResource\n deleted?: boolean\n muted?: boolean\n}\n\nexport const ConversationScreenTitle = ({\n conversation_id,\n badge,\n children,\n style,\n deleted,\n muted,\n}: ConversationScreenTitleProps) => {\n const styles = usePressableHeaderStyle()\n const navigation = useNavigation()\n const resourceType = badge?.pcoResourceType || ''\n const productName = badge?.appName\n const name = badge?.text || undefined\n\n return (\n <PlatformPressable\n testID=\"conversation-details-button\"\n accessibilityHint=\"Opens details about members and settings\"\n style={styles.container}\n onPress={() => {\n if (deleted) return\n\n navigation.navigate('ConversationDetails', { conversation_id })\n }}\n >\n <View style={styles.titleWrapper}>\n <View style={styles.titleTextContainer}>\n <HeaderTitle maxFontSizeMultiplier={1} style={style}>\n {children}\n </HeaderTitle>\n </View>\n {muted && <Icon name=\"general.bellMuted\" size={12} />}\n {!deleted && <Icon name=\"general.downChevron\" size={12} />}\n </View>\n <Badge\n variant=\"metaSubtle\"\n productLogoName={productName}\n label={resourceType}\n metaLabel={name}\n style={styles.badge}\n maxFontSizeMultiplier={1}\n />\n </PlatformPressable>\n )\n}\n\nconst usePressableHeaderStyle = () => {\n const { width } = useWindowDimensions()\n const slotReserve = useHeaderSlotReserve()\n const headerContainerStyle = { maxWidth: width - slotReserve * 2 }\n\n return StyleSheet.create({\n container: {\n alignItems: Platform.select({ android: 'flex-start', default: 'center' }),\n flex: 1,\n ...headerContainerStyle,\n },\n titleWrapper: {\n alignItems: 'center',\n columnGap: 4,\n flexDirection: 'row',\n flexShrink: 1,\n },\n titleTextContainer: {\n flexShrink: 1,\n minWidth: 0,\n },\n badge: {\n alignSelf: Platform.select({ android: 'flex-start', default: 'center' }),\n marginTop: 2,\n },\n })\n}\n\nconst useStyles = () => {\n const navigationTheme = useNavigationTheme()\n const { bottom } = useSafeAreaInsets()\n\n return StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n backgroundColor: navigationTheme.colors.card,\n paddingBottom: bottom,\n },\n emptyState: {\n flex: 1,\n justifyContent: 'center',\n },\n })\n}\n\n/**\n * useEnsureConversationsRouteExists\n */\nconst useEnsureConversationsRouteExists = () => {\n const navigation = useNavigation()\n const { params } = useRoute<RouteProp<ConversationScreenProps['route']>>()\n\n useEffect(() => {\n const navigationState = navigation.getState()\n const routes = navigationState?.routes || []\n const conversationsRoute = routes.find(r => r.name === 'Conversations')\n\n if (conversationsRoute) return\n\n navigation.dispatch(state => {\n return CommonActions.reset({\n ...state,\n routes: [\n { name: 'Conversations', params: { chat_group_graph_id: params?.chat_group_graph_id } },\n ...routes,\n ],\n index: state.index + 1,\n })\n })\n }, [navigation, params?.chat_group_graph_id])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"message_actions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_actions_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAkBzF,eAAO,MAAM,2BAA2B,6EAGtC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,kDA6BxE"}
1
+ {"version":3,"file":"message_actions_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_actions_screen.tsx"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAiB,MAAM,0BAA0B,CAAA;AAmBzF,eAAO,MAAM,2BAA2B,6EAGtC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,4BAA4B,CAAC,EAAE,OAAO,CAAA;IACtC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAC,CAAA;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,kDA0BxE"}
@@ -10,6 +10,7 @@ import { useReactionStyles } from '../components/conversation/message_reaction';
10
10
  import FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet';
11
11
  import { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks';
12
12
  import { useApiClient } from '../hooks/use_api_client';
13
+ import { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup';
13
14
  import { useConversationMessages } from '../hooks/use_conversation_messages';
14
15
  import { availableFeatures, useFeatures } from '../hooks/use_features';
15
16
  import { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle';
@@ -21,7 +22,7 @@ export const MessageActionsScreenOptions = getFormSheetScreenOptions({
21
22
  headerTitle: 'Message actions'
22
23
  });
23
24
  export function MessageActionsScreen(t0) {
24
- const $ = _c(16);
25
+ const $ = _c(14);
25
26
  const {
26
27
  route
27
28
  } = t0;
@@ -53,33 +54,27 @@ export function MessageActionsScreen(t0) {
53
54
  t2 = $[2];
54
55
  }
55
56
  const {
56
- messages,
57
57
  refetch
58
58
  } = useConversationMessages(t1, t2);
59
59
  let t3;
60
- if ($[3] !== message_id || $[4] !== messages) {
61
- let t4;
62
- if ($[6] !== message_id) {
63
- t4 = m => m.id === message_id;
64
- $[6] = message_id;
65
- $[7] = t4;
66
- } else {
67
- t4 = $[7];
68
- }
69
- t3 = messages.find(t4);
70
- $[3] = message_id;
71
- $[4] = messages;
60
+ if ($[3] !== conversation_id || $[4] !== message_id) {
61
+ t3 = {
62
+ conversation_id,
63
+ message_id
64
+ };
65
+ $[3] = conversation_id;
66
+ $[4] = message_id;
72
67
  $[5] = t3;
73
68
  } else {
74
69
  t3 = $[5];
75
70
  }
76
- const message = t3;
71
+ const message = useConversationMessageLookup(t3);
77
72
  if (!message) {
78
73
  return null;
79
74
  }
80
75
  const t4 = canDeleteNonAuthoredMessages || false;
81
76
  let t5;
82
- if ($[8] !== conversation_id || $[9] !== inReplyScreen || $[10] !== isSystemMessage || $[11] !== message || $[12] !== refetch || $[13] !== reply_root_author_name || $[14] !== t4) {
77
+ if ($[6] !== conversation_id || $[7] !== inReplyScreen || $[8] !== isSystemMessage || $[9] !== message || $[10] !== refetch || $[11] !== reply_root_author_name || $[12] !== t4) {
83
78
  t5 = /*#__PURE__*/_jsx(MessageActionsScreenContent, {
84
79
  message: message,
85
80
  conversation_id: conversation_id,
@@ -89,16 +84,16 @@ export function MessageActionsScreen(t0) {
89
84
  replyRootAuthorName: reply_root_author_name,
90
85
  isSystemMessage: isSystemMessage
91
86
  });
92
- $[8] = conversation_id;
93
- $[9] = inReplyScreen;
94
- $[10] = isSystemMessage;
95
- $[11] = message;
96
- $[12] = refetch;
97
- $[13] = reply_root_author_name;
98
- $[14] = t4;
99
- $[15] = t5;
100
- } else {
101
- t5 = $[15];
87
+ $[6] = conversation_id;
88
+ $[7] = inReplyScreen;
89
+ $[8] = isSystemMessage;
90
+ $[9] = message;
91
+ $[10] = refetch;
92
+ $[11] = reply_root_author_name;
93
+ $[12] = t4;
94
+ $[13] = t5;
95
+ } else {
96
+ t5 = $[13];
102
97
  }
103
98
  return t5;
104
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message_actions_screen.js","names":["PlatformPressable","StackActions","useNavigation","useMutation","isNil","omitBy","React","useCallback","Alert","Platform","StyleSheet","View","Text","useReactionStyles","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useFontScale","useTheme","useApiClient","useConversationMessages","availableFeatures","useFeatures","useMessageReactionToggle","REACTION_EMOJIS","Clipboard","Haptic","jsx","_jsx","jsxs","_jsxs","MessageActionsScreenOptions","sheetAllowedDetents","headerTitle","MessageActionsScreen","t0","$","_c","route","conversation_id","message_id","canDeleteNonAuthoredMessages","inReplyScreen","reply_root_author_name","isSystemMessage","params","t1","t2","Symbol","for","refetchOnMount","messages","refetch","t3","t4","m","id","find","message","t5","MessageActionsScreenContent","refetchMessages","replyRootAuthorName","navigation","apiClient","styles","useStyles","featureEnabled","attachments","_temp","expandedLink","hasExpandedLink","reactionCounts","myReactions","filter","_temp2","map","_temp3","Object","entries","value","emoji","mine","includes","availableReactions","giphyTitleLink","_temp4","titleLink","attachmentForCopy","replyRootId","goBack","requestAnimationFrame","navigate","reply_root_id","handleReplyPress","text","setStringAsync","handleCopyPress","t6","impactLight","handleReportPress","t7","handleReactionToggle","isPending","t8","url","chat","delete","deleteMessage","t9","t10","notificationSuccess","t11","mutationFn","mutationKey","onSuccess","onError","_temp5","mutate","handleDeleteMessage","t12","alert","style","onPress","handleDeleteConfirm","t13","state","getState","targetRouteName","targetRoute","routes","r","name","editing_message_id","dispatch","popTo","handleEditPress","t14","params_0","handleViewReadReceiptsPress","t15","url_0","data","type","attributes","expanded_link_id","post","removeLinkPreview","t16","t17","_temp6","handleRemoveLinkPreview","t18","handleRemoveLinkPreviewConfirm","t19","message_reporting","showReportMessageAction","t20","formSheetContent","t21","reactionList","t22","reaction_1","index","Reaction","reaction","t23","children","t24","actions","Action","title","iconName","accessibilityHint","accessibilityRole","appearance","t25","Root","attachment_0","attachment","reaction_0","reactionStyles","colors","baseRippleColor","interaction","fillColorNeutral060","color","androidRippleColor","borderless","foreground","reactionEmoji","allowFontScaling","android_ripple","maxFontSizeMultiplier","fontScale","baseSize","Math","max","borderColorDefaultBase","reactionBtnSize","select","ios","android","create","paddingTop","flexDirection","justifyContent","alignItems","gap","paddingBottom","borderBottomColor","borderBottomWidth","height","width","borderWidth","borderRadius","overflow","fontSize","textAlign"],"sources":["../../src/screens/message_actions_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport { useMutation } from '@tanstack/react-query'\nimport { isNil, omitBy } from 'lodash'\nimport React, { useCallback } from 'react'\nimport { Alert, Platform, StyleSheet, View } from 'react-native'\nimport { Text } from '../components'\nimport { useReactionStyles } from '../components/conversation/message_reaction'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks'\nimport { useApiClient } from '../hooks/use_api_client'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { availableFeatures, useFeatures } from '../hooks/use_features'\nimport { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle'\nimport { MessageResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { REACTION_EMOJIS } from '../utils'\nimport { Clipboard, Haptic } from '../utils/native_adapters'\n\nexport const MessageActionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: [0.5],\n headerTitle: 'Message actions',\n})\n\nexport type MessageActionsScreenProps = StaticScreenProps<{\n message_id: string\n reply_root_author_name?: string\n conversation_id: number\n canDeleteNonAuthoredMessages?: boolean\n inReplyScreen?: boolean\n isSystemMessage?: boolean\n}>\n\nexport function MessageActionsScreen({ route }: MessageActionsScreenProps) {\n const {\n conversation_id,\n message_id,\n canDeleteNonAuthoredMessages,\n inReplyScreen,\n reply_root_author_name,\n isSystemMessage,\n } = route.params\n\n const { messages, refetch } = useConversationMessages(\n { conversation_id },\n { refetchOnMount: false }\n )\n const message = messages.find(m => m.id === message_id)\n\n if (!message) return null\n\n return (\n <MessageActionsScreenContent\n message={message}\n conversation_id={conversation_id}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages || false}\n refetchMessages={refetch}\n inReplyScreen={inReplyScreen}\n replyRootAuthorName={reply_root_author_name}\n isSystemMessage={isSystemMessage}\n />\n )\n}\n\nfunction MessageActionsScreenContent({\n message,\n conversation_id,\n canDeleteNonAuthoredMessages,\n refetchMessages,\n inReplyScreen,\n replyRootAuthorName,\n isSystemMessage,\n}: {\n message: MessageResource\n conversation_id: number\n canDeleteNonAuthoredMessages: boolean\n refetchMessages: () => void\n inReplyScreen?: boolean\n replyRootAuthorName?: string\n isSystemMessage?: boolean\n}) {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const expandedLink = message.attachments.find(attachment => attachment.type === 'ExpandedLink')\n const hasExpandedLink = !!expandedLink\n\n const myReactions = message?.reactionCounts\n .filter(reaction => reaction.mine)\n .map(reaction => reaction.value)\n\n const availableReactions = Object.entries(REACTION_EMOJIS).map(([value, emoji]) => {\n return {\n value: value as ReactionCountResource['value'],\n emoji,\n mine: myReactions?.includes(value as ReactionCountResource['value']),\n }\n })\n\n const attachmentForCopy = (): string => {\n const giphyTitleLink = message?.attachments.find(\n attachment => attachment.type === 'giphy'\n )?.titleLink\n\n if (giphyTitleLink) return giphyTitleLink\n return ''\n }\n\n const handleReplyPress = useCallback(() => {\n navigation.goBack()\n // Waits for the modal to be dismissed before pushing the reply screen\n requestAnimationFrame(() => {\n navigation.navigate('ConversationReply', {\n conversation_id,\n reply_root_id: message.replyRootId || message.id,\n reply_root_author_name: replyRootAuthorName,\n })\n })\n }, [navigation, conversation_id, message.id, message.replyRootId, replyRootAuthorName])\n\n const handleCopyPress = () => {\n Clipboard.setStringAsync(message?.text || attachmentForCopy() || '')\n navigation.goBack()\n }\n\n const handleReportPress = useCallback(() => {\n Haptic.impactLight()\n navigation.navigate('MessageReport', {\n conversation_id,\n message_id: message.id,\n })\n }, [navigation, conversation_id, message.id])\n\n const { handleReactionToggle, isPending } = useMessageReactionToggle({\n conversation_id,\n message,\n })\n\n const deleteMessage = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/`\n\n return apiClient.chat.delete({ url })\n }, [apiClient, conversation_id, message.id])\n\n const { mutate: handleDeleteMessage } = useMutation({\n mutationFn: deleteMessage,\n mutationKey: ['deleteMessage', message.id],\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to delete this message. Please try again.')\n },\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert('Delete message', 'Are you sure you want to permanently delete this message?', [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteMessage()\n navigation.goBack()\n },\n },\n ])\n }, [handleDeleteMessage, navigation])\n\n const handleEditPress = useCallback(() => {\n const state = navigation.getState?.()\n const targetRouteName = inReplyScreen ? 'ConversationReply' : 'Conversation'\n const targetRoute = state?.routes?.find(r => r.name === targetRouteName)\n const params = omitBy(\n {\n ...(targetRoute?.params || {}),\n conversation_id,\n editing_message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo(targetRouteName, params))\n }, [navigation, conversation_id, message.id, inReplyScreen])\n\n const handleViewReadReceiptsPress = useCallback(() => {\n Haptic.impactLight()\n const params = omitBy(\n {\n conversation_id,\n message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo('MessageReadReceipts', params))\n }, [navigation, conversation_id, message.id])\n\n const removeLinkPreview = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/remove_expanded_link`\n const data = {\n data: { type: 'ExpandedLink', attributes: { expanded_link_id: expandedLink?.id } },\n }\n\n return apiClient.chat.post({ url, data })\n }, [apiClient, conversation_id, message.id, expandedLink])\n\n const { mutate: handleRemoveLinkPreview } = useMutation({\n mutationFn: removeLinkPreview,\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n navigation.goBack()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to remove the preview. Please try again.')\n },\n })\n\n const handleRemoveLinkPreviewConfirm = useCallback(() => {\n Alert.alert('Remove link preview?', 'This will remove the image preview but retain the link', [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Remove', style: 'destructive', onPress: () => handleRemoveLinkPreview() },\n ])\n }, [handleRemoveLinkPreview])\n\n const showReportMessageAction =\n !message?.mine && featureEnabled(availableFeatures.message_reporting)\n\n return (\n <FormSheet.Root style={styles.formSheetContent}>\n <View style={styles.reactionList}>\n {availableReactions.map((reaction, index) => (\n <Reaction\n key={index}\n reaction={reaction}\n onPress={() => {\n Haptic.impactLight()\n handleReactionToggle({\n value: reaction.value,\n mine: reaction.mine,\n })\n navigation.goBack()\n }}\n />\n ))}\n </View>\n {!isSystemMessage && (\n <View style={styles.actions}>\n {!inReplyScreen && (\n <FormSheet.Action\n onPress={handleReplyPress}\n title=\"Reply to message\"\n iconName=\"registrations.undo\"\n accessibilityHint=\"Navigates to the reply screen\"\n accessibilityRole=\"link\"\n />\n )}\n <FormSheet.Action\n onPress={handleCopyPress}\n title=\"Copy text\"\n iconName=\"services.fileCopy\"\n accessibilityHint=\"Copies text and links to clipboard\"\n />\n {showReportMessageAction && (\n <FormSheet.Action\n onPress={handleReportPress}\n title=\"Report message\"\n iconName=\"chat.reportMessageO\"\n accessibilityHint=\"Opens a form to report this message\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleEditPress()}\n title=\"Edit message\"\n iconName=\"accounts.editor\"\n accessibilityHint=\"Opens existing text in the message form input.\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleViewReadReceiptsPress()}\n title=\"View read receipts\"\n iconName=\"general.checkPerson\"\n accessibilityHint=\"Opens a modal with a list of people who read your message.\"\n />\n )}\n {message?.mine && hasExpandedLink && (\n <FormSheet.Action\n onPress={() => handleRemoveLinkPreviewConfirm()}\n title=\"Remove link preview\"\n iconName=\"general.brokenLink\"\n accessibilityHint=\"Removes an expanded link preview from the message.\"\n />\n )}\n {(message?.mine || canDeleteNonAuthoredMessages) && (\n <FormSheet.Action\n onPress={() => handleDeleteConfirm()}\n title=\"Delete message\"\n iconName=\"publishing.trash\"\n appearance=\"danger\"\n disabled={isPending}\n accessibilityHint=\"Opens a confirmation alert to delete this message permanently.\"\n />\n )}\n </View>\n )}\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n onPress,\n}: {\n reaction: { value: ReactionCountResource['value']; emoji: string; mine: boolean | undefined }\n onPress: () => void\n}) => {\n const styles = useStyles()\n const reactionStyles = useReactionStyles({ mine: reaction.mine ? 1 : 0 })\n\n const { colors } = useTheme()\n const baseRippleColor = reaction.mine ? colors.interaction : colors.fillColorNeutral060\n const androidRippleColor = useCreateAndroidRippleColor({ color: baseRippleColor })\n\n return (\n <PlatformPressable\n key={reaction.value}\n style={[reactionStyles.reaction, styles.reaction]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n onPress={onPress}\n >\n <Text style={styles.reactionEmoji} allowFontScaling={false}>\n {REACTION_EMOJIS[reaction.value]}\n </Text>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n const btnBorderWidth = 1\n const baseSize = 46 * Math.max(1, fontScale)\n const reactionBtnSize = Platform.select({\n ios: baseSize,\n android: baseSize + btnBorderWidth * 2,\n })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n reactionList: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n gap: 16,\n paddingTop: 8,\n paddingBottom: 16,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n reaction: {\n height: reactionBtnSize,\n width: reactionBtnSize,\n borderWidth: btnBorderWidth,\n borderRadius: 32,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n reactionEmoji: {\n fontSize: 24,\n textAlign: 'center',\n },\n actions: {\n paddingTop: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"message_actions_screen.js","names":["PlatformPressable","StackActions","useNavigation","useMutation","isNil","omitBy","React","useCallback","Alert","Platform","StyleSheet","View","Text","useReactionStyles","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useFontScale","useTheme","useApiClient","useConversationMessageLookup","useConversationMessages","availableFeatures","useFeatures","useMessageReactionToggle","REACTION_EMOJIS","Clipboard","Haptic","jsx","_jsx","jsxs","_jsxs","MessageActionsScreenOptions","sheetAllowedDetents","headerTitle","MessageActionsScreen","t0","$","_c","route","conversation_id","message_id","canDeleteNonAuthoredMessages","inReplyScreen","reply_root_author_name","isSystemMessage","params","t1","t2","Symbol","for","refetchOnMount","refetch","t3","message","t4","t5","MessageActionsScreenContent","refetchMessages","replyRootAuthorName","navigation","apiClient","styles","useStyles","featureEnabled","attachments","find","_temp","expandedLink","hasExpandedLink","reactionCounts","myReactions","filter","_temp2","map","_temp3","Object","entries","value","emoji","mine","includes","availableReactions","giphyTitleLink","_temp4","titleLink","attachmentForCopy","id","replyRootId","goBack","requestAnimationFrame","navigate","reply_root_id","handleReplyPress","text","setStringAsync","handleCopyPress","t6","impactLight","handleReportPress","t7","handleReactionToggle","isPending","t8","url","chat","delete","deleteMessage","t9","t10","notificationSuccess","t11","mutationFn","mutationKey","onSuccess","onError","_temp5","mutate","handleDeleteMessage","t12","alert","style","onPress","handleDeleteConfirm","t13","state","getState","targetRouteName","targetRoute","routes","r","name","editing_message_id","dispatch","popTo","handleEditPress","t14","params_0","handleViewReadReceiptsPress","t15","url_0","data","type","attributes","expanded_link_id","post","removeLinkPreview","t16","t17","_temp6","handleRemoveLinkPreview","t18","handleRemoveLinkPreviewConfirm","t19","message_reporting","showReportMessageAction","t20","formSheetContent","t21","reactionList","t22","reaction_1","index","Reaction","reaction","t23","children","t24","actions","Action","title","iconName","accessibilityHint","accessibilityRole","appearance","t25","Root","attachment_0","attachment","reaction_0","reactionStyles","colors","baseRippleColor","interaction","fillColorNeutral060","color","androidRippleColor","borderless","foreground","reactionEmoji","allowFontScaling","android_ripple","maxFontSizeMultiplier","fontScale","baseSize","Math","max","borderColorDefaultBase","reactionBtnSize","select","ios","android","create","paddingTop","flexDirection","justifyContent","alignItems","gap","paddingBottom","borderBottomColor","borderBottomWidth","height","width","borderWidth","borderRadius","overflow","fontSize","textAlign"],"sources":["../../src/screens/message_actions_screen.tsx"],"sourcesContent":["import { PlatformPressable } from '@react-navigation/elements'\nimport { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport { useMutation } from '@tanstack/react-query'\nimport { isNil, omitBy } from 'lodash'\nimport React, { useCallback } from 'react'\nimport { Alert, Platform, StyleSheet, View } from 'react-native'\nimport { Text } from '../components'\nimport { useReactionStyles } from '../components/conversation/message_reaction'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useFontScale, useTheme } from '../hooks'\nimport { useApiClient } from '../hooks/use_api_client'\nimport { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup'\nimport { useConversationMessages } from '../hooks/use_conversation_messages'\nimport { availableFeatures, useFeatures } from '../hooks/use_features'\nimport { useMessageReactionToggle } from '../hooks/use_message_reaction_toggle'\nimport { MessageResource } from '../types'\nimport { ReactionCountResource } from '../types/resources/reaction'\nimport { REACTION_EMOJIS } from '../utils'\nimport { Clipboard, Haptic } from '../utils/native_adapters'\n\nexport const MessageActionsScreenOptions = getFormSheetScreenOptions({\n sheetAllowedDetents: [0.5],\n headerTitle: 'Message actions',\n})\n\nexport type MessageActionsScreenProps = StaticScreenProps<{\n message_id: string\n reply_root_author_name?: string\n conversation_id: number\n canDeleteNonAuthoredMessages?: boolean\n inReplyScreen?: boolean\n isSystemMessage?: boolean\n}>\n\nexport function MessageActionsScreen({ route }: MessageActionsScreenProps) {\n const {\n conversation_id,\n message_id,\n canDeleteNonAuthoredMessages,\n inReplyScreen,\n reply_root_author_name,\n isSystemMessage,\n } = route.params\n\n const { refetch } = useConversationMessages({ conversation_id }, { refetchOnMount: false })\n const message = useConversationMessageLookup({ conversation_id, message_id })\n\n if (!message) return null\n\n return (\n <MessageActionsScreenContent\n message={message}\n conversation_id={conversation_id}\n canDeleteNonAuthoredMessages={canDeleteNonAuthoredMessages || false}\n refetchMessages={refetch}\n inReplyScreen={inReplyScreen}\n replyRootAuthorName={reply_root_author_name}\n isSystemMessage={isSystemMessage}\n />\n )\n}\n\nfunction MessageActionsScreenContent({\n message,\n conversation_id,\n canDeleteNonAuthoredMessages,\n refetchMessages,\n inReplyScreen,\n replyRootAuthorName,\n isSystemMessage,\n}: {\n message: MessageResource\n conversation_id: number\n canDeleteNonAuthoredMessages: boolean\n refetchMessages: () => void\n inReplyScreen?: boolean\n replyRootAuthorName?: string\n isSystemMessage?: boolean\n}) {\n const navigation = useNavigation()\n const apiClient = useApiClient()\n const styles = useStyles()\n const { featureEnabled } = useFeatures()\n const expandedLink = message.attachments.find(attachment => attachment.type === 'ExpandedLink')\n const hasExpandedLink = !!expandedLink\n\n const myReactions = message?.reactionCounts\n .filter(reaction => reaction.mine)\n .map(reaction => reaction.value)\n\n const availableReactions = Object.entries(REACTION_EMOJIS).map(([value, emoji]) => {\n return {\n value: value as ReactionCountResource['value'],\n emoji,\n mine: myReactions?.includes(value as ReactionCountResource['value']),\n }\n })\n\n const attachmentForCopy = (): string => {\n const giphyTitleLink = message?.attachments.find(\n attachment => attachment.type === 'giphy'\n )?.titleLink\n\n if (giphyTitleLink) return giphyTitleLink\n return ''\n }\n\n const handleReplyPress = useCallback(() => {\n navigation.goBack()\n // Waits for the modal to be dismissed before pushing the reply screen\n requestAnimationFrame(() => {\n navigation.navigate('ConversationReply', {\n conversation_id,\n reply_root_id: message.replyRootId || message.id,\n reply_root_author_name: replyRootAuthorName,\n })\n })\n }, [navigation, conversation_id, message.id, message.replyRootId, replyRootAuthorName])\n\n const handleCopyPress = () => {\n Clipboard.setStringAsync(message?.text || attachmentForCopy() || '')\n navigation.goBack()\n }\n\n const handleReportPress = useCallback(() => {\n Haptic.impactLight()\n navigation.navigate('MessageReport', {\n conversation_id,\n message_id: message.id,\n })\n }, [navigation, conversation_id, message.id])\n\n const { handleReactionToggle, isPending } = useMessageReactionToggle({\n conversation_id,\n message,\n })\n\n const deleteMessage = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/`\n\n return apiClient.chat.delete({ url })\n }, [apiClient, conversation_id, message.id])\n\n const { mutate: handleDeleteMessage } = useMutation({\n mutationFn: deleteMessage,\n mutationKey: ['deleteMessage', message.id],\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to delete this message. Please try again.')\n },\n })\n\n const handleDeleteConfirm = useCallback(() => {\n Alert.alert('Delete message', 'Are you sure you want to permanently delete this message?', [\n { text: 'Cancel', style: 'cancel' },\n {\n text: 'Delete',\n style: 'destructive',\n onPress: () => {\n handleDeleteMessage()\n navigation.goBack()\n },\n },\n ])\n }, [handleDeleteMessage, navigation])\n\n const handleEditPress = useCallback(() => {\n const state = navigation.getState?.()\n const targetRouteName = inReplyScreen ? 'ConversationReply' : 'Conversation'\n const targetRoute = state?.routes?.find(r => r.name === targetRouteName)\n const params = omitBy(\n {\n ...(targetRoute?.params || {}),\n conversation_id,\n editing_message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo(targetRouteName, params))\n }, [navigation, conversation_id, message.id, inReplyScreen])\n\n const handleViewReadReceiptsPress = useCallback(() => {\n Haptic.impactLight()\n const params = omitBy(\n {\n conversation_id,\n message_id: message.id,\n },\n isNil\n )\n navigation.dispatch(StackActions.popTo('MessageReadReceipts', params))\n }, [navigation, conversation_id, message.id])\n\n const removeLinkPreview = useCallback(() => {\n const url = `/me/conversations/${conversation_id}/messages/${message.id}/remove_expanded_link`\n const data = {\n data: { type: 'ExpandedLink', attributes: { expanded_link_id: expandedLink?.id } },\n }\n\n return apiClient.chat.post({ url, data })\n }, [apiClient, conversation_id, message.id, expandedLink])\n\n const { mutate: handleRemoveLinkPreview } = useMutation({\n mutationFn: removeLinkPreview,\n onSuccess: () => {\n refetchMessages()\n Haptic.notificationSuccess()\n navigation.goBack()\n },\n onError: () => {\n Alert.alert('Oops', 'We were unable to remove the preview. Please try again.')\n },\n })\n\n const handleRemoveLinkPreviewConfirm = useCallback(() => {\n Alert.alert('Remove link preview?', 'This will remove the image preview but retain the link', [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Remove', style: 'destructive', onPress: () => handleRemoveLinkPreview() },\n ])\n }, [handleRemoveLinkPreview])\n\n const showReportMessageAction =\n !message?.mine && featureEnabled(availableFeatures.message_reporting)\n\n return (\n <FormSheet.Root style={styles.formSheetContent}>\n <View style={styles.reactionList}>\n {availableReactions.map((reaction, index) => (\n <Reaction\n key={index}\n reaction={reaction}\n onPress={() => {\n Haptic.impactLight()\n handleReactionToggle({\n value: reaction.value,\n mine: reaction.mine,\n })\n navigation.goBack()\n }}\n />\n ))}\n </View>\n {!isSystemMessage && (\n <View style={styles.actions}>\n {!inReplyScreen && (\n <FormSheet.Action\n onPress={handleReplyPress}\n title=\"Reply to message\"\n iconName=\"registrations.undo\"\n accessibilityHint=\"Navigates to the reply screen\"\n accessibilityRole=\"link\"\n />\n )}\n <FormSheet.Action\n onPress={handleCopyPress}\n title=\"Copy text\"\n iconName=\"services.fileCopy\"\n accessibilityHint=\"Copies text and links to clipboard\"\n />\n {showReportMessageAction && (\n <FormSheet.Action\n onPress={handleReportPress}\n title=\"Report message\"\n iconName=\"chat.reportMessageO\"\n accessibilityHint=\"Opens a form to report this message\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleEditPress()}\n title=\"Edit message\"\n iconName=\"accounts.editor\"\n accessibilityHint=\"Opens existing text in the message form input.\"\n />\n )}\n {message?.mine && (\n <FormSheet.Action\n onPress={() => handleViewReadReceiptsPress()}\n title=\"View read receipts\"\n iconName=\"general.checkPerson\"\n accessibilityHint=\"Opens a modal with a list of people who read your message.\"\n />\n )}\n {message?.mine && hasExpandedLink && (\n <FormSheet.Action\n onPress={() => handleRemoveLinkPreviewConfirm()}\n title=\"Remove link preview\"\n iconName=\"general.brokenLink\"\n accessibilityHint=\"Removes an expanded link preview from the message.\"\n />\n )}\n {(message?.mine || canDeleteNonAuthoredMessages) && (\n <FormSheet.Action\n onPress={() => handleDeleteConfirm()}\n title=\"Delete message\"\n iconName=\"publishing.trash\"\n appearance=\"danger\"\n disabled={isPending}\n accessibilityHint=\"Opens a confirmation alert to delete this message permanently.\"\n />\n )}\n </View>\n )}\n </FormSheet.Root>\n )\n}\n\nconst Reaction = ({\n reaction,\n onPress,\n}: {\n reaction: { value: ReactionCountResource['value']; emoji: string; mine: boolean | undefined }\n onPress: () => void\n}) => {\n const styles = useStyles()\n const reactionStyles = useReactionStyles({ mine: reaction.mine ? 1 : 0 })\n\n const { colors } = useTheme()\n const baseRippleColor = reaction.mine ? colors.interaction : colors.fillColorNeutral060\n const androidRippleColor = useCreateAndroidRippleColor({ color: baseRippleColor })\n\n return (\n <PlatformPressable\n key={reaction.value}\n style={[reactionStyles.reaction, styles.reaction]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n onPress={onPress}\n >\n <Text style={styles.reactionEmoji} allowFontScaling={false}>\n {REACTION_EMOJIS[reaction.value]}\n </Text>\n </PlatformPressable>\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier: 1.3 })\n\n const btnBorderWidth = 1\n const baseSize = 46 * Math.max(1, fontScale)\n const reactionBtnSize = Platform.select({\n ios: baseSize,\n android: baseSize + btnBorderWidth * 2,\n })\n\n return StyleSheet.create({\n formSheetContent: {\n paddingTop: 16,\n },\n reactionList: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n gap: 16,\n paddingTop: 8,\n paddingBottom: 16,\n borderBottomColor: colors.borderColorDefaultBase,\n borderBottomWidth: 1,\n },\n reaction: {\n height: reactionBtnSize,\n width: reactionBtnSize,\n borderWidth: btnBorderWidth,\n borderRadius: 32,\n justifyContent: 'center',\n overflow: 'hidden',\n },\n reactionEmoji: {\n fontSize: 24,\n textAlign: 'center',\n },\n actions: {\n paddingTop: 4,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"message_report_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_report_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,MAAM,0BAA0B,CAAA;AACzF,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,gCAAgC,CAAA;AAsBvC,eAAO,MAAM,0BAA0B,GAAI,wBAGxC,sBAAsB,CAAC,GAAG,CAAC,KAAG,4BAchC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,kDAStE"}
1
+ {"version":3,"file":"message_report_screen.d.ts","sourceRoot":"","sources":["../../src/screens/message_report_screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,MAAM,0BAA0B,CAAA;AACzF,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACvB,MAAM,gCAAgC,CAAA;AAsBvC,eAAO,MAAM,0BAA0B,GAAI,wBAGxC,sBAAsB,CAAC,GAAG,CAAC,KAAG,4BAchC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;IACvD,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAC,CAAA;AAEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,kDAQtE"}
@@ -7,7 +7,7 @@ import { Spinner, Text, KeyboardScrollView } from '../components';
7
7
  import { composeOptions, useHeaderRight, withLeftClose } from '../components/display/platform_modal_header_buttons';
8
8
  import BlankState from '../components/primitive/blank_state_primitive';
9
9
  import { useTheme } from '../hooks';
10
- import { useConversationMessages } from '../hooks/use_conversation_messages';
10
+ import { useConversationMessageLookup } from '../hooks/use_conversation_message_lookup';
11
11
  import { useReportMessage } from '../hooks/use_report_message';
12
12
  import { platformFontWeightBold } from '../utils';
13
13
  import { MessagePreview } from './message_report/components/message_preview';
@@ -31,7 +31,7 @@ export const MessageReportScreenOptions = ({
31
31
  }));
32
32
  };
33
33
  export function MessageReportScreen(t0) {
34
- const $ = _c(11);
34
+ const $ = _c(6);
35
35
  const {
36
36
  route
37
37
  } = t0;
@@ -40,61 +40,34 @@ export function MessageReportScreen(t0) {
40
40
  message_id
41
41
  } = route.params;
42
42
  let t1;
43
- if ($[0] !== conversation_id) {
43
+ if ($[0] !== conversation_id || $[1] !== message_id) {
44
44
  t1 = {
45
- conversation_id
45
+ conversation_id,
46
+ message_id
46
47
  };
47
48
  $[0] = conversation_id;
48
- $[1] = t1;
49
+ $[1] = message_id;
50
+ $[2] = t1;
49
51
  } else {
50
- t1 = $[1];
52
+ t1 = $[2];
51
53
  }
52
- let t2;
53
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
54
- t2 = {
55
- refetchOnMount: false
56
- };
57
- $[2] = t2;
58
- } else {
59
- t2 = $[2];
60
- }
61
- const {
62
- messages
63
- } = useConversationMessages(t1, t2);
64
- let t3;
65
- if ($[3] !== message_id || $[4] !== messages) {
66
- let t4;
67
- if ($[6] !== message_id) {
68
- t4 = m => m.id === message_id;
69
- $[6] = message_id;
70
- $[7] = t4;
71
- } else {
72
- t4 = $[7];
73
- }
74
- t3 = messages.find(t4);
75
- $[3] = message_id;
76
- $[4] = messages;
77
- $[5] = t3;
78
- } else {
79
- t3 = $[5];
80
- }
81
- const message = t3;
54
+ const message = useConversationMessageLookup(t1);
82
55
  if (!message) {
83
56
  return null;
84
57
  }
85
- let t4;
86
- if ($[8] !== conversation_id || $[9] !== message) {
87
- t4 = /*#__PURE__*/_jsx(MessageReportScreenContent, {
58
+ let t2;
59
+ if ($[3] !== conversation_id || $[4] !== message) {
60
+ t2 = /*#__PURE__*/_jsx(MessageReportScreenContent, {
88
61
  message: message,
89
62
  conversation_id: conversation_id
90
63
  });
91
- $[8] = conversation_id;
92
- $[9] = message;
93
- $[10] = t4;
64
+ $[3] = conversation_id;
65
+ $[4] = message;
66
+ $[5] = t2;
94
67
  } else {
95
- t4 = $[10];
68
+ t2 = $[5];
96
69
  }
97
- return t4;
70
+ return t2;
98
71
  }
99
72
  function MessageReportScreenContent(t0) {
100
73
  const $ = _c(76);