@droppii-org/chat-mobile 0.2.106 → 0.2.108

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 (187) hide show
  1. package/lib/module/components/ThreadCard/ThreadCard.js +2 -0
  2. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  3. package/lib/module/components/messages/ExpandableMessageText.js +112 -0
  4. package/lib/module/components/messages/ExpandableMessageText.js.map +1 -0
  5. package/lib/module/components/messages/PreviewScrollableText.js +80 -0
  6. package/lib/module/components/messages/PreviewScrollableText.js.map +1 -0
  7. package/lib/module/components/messages/fileMessage/index.js +9 -2
  8. package/lib/module/components/messages/fileMessage/index.js.map +1 -1
  9. package/lib/module/components/messages/linkMessage/index.js +21 -12
  10. package/lib/module/components/messages/linkMessage/index.js.map +1 -1
  11. package/lib/module/components/messages/quotedMessage/index.js +18 -3
  12. package/lib/module/components/messages/quotedMessage/index.js.map +1 -1
  13. package/lib/module/components/messages/textMessage/index.js +7 -1
  14. package/lib/module/components/messages/textMessage/index.js.map +1 -1
  15. package/lib/module/components/messages/types.js.map +1 -1
  16. package/lib/module/context/TimelinePressGuardContext.js +14 -0
  17. package/lib/module/context/TimelinePressGuardContext.js.map +1 -0
  18. package/lib/module/hooks/useConversationList.js +4 -0
  19. package/lib/module/hooks/useConversationList.js.map +1 -1
  20. package/lib/module/hooks/useDismissKeyboardFirst.js +19 -0
  21. package/lib/module/hooks/useDismissKeyboardFirst.js.map +1 -0
  22. package/lib/module/hooks/useExpandableText.js +125 -0
  23. package/lib/module/hooks/useExpandableText.js.map +1 -0
  24. package/lib/module/hooks/useGuardedPress.js +19 -0
  25. package/lib/module/hooks/useGuardedPress.js.map +1 -0
  26. package/lib/module/screens/chat-detail/ChatComposer.js +89 -498
  27. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  28. package/lib/module/screens/chat-detail/ChatDetail.js +49 -20
  29. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  30. package/lib/module/screens/chat-detail/ChatListLegend.js +113 -76
  31. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  32. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js +7 -0
  33. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js.map +1 -1
  34. package/lib/module/screens/chat-detail/components/ChatComposerAccessorySlot.js +47 -0
  35. package/lib/module/screens/chat-detail/components/ChatComposerAccessorySlot.js.map +1 -0
  36. package/lib/module/screens/chat-detail/components/ChatComposerInputArea.js +149 -0
  37. package/lib/module/screens/chat-detail/components/ChatComposerInputArea.js.map +1 -0
  38. package/lib/module/screens/chat-detail/components/ChatComposerStatusBanner.js +104 -0
  39. package/lib/module/screens/chat-detail/components/ChatComposerStatusBanner.js.map +1 -0
  40. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +0 -17
  41. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -1
  42. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +16 -2
  43. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -1
  44. package/lib/module/screens/chat-detail/hooks/useComposerBotMenu.js +122 -0
  45. package/lib/module/screens/chat-detail/hooks/useComposerBotMenu.js.map +1 -0
  46. package/lib/module/screens/chat-detail/hooks/useComposerPanelActions.js +46 -0
  47. package/lib/module/screens/chat-detail/hooks/useComposerPanelActions.js.map +1 -0
  48. package/lib/module/screens/chat-detail/hooks/useComposerPanelDismiss.js +75 -0
  49. package/lib/module/screens/chat-detail/hooks/useComposerPanelDismiss.js.map +1 -0
  50. package/lib/module/screens/chat-detail/hooks/useComposerPanels.js +136 -0
  51. package/lib/module/screens/chat-detail/hooks/useComposerPanels.js.map +1 -0
  52. package/lib/module/screens/chat-detail/hooks/useComposerSend.js +74 -0
  53. package/lib/module/screens/chat-detail/hooks/useComposerSend.js.map +1 -0
  54. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +12 -3
  55. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  56. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +11 -2
  57. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -1
  58. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js +79 -6
  59. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js.map +1 -1
  60. package/lib/module/screens/chat-detail/messageToolbox/useClonePreview.js +30 -0
  61. package/lib/module/screens/chat-detail/messageToolbox/useClonePreview.js.map +1 -0
  62. package/lib/module/screens/chat-detail/types.js +5 -0
  63. package/lib/module/screens/chat-detail/types.js.map +1 -1
  64. package/lib/module/store/expandedMessage.js +28 -0
  65. package/lib/module/store/expandedMessage.js.map +1 -0
  66. package/lib/module/store/message.js +14 -0
  67. package/lib/module/store/message.js.map +1 -1
  68. package/lib/module/utils/composerPanelDismissGesture.js +52 -0
  69. package/lib/module/utils/composerPanelDismissGesture.js.map +1 -0
  70. package/lib/module/utils/expandableText.js +41 -0
  71. package/lib/module/utils/expandableText.js.map +1 -0
  72. package/lib/module/utils/inlineTruncation.js +51 -0
  73. package/lib/module/utils/inlineTruncation.js.map +1 -0
  74. package/lib/module/utils/perf-marker.js +44 -0
  75. package/lib/module/utils/perf-marker.js.map +1 -0
  76. package/lib/module/utils/truncateTextChildren.js +38 -0
  77. package/lib/module/utils/truncateTextChildren.js.map +1 -0
  78. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  79. package/lib/typescript/src/components/messages/ExpandableMessageText.d.ts +25 -0
  80. package/lib/typescript/src/components/messages/ExpandableMessageText.d.ts.map +1 -0
  81. package/lib/typescript/src/components/messages/PreviewScrollableText.d.ts +29 -0
  82. package/lib/typescript/src/components/messages/PreviewScrollableText.d.ts.map +1 -0
  83. package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
  84. package/lib/typescript/src/components/messages/linkMessage/index.d.ts +1 -1
  85. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
  86. package/lib/typescript/src/components/messages/quotedMessage/index.d.ts.map +1 -1
  87. package/lib/typescript/src/components/messages/textMessage/index.d.ts +1 -1
  88. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/messages/types.d.ts +18 -0
  90. package/lib/typescript/src/components/messages/types.d.ts.map +1 -1
  91. package/lib/typescript/src/context/TimelinePressGuardContext.d.ts +3 -0
  92. package/lib/typescript/src/context/TimelinePressGuardContext.d.ts.map +1 -0
  93. package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
  94. package/lib/typescript/src/hooks/useDismissKeyboardFirst.d.ts +8 -0
  95. package/lib/typescript/src/hooks/useDismissKeyboardFirst.d.ts.map +1 -0
  96. package/lib/typescript/src/hooks/useExpandableText.d.ts +13 -0
  97. package/lib/typescript/src/hooks/useExpandableText.d.ts.map +1 -0
  98. package/lib/typescript/src/hooks/useGuardedPress.d.ts +9 -0
  99. package/lib/typescript/src/hooks/useGuardedPress.d.ts.map +1 -0
  100. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +7 -3
  101. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  102. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  103. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +5 -1
  104. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  105. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts.map +1 -1
  106. package/lib/typescript/src/screens/chat-detail/components/ChatComposerAccessorySlot.d.ts +12 -0
  107. package/lib/typescript/src/screens/chat-detail/components/ChatComposerAccessorySlot.d.ts.map +1 -0
  108. package/lib/typescript/src/screens/chat-detail/components/ChatComposerInputArea.d.ts +30 -0
  109. package/lib/typescript/src/screens/chat-detail/components/ChatComposerInputArea.d.ts.map +1 -0
  110. package/lib/typescript/src/screens/chat-detail/components/ChatComposerStatusBanner.d.ts +19 -0
  111. package/lib/typescript/src/screens/chat-detail/components/ChatComposerStatusBanner.d.ts.map +1 -0
  112. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +0 -1
  113. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -1
  114. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +7 -0
  115. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -1
  116. package/lib/typescript/src/screens/chat-detail/hooks/useComposerBotMenu.d.ts +7 -0
  117. package/lib/typescript/src/screens/chat-detail/hooks/useComposerBotMenu.d.ts.map +1 -0
  118. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanelActions.d.ts +17 -0
  119. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanelActions.d.ts.map +1 -0
  120. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanelDismiss.d.ts +12 -0
  121. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanelDismiss.d.ts.map +1 -0
  122. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanels.d.ts +25 -0
  123. package/lib/typescript/src/screens/chat-detail/hooks/useComposerPanels.d.ts.map +1 -0
  124. package/lib/typescript/src/screens/chat-detail/hooks/useComposerSend.d.ts +16 -0
  125. package/lib/typescript/src/screens/chat-detail/hooks/useComposerSend.d.ts.map +1 -0
  126. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +11 -1
  127. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  128. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -1
  129. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts +14 -1
  130. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts.map +1 -1
  131. package/lib/typescript/src/screens/chat-detail/messageToolbox/useClonePreview.d.ts +18 -0
  132. package/lib/typescript/src/screens/chat-detail/messageToolbox/useClonePreview.d.ts.map +1 -0
  133. package/lib/typescript/src/screens/chat-detail/types.d.ts +8 -0
  134. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  135. package/lib/typescript/src/store/expandedMessage.d.ts +15 -0
  136. package/lib/typescript/src/store/expandedMessage.d.ts.map +1 -0
  137. package/lib/typescript/src/store/message.d.ts.map +1 -1
  138. package/lib/typescript/src/utils/composerPanelDismissGesture.d.ts +33 -0
  139. package/lib/typescript/src/utils/composerPanelDismissGesture.d.ts.map +1 -0
  140. package/lib/typescript/src/utils/expandableText.d.ts +18 -0
  141. package/lib/typescript/src/utils/expandableText.d.ts.map +1 -0
  142. package/lib/typescript/src/utils/inlineTruncation.d.ts +24 -0
  143. package/lib/typescript/src/utils/inlineTruncation.d.ts.map +1 -0
  144. package/lib/typescript/src/utils/perf-marker.d.ts +8 -0
  145. package/lib/typescript/src/utils/perf-marker.d.ts.map +1 -0
  146. package/lib/typescript/src/utils/truncateTextChildren.d.ts +3 -0
  147. package/lib/typescript/src/utils/truncateTextChildren.d.ts.map +1 -0
  148. package/package.json +2 -1
  149. package/src/components/ThreadCard/ThreadCard.tsx +2 -0
  150. package/src/components/messages/ExpandableMessageText.tsx +145 -0
  151. package/src/components/messages/PreviewScrollableText.tsx +98 -0
  152. package/src/components/messages/fileMessage/index.tsx +17 -3
  153. package/src/components/messages/linkMessage/index.tsx +30 -21
  154. package/src/components/messages/quotedMessage/index.tsx +19 -3
  155. package/src/components/messages/textMessage/index.tsx +11 -2
  156. package/src/components/messages/types.ts +18 -0
  157. package/src/context/TimelinePressGuardContext.tsx +15 -0
  158. package/src/hooks/useConversationList.ts +2 -0
  159. package/src/hooks/useDismissKeyboardFirst.ts +19 -0
  160. package/src/hooks/useExpandableText.ts +143 -0
  161. package/src/hooks/useGuardedPress.ts +20 -0
  162. package/src/screens/chat-detail/ChatComposer.tsx +105 -631
  163. package/src/screens/chat-detail/ChatDetail.tsx +49 -20
  164. package/src/screens/chat-detail/ChatListLegend.tsx +122 -71
  165. package/src/screens/chat-detail/PinnedMessagesSheet.tsx +8 -0
  166. package/src/screens/chat-detail/components/ChatComposerAccessorySlot.tsx +61 -0
  167. package/src/screens/chat-detail/components/ChatComposerInputArea.tsx +198 -0
  168. package/src/screens/chat-detail/components/ChatComposerStatusBanner.tsx +116 -0
  169. package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +0 -29
  170. package/src/screens/chat-detail/hooks/useChatComposerState.ts +25 -2
  171. package/src/screens/chat-detail/hooks/useComposerBotMenu.tsx +140 -0
  172. package/src/screens/chat-detail/hooks/useComposerPanelActions.ts +57 -0
  173. package/src/screens/chat-detail/hooks/useComposerPanelDismiss.ts +111 -0
  174. package/src/screens/chat-detail/hooks/useComposerPanels.ts +197 -0
  175. package/src/screens/chat-detail/hooks/useComposerSend.ts +98 -0
  176. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +24 -2
  177. package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +20 -1
  178. package/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx +111 -5
  179. package/src/screens/chat-detail/messageToolbox/useClonePreview.ts +34 -0
  180. package/src/screens/chat-detail/types.ts +9 -0
  181. package/src/store/expandedMessage.ts +42 -0
  182. package/src/store/message.ts +14 -0
  183. package/src/utils/composerPanelDismissGesture.ts +72 -0
  184. package/src/utils/expandableText.ts +51 -0
  185. package/src/utils/inlineTruncation.ts +65 -0
  186. package/src/utils/perf-marker.ts +39 -0
  187. package/src/utils/truncateTextChildren.ts +46 -0
@@ -1 +1 @@
1
- {"version":3,"names":["KContainer","KImage","KColors","KLabel","KSpacingValue","StyleSheet","memo","useCallback","useMemo","MessageType","Gesture","GestureDetector","runOnJS","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","RevokedMessage","GroupNotificationMessage","MessageStatusIndicator","messageStyles","QuotedMessage","StickerMessage","GROUP_NOTIFICATION_TYPES","Avatar","TAIL_WIDTH","jsx","_jsx","jsxs","_jsxs","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","MergeMessage","RevokeMessage","Object","fromEntries","map","type","MEDIA_TYPES","SYSTEM_MESSAGE_TYPES","TIME_REVEAL_EXCLUDED_TYPES","LegendChatMessage","message","messageId","isOutgoing","createdAtTime","onMediaPress","onPressUrl","onRetry","onPress","alwaysHandlePress","onLongPress","customMessageItemFactory","isHighlighted","isTimeRevealed","showName","showAvatar","showSenderGutter","groupPosition","handlePress","handleLongPress","customNode","includes","contentType","SystemMessageComponent","View","center","style","styles","systemMessageWrapper","children","MessageComponent","effectiveOnMediaPress","undefined","hasMediaPress","hasUrlPress","canRevealTime","shouldHandlePress","wrapper","row","alignItems","avatarGutter","size","source","senderFaceUrl","fullName","senderNickname","content","Text","typo","color","gray","normal","numberOfLines","marginB","senderName","LongPressWrapper","isPinned","pinBadge","VectorIcons","name","primary","displayName","AVATAR_SIZE","create","position","marginLeft","width","marginRight","alignSelf","marginVertical","top","right","height","borderRadius","justifyContent","backgroundColor","pageBackground","shadowColor","black","shadowOffset","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","white","zIndex","Number","MAX_SAFE_INTEGER","gesture","gestures","LongPress","onStart","Tap","filter","Boolean","length","Race"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["KContainer","KImage","KColors","KLabel","KSpacingValue","StyleSheet","memo","useCallback","useMemo","MessageType","Gesture","GestureDetector","runOnJS","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","RevokedMessage","GroupNotificationMessage","MessageStatusIndicator","messageStyles","QuotedMessage","StickerMessage","GROUP_NOTIFICATION_TYPES","Avatar","TAIL_WIDTH","perfCountRender","jsx","_jsx","jsxs","_jsxs","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","MergeMessage","RevokeMessage","Object","fromEntries","map","type","MEDIA_TYPES","SYSTEM_MESSAGE_TYPES","TIME_REVEAL_EXCLUDED_TYPES","LegendChatMessage","message","messageId","isOutgoing","createdAtTime","onMediaPress","onPressUrl","onRetry","onPress","alwaysHandlePress","onLongPress","customMessageItemFactory","isHighlighted","isTimeRevealed","showName","showAvatar","showSenderGutter","groupPosition","surface","isPreview","handlePress","handleLongPress","customNode","includes","contentType","SystemMessageComponent","View","center","style","styles","systemMessageWrapper","children","MessageComponent","effectiveOnMediaPress","undefined","hasMediaPress","hasUrlPress","canRevealTime","shouldHandlePress","wrapper","row","alignItems","avatarGutter","size","source","senderFaceUrl","fullName","senderNickname","content","Text","typo","color","gray","normal","numberOfLines","marginB","senderName","LongPressWrapper","isPinned","pinBadge","VectorIcons","name","primary","displayName","AVATAR_SIZE","create","position","marginLeft","width","marginRight","alignSelf","marginVertical","top","right","height","borderRadius","justifyContent","backgroundColor","pageBackground","shadowColor","black","shadowOffset","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","white","zIndex","Number","MAX_SAFE_INTEGER","gesture","gestures","LongPress","onStart","Tap","filter","Boolean","length","Race"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,7 +11,7 @@ import { getCopyableMessageText, getMessageToolboxItems } from "./messageToolbox
11
11
  import { MessageToolboxWrapper } from "./MessageToolboxWrapper.js";
12
12
  import { useSendMessage } from "../../../hooks/message/useSendMessage.js";
13
13
  import { useChatContext, useChatDetailContext } from "../../../context/index.js";
14
- import { GroupPermission } from '@droppii/openim-rn-client-sdk';
14
+ import { GroupPermission, MessageType } from '@droppii/openim-rn-client-sdk';
15
15
  import { useHasGroupPermission } from "../../../hooks/useGroupPermission.js";
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  // Android only: this Modal's native window is added/removed asynchronously
@@ -23,6 +23,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  // delayed spurious event is still suppressed instead of replaying a stale
24
24
  // scrollTo. See `show`/`hide` below for the observed sequence.
25
25
  const UNFREEZE_DELAY_MS = 300;
26
+ const EXPANDABLE_TYPES = [MessageType.TextMessage, MessageType.AtTextMessage, MessageType.UrlTextMessage, MessageType.QuoteMessage];
26
27
  export const MessageToolboxOverlay = /*#__PURE__*/forwardRef(({
27
28
  currentUserId = '',
28
29
  customMessageItemFactory,
@@ -149,10 +150,15 @@ export const MessageToolboxOverlay = /*#__PURE__*/forwardRef(({
149
150
  setQuotedMessage(message);
150
151
  hide();
151
152
  }, [message, hide, setQuotedMessage]);
153
+ const overlayMessageId = message?.clientMsgID || message?.serverMsgID || '';
152
154
  if (!visible || !message || !rect) {
153
155
  return null;
154
156
  }
155
157
  const isOutgoing = message.sendID === currentUserId;
158
+ // Only the types that can show `Xem thêm` get a touchable clone. File
159
+ // download and consumer custom nodes carry their own handlers and stay
160
+ // inert.
161
+ const isCloneInteractive = EXPANDABLE_TYPES.includes(message.contentType) && !customMessageItemFactory?.(message);
156
162
  const showSenderGutter = isGroupConversation && !isOutgoing;
157
163
  const showName = showSenderGutter && (groupPosition === 'first' || groupPosition === 'solo');
158
164
  const showAvatar = showSenderGutter && (groupPosition === 'last' || groupPosition === 'solo');
@@ -168,9 +174,12 @@ export const MessageToolboxOverlay = /*#__PURE__*/forwardRef(({
168
174
  }), /*#__PURE__*/_jsx(MessageToolboxWrapper, {
169
175
  rect: rect,
170
176
  isOutgoing: isOutgoing,
177
+ isCloneInteractive: isCloneInteractive,
178
+ onDismiss: hide,
171
179
  message: /*#__PURE__*/_jsx(LegendChatMessage, {
172
180
  message: message,
173
- messageId: message.clientMsgID || message.serverMsgID || '',
181
+ messageId: overlayMessageId,
182
+ isPreview: true,
174
183
  isOutgoing: isOutgoing,
175
184
  createdAtTime: message.sendTime || message.createTime,
176
185
  customMessageItemFactory: customMessageItemFactory,
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Modal","Pressable","StyleSheet","Clipboard","UIUtils","trans","LegendChatMessage","MessageToolboxMenu","getCopyableMessageText","getMessageToolboxItems","MessageToolboxWrapper","useSendMessage","useChatContext","useChatDetailContext","GroupPermission","useHasGroupPermission","jsx","_jsx","jsxs","_jsxs","UNFREEZE_DELAY_MS","MessageToolboxOverlay","currentUserId","customMessageItemFactory","onPinMessage","onUnpinMessage","freeze","ref","setQuotedMessage","conversation","isGroupConversation","generateChatDetailLink","visible","setVisible","message","setMessage","undefined","rect","setRect","groupPosition","setGroupPosition","toolboxItems","retryMessage","revokeMessage","isPinAllowed","PinMessage","unfreezeTimeoutRef","clearPendingUnfreeze","current","clearTimeout","hide","setTimeout","value","show","msg","msgRect","msgGroupPosition","toolboxNotAvailable","Object","values","filter","Boolean","length","handleCopyMessage","text","setString","toast","open","title","theme","handleCopyMessageLink","link","targetConversationId","conversationID","targetMessageId","clientMsgID","handleRetryMessage","handleRevokeMessage","error","console","handlePinMessage","handleUnpinMessage","handleQuoteMessage","isOutgoing","sendID","showSenderGutter","showName","showAvatar","transparent","statusBarTranslucent","animationType","onRequestClose","children","style","styles","backdrop","onPress","messageId","serverMsgID","createdAtTime","sendTime","createTime","toolbox","showCopyMessageLink","showPinMessage","showUnpinMessage","onCopyMessage","onCopyMessageLink","onRetryMessage","onRevokeMessage","onQuoteMessage","displayName","create","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx"],"mappings":";;AAAA,SACEA,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,mBAAmB,EACnBC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,KAAK,EAAEC,SAAS,EAAEC,UAAU,QAAQ,cAAc;AAC3D,OAAOC,SAAS,MAAM,mCAAmC;AACzD,SAASC,OAAO,QAAQ,2BAAwB;AAChD,SAASC,KAAK,QAAQ,+BAAsB;AAC5C,SAASC,iBAAiB,QAAQ,gCAA6B;AAC/D,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SACEC,sBAAsB,EACtBC,sBAAsB,QACjB,2BAAwB;AAM/B,SAASC,qBAAqB,QAAQ,4BAAyB;AAG/D,SAASC,cAAc,QAAQ,0CAAuC;AACtE,SAASC,cAAc,EAAEC,oBAAoB,QAAQ,2BAAkB;AACvE,SACEC,eAAe,QAEV,+BAA+B;AACtC,SAASC,qBAAqB,QAAQ,sCAAmC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,GAAG;AAa7B,OAAO,MAAMC,qBAAqB,gBAAG5B,UAAU,CAI7C,CACE;EACE6B,aAAa,GAAG,EAAE;EAClBC,wBAAwB;EACxBC,YAAY;EACZC,cAAc;EACdC;AACF,CAAC,EACDC,GAAG,KACA;EACH,MAAM;IAAEC,gBAAgB;IAAEC,YAAY;IAAEC;EAAoB,CAAC,GAC3DjB,oBAAoB,CAAC,CAAC;EACxB,MAAM;IAAEkB;EAAuB,CAAC,GAAGnB,cAAc,CAAC,CAAC;EACnD,MAAM,CAACoB,OAAO,EAAEC,UAAU,CAAC,GAAGlC,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACmC,OAAO,EAAEC,UAAU,CAAC,GAAGpC,QAAQ,CAA0BqC,SAAS,CAAC;EAC1E,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGvC,QAAQ,CAAsB,IAAI,CAAC;EAC3D,MAAM,CAACwC,aAAa,EAAEC,gBAAgB,CAAC,GAAGzC,QAAQ,CAEhDqC,SAAS,CAAC;EACZ,MAAMK,YAAY,GAAG5C,OAAO,CAC1B,MAAMY,sBAAsB,CAACyB,OAAO,EAAEZ,aAAa,CAAC,EACpD,CAACY,OAAO,EAAEZ,aAAa,CACzB,CAAC;EACD,MAAM;IAAEoB,YAAY;IAAEC;EAAc,CAAC,GAAGhC,cAAc,CAAC,CAAC;EACxD,MAAMiC,YAAY,GAAG7B,qBAAqB,CAACD,eAAe,CAAC+B,UAAU,CAAC;EACtE,MAAMC,kBAAkB,GAAGhD,MAAM,CAC/B,IACF,CAAC;EAED,MAAMiD,oBAAoB,GAAGrD,WAAW,CAAC,MAAM;IAC7C,IAAIoD,kBAAkB,CAACE,OAAO,EAAE;MAC9BC,YAAY,CAACH,kBAAkB,CAACE,OAAO,CAAC;MACxCF,kBAAkB,CAACE,OAAO,GAAG,IAAI;IACnC;EACF,CAAC,EAAE,EAAE,CAAC;EAENrD,SAAS,CAAC,MAAMoD,oBAAoB,EAAE,CAACA,oBAAoB,CAAC,CAAC;EAE7D,MAAMG,IAAI,GAAGxD,WAAW,CAAC,MAAM;IAC7BuC,UAAU,CAAC,KAAK,CAAC;IACjBE,UAAU,CAACC,SAAS,CAAC;IACrBE,OAAO,CAAC,IAAI,CAAC;IACbE,gBAAgB,CAACJ,SAAS,CAAC;IAC3B,IAAIV,MAAM,EAAE;MACVqB,oBAAoB,CAAC,CAAC;MACtBD,kBAAkB,CAACE,OAAO,GAAGG,UAAU,CAAC,MAAM;QAC5CzB,MAAM,CAAC0B,KAAK,GAAG,KAAK;QACpBN,kBAAkB,CAACE,OAAO,GAAG,IAAI;MACnC,CAAC,EAAE5B,iBAAiB,CAAC;IACvB;EACF,CAAC,EAAE,CAACM,MAAM,EAAEqB,oBAAoB,CAAC,CAAC;EAElC,MAAMM,IAAI,GAAG3D,WAAW,CACtB,CAAC4D,GAAG,EAAEC,OAAO,EAAEC,gBAAgB,KAAK;IAClC,MAAMC,mBAAmB,GACvBC,MAAM,CAACC,MAAM,CAAClD,sBAAsB,CAAC6C,GAAG,EAAEhC,aAAa,CAAC,CAAC,CAACsC,MAAM,CAC9DC,OACF,CAAC,CAACC,MAAM,KAAK,CAAC;IAEhB,IAAIL,mBAAmB,EAAE;IAEzB,IAAI/B,MAAM,EAAE;MACV;MACA;MACAqB,oBAAoB,CAAC,CAAC;MACtBrB,MAAM,CAAC0B,KAAK,GAAG,IAAI;IACrB;IAEAjB,UAAU,CAACmB,GAAG,CAAC;IACfhB,OAAO,CAACiB,OAAO,CAAC;IAChBf,gBAAgB,CAACgB,gBAAgB,CAAC;IAClCvB,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EACD,CAACX,aAAa,EAAEI,MAAM,EAAEqB,oBAAoB,CAC9C,CAAC;EAEDnD,mBAAmB,CAAC+B,GAAG,EAAE,OAAO;IAAE0B,IAAI;IAAEH;EAAK,CAAC,CAAC,EAAE,CAACG,IAAI,EAAEH,IAAI,CAAC,CAAC;EAE9D,MAAMa,iBAAiB,GAAGrE,WAAW,CAAC,MAAM;IAC1C,IAAI,CAACwC,OAAO,EAAE;IACd,MAAM8B,IAAI,GAAGxD,sBAAsB,CAAC0B,OAAO,CAAC;IAC5C,IAAI8B,IAAI,EAAE;MACR7D,SAAS,CAAC8D,SAAS,CAACD,IAAI,CAAC;MACzB5D,OAAO,CAAC8D,KAAK,CAACC,IAAI,CAAC;QACjBC,KAAK,EAAE/D,KAAK,CAAC,2BAA2B,CAAC;QACzCgE,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;IACAnB,IAAI,CAAC,CAAC;EACR,CAAC,EAAE,CAAChB,OAAO,EAAEgB,IAAI,CAAC,CAAC;EAEnB,MAAMoB,qBAAqB,GAAG5E,WAAW,CAAC,MAAM;IAC9C,IAAI,CAACwC,OAAO,IAAI,CAACH,sBAAsB,EAAE;IAEzC,MAAMwC,IAAI,GAAGxC,sBAAsB,CAAC;MAClCyC,oBAAoB,EAAE3C,YAAY,EAAE4C,cAAc;MAClDC,eAAe,EAAExC,OAAO,CAACyC;IAC3B,CAAC,CAAC;IACFxE,SAAS,CAAC8D,SAAS,CAACM,IAAI,CAAC;IAEzBnE,OAAO,CAAC8D,KAAK,CAACC,IAAI,CAAC;MACjBC,KAAK,EAAE/D,KAAK,CAAC,gCAAgC,CAAC;MAC9CgE,KAAK,EAAE;IACT,CAAC,CAAC;IAEFnB,IAAI,CAAC,CAAC;EACR,CAAC,EAAE,CAAChB,OAAO,EAAEgB,IAAI,EAAEnB,sBAAsB,EAAEF,YAAY,CAAC,CAAC;EAEzD,MAAM+C,kBAAkB,GAAGlF,WAAW,CAAC,MAAM;IAC3C,IAAI,CAACwC,OAAO,EAAE;IACdQ,YAAY,CAACR,OAAO,CAAC;IACrBgB,IAAI,CAAC,CAAC;EACR,CAAC,EAAE,CAAChB,OAAO,EAAEgB,IAAI,EAAER,YAAY,CAAC,CAAC;EAEjC,MAAMmC,mBAAmB,GAAGnF,WAAW,CAAC,YAAY;IAClD,IAAI,CAACwC,OAAO,EAAE;IACdgB,IAAI,CAAC,CAAC;IACN,IAAI;MACF,MAAMP,aAAa,CAACT,OAAO,CAAC;MAC5B9B,OAAO,CAAC8D,KAAK,CAACC,IAAI,CAAC;QACjBC,KAAK,EAAE/D,KAAK,CAAC,iBAAiB,CAAC;QAC/BgE,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOS,KAAU,EAAE;MACnBC,OAAO,CAACD,KAAK,CAAC,eAAe,EAAEA,KAAK,CAAC;MACrC1E,OAAO,CAAC8D,KAAK,CAACC,IAAI,CAAC;QACjBC,KAAK,EAAE/D,KAAK,CAAC,oBAAoB,CAAC;QAClCgE,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACnC,OAAO,EAAEgB,IAAI,EAAEP,aAAa,CAAC,CAAC;EAElC,MAAMqC,gBAAgB,GAAGtF,WAAW,CAAC,MAAM;IACzC,IAAI,CAACwC,OAAO,EAAE;IACdgB,IAAI,CAAC,CAAC;IACN1B,YAAY,GAAGU,OAAO,CAAC;EACzB,CAAC,EAAE,CAACA,OAAO,EAAEgB,IAAI,EAAE1B,YAAY,CAAC,CAAC;EAEjC,MAAMyD,kBAAkB,GAAGvF,WAAW,CAAC,MAAM;IAC3C,IAAI,CAACwC,OAAO,EAAE;IACdgB,IAAI,CAAC,CAAC;IACNzB,cAAc,GAAGS,OAAO,CAAC;EAC3B,CAAC,EAAE,CAACA,OAAO,EAAEgB,IAAI,EAAEzB,cAAc,CAAC,CAAC;EAEnC,MAAMyD,kBAAkB,GAAGxF,WAAW,CAAC,MAAM;IAC3C,IAAI,CAACwC,OAAO,EAAE;IACdN,gBAAgB,CAACM,OAAO,CAAC;IACzBgB,IAAI,CAAC,CAAC;EACR,CAAC,EAAE,CAAChB,OAAO,EAAEgB,IAAI,EAAEtB,gBAAgB,CAAC,CAAC;EAErC,IAAI,CAACI,OAAO,IAAI,CAACE,OAAO,IAAI,CAACG,IAAI,EAAE;IACjC,OAAO,IAAI;EACb;EAEA,MAAM8C,UAAU,GAAGjD,OAAO,CAACkD,MAAM,KAAK9D,aAAa;EACnD,MAAM+D,gBAAgB,GAAGvD,mBAAmB,IAAI,CAACqD,UAAU;EAC3D,MAAMG,QAAQ,GACZD,gBAAgB,KACf9C,aAAa,KAAK,OAAO,IAAIA,aAAa,KAAK,MAAM,CAAC;EACzD,MAAMgD,UAAU,GACdF,gBAAgB,KACf9C,aAAa,KAAK,MAAM,IAAIA,aAAa,KAAK,MAAM,CAAC;EAExD,oBACEpB,KAAA,CAACnB,KAAK;IACJgC,OAAO,EAAEA,OAAQ;IACjBwD,WAAW;IACXC,oBAAoB;IACpBC,aAAa,EAAC,MAAM;IACpBC,cAAc,EAAEzC,IAAK;IAAA0C,QAAA,gBAErB3E,IAAA,CAAChB,SAAS;MAAC4F,KAAK,EAAEC,MAAM,CAACC,QAAS;MAACC,OAAO,EAAE9C;IAAK,CAAE,CAAC,eAEpDjC,IAAA,CAACP,qBAAqB;MACpB2B,IAAI,EAAEA,IAAK;MACX8C,UAAU,EAAEA,UAAW;MACvBjD,OAAO,eACLjB,IAAA,CAACX,iBAAiB;QAChB4B,OAAO,EAAEA,OAAQ;QACjB+D,SAAS,EAAE/D,OAAO,CAACyC,WAAW,IAAIzC,OAAO,CAACgE,WAAW,IAAI,EAAG;QAC5Df,UAAU,EAAEA,UAAW;QACvBgB,aAAa,EAAEjE,OAAO,CAACkE,QAAQ,IAAIlE,OAAO,CAACmE,UAAW;QACtD9E,wBAAwB,EAAEA,wBAAyB;QACnD8D,gBAAgB,EAAEA,gBAAiB;QACnCE,UAAU,EAAEA,UAAW;QACvBD,QAAQ,EAAEA,QAAS;QACnB/C,aAAa,EAAEA;MAAc,CAC9B,CACF;MACD+D,OAAO,eACLrF,IAAA,CAACV,kBAAkB;QAAA,GACbkC,YAAY;QAChB8D,mBAAmB,EACjB9D,YAAY,CAAC8D,mBAAmB,IAAI,CAAC,CAACxE,sBACvC;QACDyE,cAAc,EAAE/D,YAAY,CAAC+D,cAAc,IAAI5D,YAAa;QAC5D6D,gBAAgB,EAAEhE,YAAY,CAACgE,gBAAgB,IAAI7D,YAAa;QAChE8D,aAAa,EAAE3C,iBAAkB;QACjC4C,iBAAiB,EAAErC,qBAAsB;QACzC9C,YAAY,EAAEwD,gBAAiB;QAC/BvD,cAAc,EAAEwD,kBAAmB;QACnC2B,cAAc,EAAEhC,kBAAmB;QACnCiC,eAAe,EAAEhC,mBAAoB;QACrCiC,cAAc,EAAE5B;MAAmB,CACpC;IACF,CACF,CAAC;EAAA,CACG,CAAC;AAEZ,CACF,CAAC;AAED7D,qBAAqB,CAAC0F,WAAW,GAAG,uBAAuB;AAE3D,MAAMjB,MAAM,GAAG5F,UAAU,CAAC8G,MAAM,CAAC;EAC/BjB,QAAQ,EAAE;IACRkB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Modal","Pressable","StyleSheet","Clipboard","UIUtils","trans","LegendChatMessage","MessageToolboxMenu","getCopyableMessageText","getMessageToolboxItems","MessageToolboxWrapper","useSendMessage","useChatContext","useChatDetailContext","GroupPermission","MessageType","useHasGroupPermission","jsx","_jsx","jsxs","_jsxs","UNFREEZE_DELAY_MS","EXPANDABLE_TYPES","TextMessage","AtTextMessage","UrlTextMessage","QuoteMessage","MessageToolboxOverlay","currentUserId","customMessageItemFactory","onPinMessage","onUnpinMessage","freeze","ref","setQuotedMessage","conversation","isGroupConversation","generateChatDetailLink","visible","setVisible","message","setMessage","undefined","rect","setRect","groupPosition","setGroupPosition","toolboxItems","retryMessage","revokeMessage","isPinAllowed","PinMessage","unfreezeTimeoutRef","clearPendingUnfreeze","current","clearTimeout","hide","setTimeout","value","show","msg","msgRect","msgGroupPosition","toolboxNotAvailable","Object","values","filter","Boolean","length","handleCopyMessage","text","setString","toast","open","title","theme","handleCopyMessageLink","link","targetConversationId","conversationID","targetMessageId","clientMsgID","handleRetryMessage","handleRevokeMessage","error","console","handlePinMessage","handleUnpinMessage","handleQuoteMessage","overlayMessageId","serverMsgID","isOutgoing","sendID","isCloneInteractive","includes","contentType","showSenderGutter","showName","showAvatar","transparent","statusBarTranslucent","animationType","onRequestClose","children","style","styles","backdrop","onPress","onDismiss","messageId","isPreview","createdAtTime","sendTime","createTime","toolbox","showCopyMessageLink","showPinMessage","showUnpinMessage","onCopyMessage","onCopyMessageLink","onRetryMessage","onRevokeMessage","onQuoteMessage","displayName","create","position","top","left","right","bottom","backgroundColor"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, memo } from 'react';
4
- import { View, Platform, useWindowDimensions } from 'react-native';
3
+ import { useCallback, memo, useState } from 'react';
4
+ import { View, ScrollView, Pressable, StyleSheet, Platform, useWindowDimensions } from 'react-native';
5
5
  import { useAnimatedStyle, useDerivedValue, useSharedValue, withTiming } from 'react-native-reanimated';
6
6
  import { messageStyles } from "../legend/messageTypes.js";
7
7
  import Animated from 'react-native-reanimated';
8
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
9
+ import { ClonePreviewBudgetContext } from "../../../components/messages/PreviewScrollableText.js";
10
+ import { useClonePreview } from "./useClonePreview.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  const MENU_GAP = 8;
13
+ // A clone is never squeezed below this, even if the toolbox is unusually tall —
14
+ // better to overflow slightly than to render a sliver of a message.
15
+ const MIN_CLONE_HEIGHT = 120;
11
16
  export const MessageToolboxWrapper = /*#__PURE__*/memo(({
12
17
  isOutgoing,
13
18
  rect,
14
19
  message,
20
+ isCloneInteractive,
21
+ onDismiss,
15
22
  reaction,
16
23
  toolbox
17
24
  }) => {
@@ -23,6 +30,14 @@ export const MessageToolboxWrapper = /*#__PURE__*/memo(({
23
30
  const {
24
31
  height: windowHeight
25
32
  } = useWindowDimensions();
33
+
34
+ // Mirrors `toolboxHeight` on the JS side. Deriving the clone's maxHeight
35
+ // from the shared value instead would close a loop — maxHeight feeds the
36
+ // clone's height, which feeds `messageHeight`, which feeds `translateY`.
37
+ // The toolbox's own height does not depend on the clone, so reading it
38
+ // here settles in one pass. Not ratcheted: the menu's item set varies with
39
+ // permissions, and a high-water mark could never shrink back.
40
+ const [chromeHeight, setChromeHeight] = useState(0);
26
41
  const onMessageCloneLayout = useCallback(({
27
42
  nativeEvent
28
43
  }) => {
@@ -32,12 +47,20 @@ export const MessageToolboxWrapper = /*#__PURE__*/memo(({
32
47
  nativeEvent
33
48
  }) => {
34
49
  toolboxHeight.value = nativeEvent.layout.height;
50
+ setChromeHeight(nativeEvent.layout.height);
35
51
  }, [toolboxHeight]);
36
52
  const onReactionLayout = useCallback(({
37
53
  nativeEvent
38
54
  }) => {
39
55
  reactionHeight.value = nativeEvent.layout.height;
40
56
  }, [reactionHeight]);
57
+
58
+ // Same quantities `translateY` below subtracts, so the clone is never
59
+ // allowed to be taller than the space that shift can actually recover —
60
+ // `translateY` only moves up, so an over-tall clone pushes the toolbox off
61
+ // the bottom of the screen with no way back.
62
+ const maxCloneHeight = Math.max(windowHeight - insets.top - topOffset - (insets.bottom || 32) - chromeHeight - 3 * MENU_GAP, MIN_CLONE_HEIGHT);
63
+ const preview = useClonePreview(maxCloneHeight);
41
64
  const translateY = useDerivedValue(() => {
42
65
  const menuGap = (reactionHeight.value > 0 ? MENU_GAP : 0) + (toolboxHeight.value > 0 ? MENU_GAP : 0);
43
66
  const overflowBottom = Math.max(rect.y, insets.top) + topOffset + messageHeight.value + toolboxHeight.value + (insets.bottom || 32) + menuGap - windowHeight;
@@ -50,16 +73,39 @@ export const MessageToolboxWrapper = /*#__PURE__*/memo(({
50
73
  gap: MENU_GAP,
51
74
  transform: [{
52
75
  translateY: translateY.value
53
- }]
76
+ }],
77
+ // Until the toolbox has measured, the clone's budget is over-large and
78
+ // `translateY` is computed against a toolbox height of 0, which produces
79
+ // a visible two-stage slide on every open. Lay out, then reveal.
80
+ opacity: chromeHeight > 0 ? 1 : 0
54
81
  }));
55
82
  return /*#__PURE__*/_jsxs(Animated.View, {
56
83
  pointerEvents: "box-none",
57
84
  style: [isOutgoing ? messageStyles.messageRowRight : messageStyles.messageRowLeft, containerStyles],
58
- children: [/*#__PURE__*/_jsx(View, {
59
- pointerEvents: "none",
85
+ children: [/*#__PURE__*/_jsx(ScrollView, {
86
+ style: [styles.clone, {
87
+ maxHeight: maxCloneHeight
88
+ }],
60
89
  collapsable: false,
61
90
  onLayout: onMessageCloneLayout,
62
- children: message
91
+ onContentSizeChange: preview.onContentSizeChange,
92
+ bounces: false,
93
+ showsVerticalScrollIndicator: false,
94
+ children: /*#__PURE__*/_jsx(Pressable, {
95
+ onPress: onDismiss,
96
+ disabled: preview.dismissDisabled,
97
+ children: /*#__PURE__*/_jsxs(View, {
98
+ pointerEvents: isCloneInteractive ? 'box-none' : 'none',
99
+ style: isOutgoing ? styles.rowEnd : styles.rowStart,
100
+ children: [preview.dismissDisabled && /*#__PURE__*/_jsx(Pressable, {
101
+ style: StyleSheet.absoluteFill,
102
+ onPress: onDismiss
103
+ }), /*#__PURE__*/_jsx(ClonePreviewBudgetContext.Provider, {
104
+ value: preview.budget,
105
+ children: message
106
+ })]
107
+ })
108
+ })
63
109
  }), /*#__PURE__*/_jsx(View, {
64
110
  collapsable: false,
65
111
  onLayout: onReactionLayout,
@@ -72,4 +118,31 @@ export const MessageToolboxWrapper = /*#__PURE__*/memo(({
72
118
  });
73
119
  });
74
120
  MessageToolboxWrapper.displayName = 'MessageToolboxWrapper';
121
+ const styles = StyleSheet.create({
122
+ // maxHeight belongs on the ScrollView itself — inside an auto-height parent a
123
+ // ScrollView collapses to zero.
124
+ //
125
+ // `rowStart`/`rowEnd` reproduce the contract `LegendChatMessage` gets from
126
+ // the real list row: its root (`maxWidth: '80%'`) must be the DIRECT child
127
+ // of a definite-width, non-stretching (`alignItems`) View. Any auto-width
128
+ // node in between (an extra View, a non-stretched Pressable) leaves the 80%
129
+ // with no definite basis, and Yoga collapses the bubble toward min-content —
130
+ // on device, "M2" wrapping to "M" / "2". The Pressable sits outside this
131
+ // View, stretched by the ScrollView's content container, so the chain from
132
+ // the clone's measured width down to the bubble stays definite throughout.
133
+ // Not `messageRowLeft/Right` directly: the outer Animated.View already
134
+ // applies their padding, which would double up here.
135
+ clone: {
136
+ flexGrow: 0,
137
+ width: '100%'
138
+ },
139
+ rowStart: {
140
+ width: '100%',
141
+ alignItems: 'flex-start'
142
+ },
143
+ rowEnd: {
144
+ width: '100%',
145
+ alignItems: 'flex-end'
146
+ }
147
+ });
75
148
  //# sourceMappingURL=MessageToolboxWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","memo","View","Platform","useWindowDimensions","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","messageStyles","Animated","useSafeAreaInsets","jsx","_jsx","jsxs","_jsxs","MENU_GAP","MessageToolboxWrapper","isOutgoing","rect","message","reaction","toolbox","insets","messageHeight","reactionHeight","toolboxHeight","topOffset","OS","top","height","windowHeight","onMessageCloneLayout","nativeEvent","value","layout","onToolboxLayout","onReactionLayout","translateY","menuGap","overflowBottom","Math","max","y","bottom","min","containerStyles","left","x","width","gap","transform","pointerEvents","style","messageRowRight","messageRowLeft","children","collapsable","onLayout","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","memo","useState","View","ScrollView","Pressable","StyleSheet","Platform","useWindowDimensions","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","messageStyles","Animated","useSafeAreaInsets","ClonePreviewBudgetContext","useClonePreview","jsx","_jsx","jsxs","_jsxs","MENU_GAP","MIN_CLONE_HEIGHT","MessageToolboxWrapper","isOutgoing","rect","message","isCloneInteractive","onDismiss","reaction","toolbox","insets","messageHeight","reactionHeight","toolboxHeight","topOffset","OS","top","height","windowHeight","chromeHeight","setChromeHeight","onMessageCloneLayout","nativeEvent","value","layout","onToolboxLayout","onReactionLayout","maxCloneHeight","Math","max","bottom","preview","translateY","menuGap","overflowBottom","y","min","containerStyles","left","x","width","gap","transform","opacity","pointerEvents","style","messageRowRight","messageRowLeft","children","styles","clone","maxHeight","collapsable","onLayout","onContentSizeChange","bounces","showsVerticalScrollIndicator","onPress","disabled","dismissDisabled","rowEnd","rowStart","absoluteFill","Provider","budget","displayName","create","flexGrow","alignItems"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ /**
5
+ * Wiring between the overlay's clone and the expanded text that scrolls
6
+ * inside it (see `PreviewScrollableText`).
7
+ *
8
+ * `dismissDisabled`: the clone sits in a tap-to-dismiss Pressable. On iOS a
9
+ * ScrollView refuses to scroll while an ANCESTOR holds the JS responder
10
+ * (`RCTScrollView _shouldDisableScrollInteraction`), so with the Pressable
11
+ * enabled a drag on the text never scrolls — it ends as a tap and closes the
12
+ * overlay. While the text is scrollable the Pressable stands down; the
13
+ * backdrop and the menu still dismiss.
14
+ */
15
+ export const useClonePreview = maxHeight => {
16
+ const [contentHeight, setContentHeight] = useState(0);
17
+ const [textScrollable, setTextScrollable] = useState(false);
18
+ const onContentSizeChange = useCallback((_width, height) => setContentHeight(height), []);
19
+ const budget = useMemo(() => ({
20
+ maxHeight,
21
+ contentHeight,
22
+ onScrollableChange: setTextScrollable
23
+ }), [maxHeight, contentHeight]);
24
+ return {
25
+ budget,
26
+ onContentSizeChange,
27
+ dismissDisabled: textScrollable
28
+ };
29
+ };
30
+ //# sourceMappingURL=useClonePreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useState","useClonePreview","maxHeight","contentHeight","setContentHeight","textScrollable","setTextScrollable","onContentSizeChange","_width","height","budget","onScrollableChange","dismissDisabled"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/useClonePreview.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAGtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAIC,SAAiB,IAAK;EACpD,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGJ,QAAQ,CAAC,CAAC,CAAC;EACrD,MAAM,CAACK,cAAc,EAAEC,iBAAiB,CAAC,GAAGN,QAAQ,CAAC,KAAK,CAAC;EAE3D,MAAMO,mBAAmB,GAAGT,WAAW,CACrC,CAACU,MAAc,EAAEC,MAAc,KAAKL,gBAAgB,CAACK,MAAM,CAAC,EAC5D,EACF,CAAC;EAED,MAAMC,MAAM,GAAGX,OAAO,CACpB,OAAO;IACLG,SAAS;IACTC,aAAa;IACbQ,kBAAkB,EAAEL;EACtB,CAAC,CAAC,EACF,CAACJ,SAAS,EAAEC,aAAa,CAC3B,CAAC;EAED,OAAO;IAAEO,MAAM;IAAEH,mBAAmB;IAAEK,eAAe,EAAEP;EAAe,CAAC;AACzE,CAAC","ignoreList":[]}
@@ -15,4 +15,9 @@ export let DChatQuickActionItemType = /*#__PURE__*/function (DChatQuickActionIte
15
15
  DChatQuickActionItemType["ScamWarning"] = "ScamWarning";
16
16
  return DChatQuickActionItemType;
17
17
  }({});
18
+
19
+ /**
20
+ * @internal Imperative handle to the composer's attachment/sticker panel,
21
+ * used by ChatDetail for tap-outside dismiss. Not part of the public API.
22
+ */
18
23
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DChatPannelActionItemType","DChatQuickActionItemType"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/types.ts"],"mappings":";;AAUA,WAAYA,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AASrC,WAAYC,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["DChatPannelActionItemType","DChatQuickActionItemType"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/types.ts"],"mappings":";;AAUA,WAAYA,yBAAyB,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AASrC,WAAYC,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;;AA2FpC;AACA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ import { create } from 'zustand';
4
+ import { expandedKey, withoutSurface } from "../utils/expandableText.js";
5
+ export { expandedKey };
6
+ export const useExpandedMessageStore = create()((set, get) => ({
7
+ expanded: {},
8
+ expand: (surface, messageId) => {
9
+ // A message with no id would alias onto `${surface}:` and expand every
10
+ // other id-less message with it.
11
+ if (!messageId) return;
12
+ const key = expandedKey(surface, messageId);
13
+ if (get().expanded[key]) return;
14
+ set({
15
+ expanded: {
16
+ ...get().expanded,
17
+ [key]: true
18
+ }
19
+ });
20
+ },
21
+ clearSurface: surface => {
22
+ const next = withoutSurface(get().expanded, surface);
23
+ if (next !== get().expanded) set({
24
+ expanded: next
25
+ });
26
+ }
27
+ }));
28
+ //# sourceMappingURL=expandedMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["create","expandedKey","withoutSurface","useExpandedMessageStore","set","get","expanded","expand","surface","messageId","key","clearSurface","next"],"sourceRoot":"../../../src","sources":["store/expandedMessage.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SACEC,WAAW,EACXC,cAAc,QAET,4BAAyB;AAGhC,SAASD,WAAW;AAapB,OAAO,MAAME,uBAAuB,GAAGH,MAAM,CAAuB,CAAC,CACnE,CAACI,GAAG,EAAEC,GAAG,MAAM;EACbC,QAAQ,EAAE,CAAC,CAAC;EAEZC,MAAM,EAAEA,CAACC,OAAO,EAAEC,SAAS,KAAK;IAC9B;IACA;IACA,IAAI,CAACA,SAAS,EAAE;IAEhB,MAAMC,GAAG,GAAGT,WAAW,CAACO,OAAO,EAAEC,SAAS,CAAC;IAC3C,IAAIJ,GAAG,CAAC,CAAC,CAACC,QAAQ,CAACI,GAAG,CAAC,EAAE;IAEzBN,GAAG,CAAC;MAAEE,QAAQ,EAAE;QAAE,GAAGD,GAAG,CAAC,CAAC,CAACC,QAAQ;QAAE,CAACI,GAAG,GAAG;MAAK;IAAE,CAAC,CAAC;EACvD,CAAC;EAEDC,YAAY,EAAGH,OAAO,IAAK;IACzB,MAAMI,IAAI,GAAGV,cAAc,CAACG,GAAG,CAAC,CAAC,CAACC,QAAQ,EAAEE,OAAO,CAAC;IACpD,IAAII,IAAI,KAAKP,GAAG,CAAC,CAAC,CAACC,QAAQ,EAAEF,GAAG,CAAC;MAAEE,QAAQ,EAAEM;IAAK,CAAC,CAAC;EACtD;AACF,CAAC,CACH,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ import { ChatEvent } from "../types/events.js";
7
7
  import { mergeMessages } from "../utils/message.js";
8
8
  import { isMessageRevoked } from "../utils/messageUtils.js";
9
9
  import { useConversationStore } from "./conversation.js";
10
+ import { perfMark } from "../utils/perf-marker.js";
10
11
 
11
12
  // Smaller than a typical "load more" page size elsewhere in the app on
12
13
  // purpose: each page becomes a single prepend batch in ChatListLegend, and a
@@ -73,7 +74,16 @@ export const useMessageStore = create()((set, get) => ({
73
74
  viewType: ViewType.History,
74
75
  applicationType: applicationType
75
76
  };
77
+ perfMark('history_page_request', {
78
+ loadMore: !!loadMore,
79
+ loaded: get().messages.length
80
+ });
76
81
  const res = await OpenIMSDK.getAdvancedHistoryMessageListApp(params);
82
+ perfMark('history_page_response', {
83
+ loadMore: !!loadMore,
84
+ received: res.messageList?.length ?? 0,
85
+ isEnd: !!res.isEnd
86
+ });
77
87
  if (conversationId === useConversationStore.getState().currentConversationId) {
78
88
  set(state => ({
79
89
  messages: loadMore ? mergeMessages(state.messages, res.messageList || []) : res.messageList || [],
@@ -81,6 +91,10 @@ export const useMessageStore = create()((set, get) => ({
81
91
  initLoading: false,
82
92
  moreOldLoading: false
83
93
  }));
94
+ perfMark('history_list_update', {
95
+ loadMore: !!loadMore,
96
+ total: get().messages.length
97
+ });
84
98
  }
85
99
  } catch (error) {
86
100
  console.log('Failed to get more old messages', error);
@@ -1 +1 @@
1
- {"version":3,"names":["create","DeviceEventEmitter","OpenIMSDK","MessageType","ViewType","ChatEvent","mergeMessages","isMessageRevoked","useConversationStore","PAGE_SIZE","useMessageStore","set","get","messages","hasMoreOld","hasMoreNew","initLoading","moreOldLoading","moreNewLoading","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","getMoreOldMessages","loadMore","applicationType","conversationId","params","count","startClientMsgID","conversationID","viewType","History","res","getAdvancedHistoryMessageListApp","getState","currentConversationId","messageList","isEnd","error","console","log","getMoreNewMessages","length","getAdvancedHistoryMessageListReverseApp","Promise","resolve","setTimeout","emit","ScrollToBottom","searchMessages","startClientMsgId","searchPrevParams","Search","searchNextParams","searchCurrentParams","clientMsgIDList","findMessageList","searchPrevRes","searchNextRes","currentMessages","findResultItems","find","item","newMessages","targetMessage","TargetMessageUnavailable","ScrollToMessage","clientMessageId","reset","markMessageRevoked","alreadyRevoked","some","contentType","RevokeMessage","MessageRevoked","revokeQuotedReferences","forEach","quoteElem","quoteMessage","atTextElem"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["create","DeviceEventEmitter","OpenIMSDK","MessageType","ViewType","ChatEvent","mergeMessages","isMessageRevoked","useConversationStore","perfMark","PAGE_SIZE","useMessageStore","set","get","messages","hasMoreOld","hasMoreNew","initLoading","moreOldLoading","moreNewLoading","setMessages","hasMore","pushNewMessage","message","state","updateOneMessage","tmpList","idx","findIndex","msg","clientMsgID","deleteOneMessage","filter","getMoreOldMessages","loadMore","applicationType","conversationId","params","count","startClientMsgID","conversationID","viewType","History","loaded","length","res","getAdvancedHistoryMessageListApp","received","messageList","isEnd","getState","currentConversationId","total","error","console","log","getMoreNewMessages","getAdvancedHistoryMessageListReverseApp","Promise","resolve","setTimeout","emit","ScrollToBottom","searchMessages","startClientMsgId","searchPrevParams","Search","searchNextParams","searchCurrentParams","clientMsgIDList","findMessageList","searchPrevRes","searchNextRes","currentMessages","findResultItems","find","item","newMessages","targetMessage","TargetMessageUnavailable","ScrollToMessage","clientMessageId","reset","markMessageRevoked","alreadyRevoked","some","contentType","RevokeMessage","MessageRevoked","revokeQuotedReferences","forEach","quoteElem","quoteMessage","atTextElem"],"sourceRoot":"../../../src","sources":["store/message.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,SAAS;AAChC,SAASC,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,SAAS,IACdC,WAAW,EACXC,QAAQ,QACH,+BAA+B;AACtC,SAASC,SAAS,QAAQ,oBAAiB;AAO3C,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,gBAAgB,QAAQ,0BAAuB;AACxD,SAASC,oBAAoB,QAAQ,mBAAgB;AACrD,SAASC,QAAQ,QAAQ,yBAAsB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,SAAS,GAAG,EAAE;AAEpB,OAAO,MAAMC,eAAe,GAAGX,MAAM,CAAe,CAAC,CAAC,CAACY,GAAG,EAAEC,GAAG,MAAM;EACnEC,QAAQ,EAAE,EAAE;EACZC,UAAU,EAAE,IAAI;EAChBC,UAAU,EAAE,KAAK;EACjBC,WAAW,EAAE,IAAI;EACjBC,cAAc,EAAE,KAAK;EACrBC,cAAc,EAAE,KAAK;EACrBC,WAAW,EAAEA,CAACN,QAAQ,EAAEO,OAAO,KAAK;IAClCT,GAAG,CAAC;MAAEE,QAAQ;MAAEC,UAAU,EAAEM;IAAQ,CAAC,CAAC;EACxC,CAAC;EAEDC,cAAc,EAAGC,OAAoB,IAAK;IACxCX,GAAG,CAAEY,KAAK,KAAM;MACdV,QAAQ,EAAER,aAAa,CAACkB,KAAK,CAACV,QAAQ,EAAE,CAACS,OAAO,CAAC;IACnD,CAAC,CAAC,CAAC;EACL,CAAC;EAEDE,gBAAgB,EAAGF,OAAO,IAAK;IAC7B,MAAMG,OAAO,GAAG,CAAC,GAAGb,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;IACnC,MAAMa,GAAG,GAAGD,OAAO,CAACE,SAAS,CAC1BC,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKP,OAAO,CAACO,WACvC,CAAC;IACD,IAAIH,GAAG,GAAG,CAAC,EAAE;IACbD,OAAO,CAACC,GAAG,CAAC,GAAG;MAAE,GAAGD,OAAO,CAACC,GAAG,CAAE;MAAE,GAAGJ;IAAQ,CAAC;IAC/CX,GAAG,CAAC;MAAEE,QAAQ,EAAEY;IAAQ,CAAC,CAAC;EAC5B,CAAC;EAEDK,gBAAgB,EAAGD,WAAmB,IAAK;IACzClB,GAAG,CAAEY,KAAK,KAAM;MACdV,QAAQ,EAAEU,KAAK,CAACV,QAAQ,CAACkB,MAAM,CAAEH,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKA,WAAW;IAC1E,CAAC,CAAC,CAAC;EACL,CAAC;EAEDG,kBAAkB,EAAE,MAAAA,CAAO;IACzBC,QAAQ;IACRC,eAAe;IACfC;EACkB,CAAC,KAAK;IACxB,IAAI,CAACA,cAAc,EAAE;IACrB,IAAI;MACF,IAAIF,QAAQ,EAAE;QACZtB,GAAG,CAAC;UAAEM,cAAc,EAAE;QAAK,CAAC,CAAC;MAC/B,CAAC,MAAM;QACLN,GAAG,CAAC;UAAEK,WAAW,EAAE;QAAK,CAAC,CAAC;MAC5B;MACA,MAAMoB,MAAM,GAAG;QACbC,KAAK,EAAE5B,SAAS;QAChB6B,gBAAgB,EAAEL,QAAQ,GACtBrB,GAAG,CAAC,CAAC,CAACC,QAAQ,GAAG,CAAC,CAAC,EAAEgB,WAAW,IAAI,EAAE,GACtC,EAAE;QACNU,cAAc,EAAEJ,cAAc,IAAI,EAAE;QACpCK,QAAQ,EAAErC,QAAQ,CAACsC,OAAO;QAC1BP,eAAe,EAAEA;MACnB,CAAC;MACD1B,QAAQ,CAAC,sBAAsB,EAAE;QAC/ByB,QAAQ,EAAE,CAAC,CAACA,QAAQ;QACpBS,MAAM,EAAE9B,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC8B;MACzB,CAAC,CAAC;MACF,MAAMC,GAAG,GAAG,MAAM3C,SAAS,CAAC4C,gCAAgC,CAACT,MAAM,CAAC;MACpE5B,QAAQ,CAAC,uBAAuB,EAAE;QAChCyB,QAAQ,EAAE,CAAC,CAACA,QAAQ;QACpBa,QAAQ,EAAEF,GAAG,CAACG,WAAW,EAAEJ,MAAM,IAAI,CAAC;QACtCK,KAAK,EAAE,CAAC,CAACJ,GAAG,CAACI;MACf,CAAC,CAAC;MACF,IACEb,cAAc,KAAK5B,oBAAoB,CAAC0C,QAAQ,CAAC,CAAC,CAACC,qBAAqB,EACxE;QACAvC,GAAG,CAAEY,KAAK,KAAM;UACdV,QAAQ,EAAEoB,QAAQ,GACd5B,aAAa,CAACkB,KAAK,CAACV,QAAQ,EAAE+B,GAAG,CAACG,WAAW,IAAI,EAAE,CAAC,GACpDH,GAAG,CAACG,WAAW,IAAI,EAAE;UACzBjC,UAAU,EAAE,CAAC8B,GAAG,CAACI,KAAK;UACtBhC,WAAW,EAAE,KAAK;UAClBC,cAAc,EAAE;QAClB,CAAC,CAAC,CAAC;QACHT,QAAQ,CAAC,qBAAqB,EAAE;UAC9ByB,QAAQ,EAAE,CAAC,CAACA,QAAQ;UACpBkB,KAAK,EAAEvC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC8B;QACxB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOS,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEF,KAAK,CAAC;MACrDzC,GAAG,CAAC;QAAEK,WAAW,EAAE,KAAK;QAAEC,cAAc,EAAE;MAAM,CAAC,CAAC;IACpD;EACF,CAAC;EAEDsC,kBAAkB,EAAE,MAAAA,CAAO;IACzBtB,QAAQ;IACRC,eAAe;IACfC;EACkB,CAAC,KAAK;IACxB,IAAI,CAACA,cAAc,EAAE;IACrB,IAAI;MACFxB,GAAG,CAAC;QAAEO,cAAc,EAAE;MAAK,CAAC,CAAC;MAC7B,MAAMkB,MAAM,GAAG;QACbC,KAAK,EAAE5B,SAAS;QAChB6B,gBAAgB,EAAEL,QAAQ,GACtBrB,GAAG,CAAC,CAAC,CAACC,QAAQ,GAAGD,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC8B,MAAM,GAAG,CAAC,CAAC,EAAEd,WAAW,IAAI,EAAE,GAC9D,EAAE;QACNU,cAAc,EAAEJ,cAAc,IAAI,EAAE;QACpCD,eAAe;QACfM,QAAQ,EAAErC,QAAQ,CAACsC;MACrB,CAAC;MACD,MAAMG,GAAG,GACP,MAAM3C,SAAS,CAACuD,uCAAuC,CAACpB,MAAM,CAAC;MACjE,IACED,cAAc,KAAK5B,oBAAoB,CAAC0C,QAAQ,CAAC,CAAC,CAACC,qBAAqB,EACxE;QACAvC,GAAG,CAAEY,KAAK,KAAM;UACdV,QAAQ,EAAER,aAAa,CAACkB,KAAK,CAACV,QAAQ,EAAE+B,GAAG,CAACG,WAAW,IAAI,EAAE,CAAC;UAC9DhC,UAAU,EAAE,CAAC6B,GAAG,CAACI,KAAK;UACtBhC,WAAW,EAAE,KAAK;UAClBE,cAAc,EAAE;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAACe,QAAQ,EAAE;UACb,MAAM,IAAIwB,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;UACxD1D,kBAAkB,CAAC4D,IAAI,CAACxD,SAAS,CAACyD,cAAc,CAAC;QACnD;MACF;IACF,CAAC,CAAC,OAAOT,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,iCAAiC,EAAEF,KAAK,CAAC;MACrDzC,GAAG,CAAC;QAAEK,WAAW,EAAE,KAAK;QAAEE,cAAc,EAAE;MAAM,CAAC,CAAC;IACpD;EACF,CAAC;EAED4C,cAAc,EAAE,MAAAA,CAAO;IACrB5B,eAAe;IACfC,cAAc;IACd4B;EACqB,CAAC,KAAK;IAC3B,IAAI,CAAC5B,cAAc,IAAI,CAAC4B,gBAAgB,EAAE;IAC1C,IAAI;MACFpD,GAAG,CAAC;QAAEK,WAAW,EAAE;MAAK,CAAC,CAAC;MAC1B,MAAMgD,gBAAgB,GAAG;QACvB3B,KAAK,EAAE5B,SAAS;QAChB6B,gBAAgB,EAAEyB,gBAAgB;QAClCxB,cAAc,EAAEJ,cAAc,IAAI,EAAE;QACpCK,QAAQ,EAAErC,QAAQ,CAAC8D,MAAM;QACzB/B;MACF,CAAC;MACD,MAAMgC,gBAAgB,GAAG;QACvB7B,KAAK,EAAE5B,SAAS;QAChB6B,gBAAgB,EAAEyB,gBAAgB;QAClCxB,cAAc,EAAEJ,cAAc,IAAI,EAAE;QACpCK,QAAQ,EAAErC,QAAQ,CAAC8D,MAAM;QACzB/B;MACF,CAAC;MACD,MAAMiC,mBAAmB,GAAG,CAC1B;QACE5B,cAAc,EAAEJ,cAAc,IAAI,EAAE;QACpCiC,eAAe,EAAE,CAACL,gBAAgB;MACpC,CAAC,CACF;MACD,MAAMD,cAAc,GAClB,MAAM7D,SAAS,CAACoE,eAAe,CAACF,mBAAmB,CAAC;MACtD,MAAMG,aAAa,GACjB,MAAMrE,SAAS,CAAC4C,gCAAgC,CAACmB,gBAAgB,CAAC;MACpE,MAAMO,aAAa,GACjB,MAAMtE,SAAS,CAACuD,uCAAuC,CACrDU,gBACF,CAAC;MACH,IACE/B,cAAc,KAAK5B,oBAAoB,CAAC0C,QAAQ,CAAC,CAAC,CAACC,qBAAqB,EACxE;QACA,MAAMsB,eAAe,GACnBV,cAAc,EAAEW,eAAe,EAAEC,IAAI,CAClCC,IAAI,IAAKA,IAAI,CAACpC,cAAc,KAAKJ,cACpC,CAAC,EAAEY,WAAW,IAAI,EAAE;QACtB,MAAM6B,WAAW,GAAGvE,aAAa,CAC/B,CACE,IAAIiE,aAAa,EAAEvB,WAAW,IAAI,EAAE,CAAC,EACrC,GAAGyB,eAAe,EAClB,IAAID,aAAa,EAAExB,WAAW,IAAI,EAAE,CAAC,CACtC,EACD,EACF,CAAC;QACDpC,GAAG,CAAC;UACFE,QAAQ,EAAE+D,WAAW;UACrB9D,UAAU,EAAE,CAACwD,aAAa,CAACtB,KAAK;UAChCjC,UAAU,EAAE,CAACwD,aAAa,CAACvB,KAAK;UAChChC,WAAW,EAAE;QACf,CAAC,CAAC;QAEF,MAAM6D,aAAa,GAAGD,WAAW,CAACF,IAAI,CACnC9C,GAAG,IAAKA,GAAG,CAACC,WAAW,KAAKkC,gBAC/B,CAAC;QAED,IAAI,CAACc,aAAa,IAAIvE,gBAAgB,CAACuE,aAAa,CAAC,EAAE;UACrD7E,kBAAkB,CAAC4D,IAAI,CAACxD,SAAS,CAAC0E,wBAAwB,CAAC;UAC3D;QACF;QAEA,MAAM,IAAIrB,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAE,GAAG,CAAC,CAAC;QACxD1D,kBAAkB,CAAC4D,IAAI,CAACxD,SAAS,CAAC2E,eAAe,EAAE;UACjDC,eAAe,EAAEjB;QACnB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC,OAAOX,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;MACjDzC,GAAG,CAAC;QAAEK,WAAW,EAAE;MAAM,CAAC,CAAC;IAC7B;EACF,CAAC;EAEDiE,KAAK,EAAEA,CAAA,KAAM;IACXtE,GAAG,CAAC;MACFE,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE,IAAI;MAChBC,UAAU,EAAE,KAAK;MACjBC,WAAW,EAAE,IAAI;MACjBC,cAAc,EAAE,KAAK;MACrBC,cAAc,EAAE;IAClB,CAAC,CAAC;EACJ;AACF,CAAC,CAAC,CAAC;AAEH,OAAO,MAAMgE,kBAAkB,GAAIrD,WAAmB,IAAK;EACzD,MAAMsD,cAAc,GAAGzE,eAAe,CACnCuC,QAAQ,CAAC,CAAC,CACVpC,QAAQ,CAACuE,IAAI,CACXxD,GAAG,IACFA,GAAG,CAACC,WAAW,KAAKA,WAAW,IAC/BD,GAAG,CAACyD,WAAW,KAAKnF,WAAW,CAACoF,aACpC,CAAC;EACH,IAAIH,cAAc,EAAE;EAEpBzE,eAAe,CACZuC,QAAQ,CAAC,CAAC,CACVzB,gBAAgB,CAAC;IAAEK,WAAW;IAAEwD,WAAW,EAAEnF,WAAW,CAACoF;EAAc,CAAC,CAAC;EAE5EtF,kBAAkB,CAAC4D,IAAI,CAACxD,SAAS,CAACmF,cAAc,EAAE;IAAE1D;EAAY,CAAC,CAAC;EAElE2D,sBAAsB,CAAC3D,WAAW,CAAC;AACrC,CAAC;AAED,MAAM2D,sBAAsB,GAAI3D,WAAmB,IAAK;EACtD,MAAM;IAAEhB,QAAQ;IAAEW;EAAiB,CAAC,GAAGd,eAAe,CAACuC,QAAQ,CAAC,CAAC;EAEjEpC,QAAQ,CAAC4E,OAAO,CAAE7D,GAAG,IAAK;IACxB,IAAIA,GAAG,CAAC8D,SAAS,EAAEC,YAAY,EAAE9D,WAAW,KAAKA,WAAW,EAAE;MAC5DL,gBAAgB,CAAC;QACfK,WAAW,EAAED,GAAG,CAACC,WAAW;QAC5B6D,SAAS,EAAE;UACT,GAAG9D,GAAG,CAAC8D,SAAS;UAChBC,YAAY,EAAE;YACZ,GAAG/D,GAAG,CAAC8D,SAAS,CAACC,YAAY;YAC7BN,WAAW,EAAEnF,WAAW,CAACoF;UAC3B;QACF;MACF,CAAC,CAAC;IACJ;IAEA,IAAI1D,GAAG,CAACgE,UAAU,EAAED,YAAY,EAAE9D,WAAW,KAAKA,WAAW,EAAE;MAC7DL,gBAAgB,CAAC;QACfK,WAAW,EAAED,GAAG,CAACC,WAAW;QAC5B+D,UAAU,EAAE;UACV,GAAGhE,GAAG,CAACgE,UAAU;UACjBD,YAAY,EAAE;YACZ,GAAG/D,GAAG,CAACgE,UAAU,CAACD,YAAY;YAC9BN,WAAW,EAAEnF,WAAW,CAACoF;UAC3B;QACF;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Per-touch state for dismissing the composer's attachment/sticker panel by
5
+ * tapping the chat timeline: a touch that began while the panel was open and
6
+ * ended without dragging is a dismiss tap. Drag detection is explicit — a
7
+ * movement threshold or the list's scroll-begin — since the touch is only
8
+ * observed (touch events), never claimed as the JS responder.
9
+ */
10
+ export const DISMISS_DRAG_THRESHOLD_PX = 10;
11
+ export const IDLE_DISMISS_TOUCH = {
12
+ panelOpenAtStart: false,
13
+ dragged: false,
14
+ startX: 0,
15
+ startY: 0
16
+ };
17
+ export const startDismissTouch = (panelOpen, x, y) => ({
18
+ panelOpenAtStart: panelOpen,
19
+ dragged: false,
20
+ startX: x,
21
+ startY: y
22
+ });
23
+ export const moveDismissTouch = (touch, x, y) => {
24
+ if (touch.dragged) return touch;
25
+ const movedBeyondThreshold = Math.abs(x - touch.startX) > DISMISS_DRAG_THRESHOLD_PX || Math.abs(y - touch.startY) > DISMISS_DRAG_THRESHOLD_PX;
26
+ return movedBeyondThreshold ? {
27
+ ...touch,
28
+ dragged: true
29
+ } : touch;
30
+ };
31
+ export const markDismissTouchDragged = touch => touch.dragged ? touch : {
32
+ ...touch,
33
+ dragged: true
34
+ };
35
+
36
+ /** Whether releasing this touch should close the panel. */
37
+ export const shouldDismissOnRelease = touch => touch.panelOpenAtStart && !touch.dragged;
38
+
39
+ /**
40
+ * How long after the finger lifts a press still belongs to the dismissing
41
+ * touch. RNGH Tap and JS onPress callbacks land right after touchEnd; a later
42
+ * press (e.g. a screen-reader activation, which sends no touch events) must
43
+ * not be swallowed by a stale flag.
44
+ */
45
+ export const SWALLOW_AFTER_RELEASE_MS = 500;
46
+
47
+ /**
48
+ * Whether a timeline press must be swallowed. `releasedAt` is null while the
49
+ * dismissing touch is still down.
50
+ */
51
+ export const isPressSwallowed = (swallow, releasedAt, now) => swallow && (releasedAt === null || now - releasedAt < SWALLOW_AFTER_RELEASE_MS);
52
+ //# sourceMappingURL=composerPanelDismissGesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DISMISS_DRAG_THRESHOLD_PX","IDLE_DISMISS_TOUCH","panelOpenAtStart","dragged","startX","startY","startDismissTouch","panelOpen","x","y","moveDismissTouch","touch","movedBeyondThreshold","Math","abs","markDismissTouchDragged","shouldDismissOnRelease","SWALLOW_AFTER_RELEASE_MS","isPressSwallowed","swallow","releasedAt","now"],"sourceRoot":"../../../src","sources":["utils/composerPanelDismissGesture.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,yBAAyB,GAAG,EAAE;AAS3C,OAAO,MAAMC,kBAAgC,GAAG;EAC9CC,gBAAgB,EAAE,KAAK;EACvBC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGA,CAC/BC,SAAkB,EAClBC,CAAS,EACTC,CAAS,MACS;EAClBP,gBAAgB,EAAEK,SAAS;EAC3BJ,OAAO,EAAE,KAAK;EACdC,MAAM,EAAEI,CAAC;EACTH,MAAM,EAAEI;AACV,CAAC,CAAC;AAEF,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,KAAmB,EACnBH,CAAS,EACTC,CAAS,KACQ;EACjB,IAAIE,KAAK,CAACR,OAAO,EAAE,OAAOQ,KAAK;EAC/B,MAAMC,oBAAoB,GACxBC,IAAI,CAACC,GAAG,CAACN,CAAC,GAAGG,KAAK,CAACP,MAAM,CAAC,GAAGJ,yBAAyB,IACtDa,IAAI,CAACC,GAAG,CAACL,CAAC,GAAGE,KAAK,CAACN,MAAM,CAAC,GAAGL,yBAAyB;EACxD,OAAOY,oBAAoB,GAAG;IAAE,GAAGD,KAAK;IAAER,OAAO,EAAE;EAAK,CAAC,GAAGQ,KAAK;AACnE,CAAC;AAED,OAAO,MAAMI,uBAAuB,GAAIJ,KAAmB,IACzDA,KAAK,CAACR,OAAO,GAAGQ,KAAK,GAAG;EAAE,GAAGA,KAAK;EAAER,OAAO,EAAE;AAAK,CAAC;;AAErD;AACA,OAAO,MAAMa,sBAAsB,GAAIL,KAAmB,IACxDA,KAAK,CAACT,gBAAgB,IAAI,CAACS,KAAK,CAACR,OAAO;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMc,wBAAwB,GAAG,GAAG;;AAE3C;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,OAAgB,EAChBC,UAAyB,EACzBC,GAAW,KAEXF,OAAO,KACNC,UAAU,KAAK,IAAI,IAAIC,GAAG,GAAGD,UAAU,GAAGH,wBAAwB,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ export const COLLAPSED_LINES = 5;
4
+ const MEASURE_THRESHOLD_CHARS = 100;
5
+ export const expandedKey = (surface, messageId) => `${surface}:${messageId}`;
6
+ const countNewlines = text => {
7
+ let count = 0;
8
+ for (let i = 0; i < text.length; i += 1) {
9
+ if (text.charCodeAt(i) === 10) count += 1;
10
+ }
11
+ return count;
12
+ };
13
+
14
+ /**
15
+ * Character count alone is not an approximation of rendered lines — it is
16
+ * wrong for the shapes this chat carries most (pasted addresses, order lists),
17
+ * where an eight-line message can be under 70 characters. Newlines cost one
18
+ * character and a whole line, so both signals are needed. Message text is
19
+ * sender-controlled, so a length-only gate is also trivially defeated.
20
+ */
21
+ export const isMeasurementCandidate = text => text.length >= MEASURE_THRESHOLD_CHARS || countNewlines(text) >= COLLAPSED_LINES;
22
+
23
+ /**
24
+ * Returns a copy without the entries belonging to `surface`, or the original
25
+ * reference when nothing matched — callers use that identity to skip a
26
+ * pointless store update.
27
+ */
28
+ export const withoutSurface = (expanded, surface) => {
29
+ const prefix = `${surface}:`;
30
+ const next = {};
31
+ let removed = false;
32
+ for (const key in expanded) {
33
+ if (key.startsWith(prefix)) {
34
+ removed = true;
35
+ } else {
36
+ next[key] = true;
37
+ }
38
+ }
39
+ return removed ? next : expanded;
40
+ };
41
+ //# sourceMappingURL=expandableText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COLLAPSED_LINES","MEASURE_THRESHOLD_CHARS","expandedKey","surface","messageId","countNewlines","text","count","i","length","charCodeAt","isMeasurementCandidate","withoutSurface","expanded","prefix","next","removed","key","startsWith"],"sourceRoot":"../../../src","sources":["utils/expandableText.ts"],"mappings":";;AAEA,OAAO,MAAMA,eAAe,GAAG,CAAC;AAEhC,MAAMC,uBAAuB,GAAG,GAAG;AAEnC,OAAO,MAAMC,WAAW,GAAGA,CAACC,OAAuB,EAAEC,SAAiB,KACpE,GAAGD,OAAO,IAAIC,SAAS,EAAE;AAE3B,MAAMC,aAAa,GAAIC,IAAY,IAAK;EACtC,IAAIC,KAAK,GAAG,CAAC;EACb,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;IACvC,IAAIF,IAAI,CAACI,UAAU,CAACF,CAAC,CAAC,KAAK,EAAE,EAAED,KAAK,IAAI,CAAC;EAC3C;EACA,OAAOA,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMI,sBAAsB,GAAIL,IAAY,IACjDA,IAAI,CAACG,MAAM,IAAIR,uBAAuB,IACtCI,aAAa,CAACC,IAAI,CAAC,IAAIN,eAAe;;AAExC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMY,cAAc,GAAGA,CAC5BC,QAA8B,EAC9BV,OAAuB,KACE;EACzB,MAAMW,MAAM,GAAG,GAAGX,OAAO,GAAG;EAC5B,MAAMY,IAA0B,GAAG,CAAC,CAAC;EACrC,IAAIC,OAAO,GAAG,KAAK;EAEnB,KAAK,MAAMC,GAAG,IAAIJ,QAAQ,EAAE;IAC1B,IAAII,GAAG,CAACC,UAAU,CAACJ,MAAM,CAAC,EAAE;MAC1BE,OAAO,GAAG,IAAI;IAChB,CAAC,MAAM;MACLD,IAAI,CAACE,GAAG,CAAC,GAAG,IAAI;IAClB;EACF;EAEA,OAAOD,OAAO,GAAGD,IAAI,GAAGF,QAAQ;AAClC,CAAC","ignoreList":[]}