@droppii-org/chat-mobile 0.2.24 → 0.2.26

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 (178) hide show
  1. package/lib/module/assets/images/btn_resend.png +0 -0
  2. package/lib/module/assets/images/index.js +2 -1
  3. package/lib/module/assets/images/index.js.map +1 -1
  4. package/lib/module/components/AttachmentPreview/FilePreview.js +1 -1
  5. package/lib/module/components/AttachmentPreview/FilePreview.js.map +1 -1
  6. package/lib/module/components/flows/inputButtons/index.js +3 -6
  7. package/lib/module/components/flows/inputButtons/index.js.map +1 -1
  8. package/lib/module/components/messages/MessageStatusIndicator.js +70 -0
  9. package/lib/module/components/messages/MessageStatusIndicator.js.map +1 -0
  10. package/lib/module/components/messages/fileMessage/index.js +1 -1
  11. package/lib/module/components/messages/fileMessage/index.js.map +1 -1
  12. package/lib/module/components/messages/imageMessage/index.js +60 -51
  13. package/lib/module/components/messages/imageMessage/index.js.map +1 -1
  14. package/lib/module/components/messages/linkMessage/index.js +17 -9
  15. package/lib/module/components/messages/linkMessage/index.js.map +1 -1
  16. package/lib/module/components/messages/mergedMessage/index.js +5 -8
  17. package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
  18. package/lib/module/components/messages/styles.js +12 -0
  19. package/lib/module/components/messages/styles.js.map +1 -1
  20. package/lib/module/components/messages/textMessage/index.js +20 -9
  21. package/lib/module/components/messages/textMessage/index.js.map +1 -1
  22. package/lib/module/components/messages/videoMessage/index.js +7 -11
  23. package/lib/module/components/messages/videoMessage/index.js.map +1 -1
  24. package/lib/module/config/uploadLimits.js +1 -1
  25. package/lib/module/config/uploadLimits.js.map +1 -1
  26. package/lib/module/core/useChatListener.js +35 -4
  27. package/lib/module/core/useChatListener.js.map +1 -1
  28. package/lib/module/core/useUserListener.js +17 -7
  29. package/lib/module/core/useUserListener.js.map +1 -1
  30. package/lib/module/hooks/message/useSendMessage.js +62 -15
  31. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  32. package/lib/module/hooks/useChatCompose.js +39 -28
  33. package/lib/module/hooks/useChatCompose.js.map +1 -1
  34. package/lib/module/hooks/useChatMessages.js +39 -8
  35. package/lib/module/hooks/useChatMessages.js.map +1 -1
  36. package/lib/module/hooks/useFileAttachment.js +1 -1
  37. package/lib/module/hooks/useFileAttachment.js.map +1 -1
  38. package/lib/module/hooks/useFileDownload.js +1 -1
  39. package/lib/module/hooks/useFileDownload.js.map +1 -1
  40. package/lib/module/hooks/useImageAttachment.js +12 -3
  41. package/lib/module/hooks/useImageAttachment.js.map +1 -1
  42. package/lib/module/index.js +1 -0
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/screens/chat-detail/ChatDetail.js +24 -1
  45. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  46. package/lib/module/screens/chat-detail/ChatListLegend.js +40 -28
  47. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  48. package/lib/module/screens/chat-detail/constants.js +3 -2
  49. package/lib/module/screens/chat-detail/constants.js.map +1 -1
  50. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +48 -15
  51. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  52. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js +98 -0
  53. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js.map +1 -0
  54. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +110 -0
  55. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -0
  56. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js +64 -0
  57. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxWrapper.js.map +1 -0
  58. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js +37 -0
  59. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js.map +1 -0
  60. package/lib/module/screens/chat-detail/messageToolbox/types.js +4 -0
  61. package/lib/module/screens/chat-detail/messageToolbox/types.js.map +1 -0
  62. package/lib/module/services/attachmentOrchestrator.js +34 -12
  63. package/lib/module/services/attachmentOrchestrator.js.map +1 -1
  64. package/lib/module/services/message.js +13 -5
  65. package/lib/module/services/message.js.map +1 -1
  66. package/lib/module/translation/resources/i18n.js +9 -3
  67. package/lib/module/translation/resources/i18n.js.map +1 -1
  68. package/lib/module/types/chat.js.map +1 -1
  69. package/lib/module/types/global.d.js +2 -0
  70. package/lib/module/types/global.d.js.map +1 -0
  71. package/lib/module/types/index.d.js +3 -0
  72. package/lib/module/types/index.d.js.map +1 -0
  73. package/lib/module/utils/UIUtils.js +37 -0
  74. package/lib/module/utils/UIUtils.js.map +1 -0
  75. package/lib/module/utils/ui.js +15 -13
  76. package/lib/module/utils/ui.js.map +1 -1
  77. package/lib/module/utils/videoThumbnailUpload.js +1 -1
  78. package/lib/module/utils/videoThumbnailUpload.js.map +1 -1
  79. package/lib/typescript/src/assets/images/index.d.ts +1 -0
  80. package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
  81. package/lib/typescript/src/components/flows/inputButtons/index.d.ts.map +1 -1
  82. package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts +9 -0
  83. package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts.map +1 -0
  84. package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
  85. package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -1
  86. package/lib/typescript/src/components/messages/linkMessage/index.d.ts +3 -8
  87. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
  88. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
  89. package/lib/typescript/src/components/messages/styles.d.ts +15 -3
  90. package/lib/typescript/src/components/messages/styles.d.ts.map +1 -1
  91. package/lib/typescript/src/components/messages/textMessage/index.d.ts +2 -8
  92. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
  93. package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -1
  94. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  95. package/lib/typescript/src/core/useUserListener.d.ts.map +1 -1
  96. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -0
  97. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  98. package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
  99. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
  100. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
  101. package/lib/typescript/src/index.d.ts +1 -0
  102. package/lib/typescript/src/index.d.ts.map +1 -1
  103. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  104. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
  105. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  106. package/lib/typescript/src/screens/chat-detail/constants.d.ts +2 -2
  107. package/lib/typescript/src/screens/chat-detail/constants.d.ts.map +1 -1
  108. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +4 -5
  109. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  110. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts +11 -0
  111. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts.map +1 -0
  112. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts +10 -0
  113. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -0
  114. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts +11 -0
  115. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.d.ts.map +1 -0
  116. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts +18 -0
  117. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts.map +1 -0
  118. package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts +12 -0
  119. package/lib/typescript/src/screens/chat-detail/messageToolbox/types.d.ts.map +1 -0
  120. package/lib/typescript/src/screens/chat-detail/types.d.ts +2 -0
  121. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  122. package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
  123. package/lib/typescript/src/services/message.d.ts +7 -0
  124. package/lib/typescript/src/services/message.d.ts.map +1 -1
  125. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  126. package/lib/typescript/src/types/chat.d.ts +11 -0
  127. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  128. package/lib/typescript/src/utils/UIUtils.d.ts +4 -0
  129. package/lib/typescript/src/utils/UIUtils.d.ts.map +1 -0
  130. package/lib/typescript/src/utils/ui.d.ts +1 -12
  131. package/lib/typescript/src/utils/ui.d.ts.map +1 -1
  132. package/package.json +4 -2
  133. package/src/assets/images/btn_resend.png +0 -0
  134. package/src/assets/images/index.ts +1 -0
  135. package/src/components/AttachmentPreview/FilePreview.tsx +1 -1
  136. package/src/components/flows/inputButtons/index.tsx +3 -5
  137. package/src/components/messages/MessageStatusIndicator.tsx +82 -0
  138. package/src/components/messages/fileMessage/index.tsx +0 -2
  139. package/src/components/messages/imageMessage/index.tsx +72 -58
  140. package/src/components/messages/linkMessage/index.tsx +16 -21
  141. package/src/components/messages/mergedMessage/index.tsx +13 -18
  142. package/src/components/messages/styles.ts +12 -0
  143. package/src/components/messages/textMessage/index.tsx +20 -20
  144. package/src/components/messages/videoMessage/index.tsx +8 -11
  145. package/src/config/uploadLimits.ts +1 -1
  146. package/src/core/useChatListener.ts +38 -4
  147. package/src/core/useUserListener.ts +17 -7
  148. package/src/hooks/message/useSendMessage.ts +103 -24
  149. package/src/hooks/useChatCompose.ts +42 -33
  150. package/src/hooks/useChatMessages.ts +54 -10
  151. package/src/hooks/useFileAttachment.ts +1 -1
  152. package/src/hooks/useFileDownload.ts +1 -1
  153. package/src/hooks/useImageAttachment.ts +13 -5
  154. package/src/index.tsx +2 -0
  155. package/src/screens/chat-detail/ChatDetail.tsx +29 -0
  156. package/src/screens/chat-detail/ChatListLegend.tsx +45 -28
  157. package/src/screens/chat-detail/constants.ts +3 -2
  158. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +60 -15
  159. package/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx +114 -0
  160. package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +130 -0
  161. package/src/screens/chat-detail/messageToolbox/MessageToolboxWrapper.tsx +99 -0
  162. package/src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts +56 -0
  163. package/src/screens/chat-detail/messageToolbox/types.ts +13 -0
  164. package/src/screens/chat-detail/types.ts +2 -0
  165. package/src/services/attachmentOrchestrator.ts +45 -21
  166. package/src/services/message.ts +21 -4
  167. package/src/translation/resources/i18n.ts +11 -3
  168. package/src/types/chat.ts +6 -0
  169. package/src/types/global.d.ts +299 -0
  170. package/src/types/index.d.ts +1 -0
  171. package/src/utils/UIUtils.ts +31 -0
  172. package/src/utils/ui.ts +20 -16
  173. package/src/utils/videoThumbnailUpload.ts +1 -1
  174. package/lib/module/hooks/useVideoAttachment.js +0 -251
  175. package/lib/module/hooks/useVideoAttachment.js.map +0 -1
  176. package/lib/typescript/src/hooks/useVideoAttachment.d.ts +0 -29
  177. package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +0 -1
  178. package/src/hooks/useVideoAttachment.ts +0 -334
@@ -5,6 +5,8 @@ import { useCallback, useEffect, useRef, useState } from 'react';
5
5
  import { ChatMessageAPI } from "../services/message.js";
6
6
  import { belongsToConversation, hasNewHistoryMessages, mergeMessages } from "../utils/message.js";
7
7
  import { useMessageStore } from "../store/message.js";
8
+ import { useUserStore } from "../store/user.js";
9
+ import { useChatContext } from "../context/index.js";
8
10
  export function useChatMessages({
9
11
  conversationId,
10
12
  enabled = true,
@@ -16,7 +18,11 @@ export function useChatMessages({
16
18
  const setMessages = useMessageStore(s => s.setMessages);
17
19
  const pushNewMessage = useMessageStore(s => s.pushNewMessage);
18
20
  const reset = useMessageStore(s => s.reset);
19
- const [currentUserId, setCurrentUserId] = useState();
21
+ const {
22
+ applicationType
23
+ } = useChatContext();
24
+ const cachedUserId = useUserStore(s => s.user?.userID);
25
+ const [currentUserId, setCurrentUserId] = useState(cachedUserId);
20
26
  const [isLoading, setIsLoading] = useState(false);
21
27
  const [isLoadingEarlier, setIsLoadingEarlier] = useState(false);
22
28
  const [isLoadingNewer, setIsLoadingNewer] = useState(false);
@@ -28,19 +34,39 @@ export function useChatMessages({
28
34
  setIsLoading(true);
29
35
  setError(null);
30
36
  try {
31
- const [history, userId] = await Promise.all([ChatMessageAPI.fetchHistoryMessages(conversationId, {
32
- count: pageSize
37
+ // Fetch userId and history independently so an offline SDK state
38
+ // doesn't block reading local SQLite history.
39
+ const [historyResult, userIdResult] = await Promise.allSettled([ChatMessageAPI.fetchHistoryMessages(conversationId, {
40
+ count: pageSize,
41
+ applicationType
33
42
  }), ChatMessageAPI.getCurrentUserId()]);
34
- const initialMessages = history.messageList;
35
- setCurrentUserId(userId);
36
- setMessages(mergeMessages([], initialMessages), !history.isEnd);
37
- ChatMessageAPI.markConversationAsRead(conversationId).catch(() => undefined);
43
+ if (userIdResult.status === 'fulfilled') {
44
+ setCurrentUserId(userIdResult.value);
45
+ }
46
+ if (historyResult.status === 'fulfilled') {
47
+ const initialMessages = historyResult.value.messageList;
48
+ setMessages(mergeMessages([], initialMessages), !historyResult.value.isEnd);
49
+ ChatMessageAPI.markConversationAsRead(conversationId).catch(() => undefined);
50
+ } else {
51
+ // Fallback: try searchLocalMessages to verify local SQLite is accessible offline
52
+ console.warn('[useChatMessages] getAdvancedHistoryMessageList failed, trying searchLocalMessages fallback:', historyResult.reason);
53
+ const localResult = await ChatMessageAPI.searchLocalMessages(conversationId, {
54
+ count: pageSize
55
+ });
56
+ const localMessages = (localResult?.searchResultItems ?? []).flatMap(item => item.messageList ?? []);
57
+ console.log('[useChatMessages] searchLocalMessages fallback result:', localMessages.length, 'messages');
58
+ if (localMessages.length > 0) {
59
+ setMessages(mergeMessages([], localMessages), false);
60
+ } else {
61
+ throw historyResult.reason;
62
+ }
63
+ }
38
64
  } catch (err) {
39
65
  setError(err instanceof Error ? err : new Error(String(err)));
40
66
  } finally {
41
67
  setIsLoading(false);
42
68
  }
43
- }, [conversationId, pageSize, setMessages]);
69
+ }, [applicationType, conversationId, pageSize, setMessages]);
44
70
  const onLoadEarlier = useCallback(async () => {
45
71
  if (isLoadingEarlier || !hasMoreEarlier || !messages.length) return;
46
72
  setIsLoadingEarlier(true);
@@ -84,6 +110,11 @@ export function useChatMessages({
84
110
  }
85
111
  }, [conversationId, hasMoreNewer, isLoadingNewer, messages, pageSize, setMessages]);
86
112
  const appendIncomingMessages = useCallback(incoming => {
113
+ console.log('[Listener] OnRecvNewMessages', {
114
+ total: incoming.length,
115
+ conversationId: conversationIdRef.current,
116
+ clientMsgIDs: incoming.map(m => m.clientMsgID)
117
+ });
87
118
  const relevant = incoming.filter(message => belongsToConversation(message, conversationIdRef.current));
88
119
  if (!relevant.length) return;
89
120
  relevant.forEach(msg => pushNewMessage(msg));
@@ -1 +1 @@
1
- {"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useRef","useState","ChatMessageAPI","belongsToConversation","hasNewHistoryMessages","mergeMessages","useMessageStore","useChatMessages","conversationId","enabled","pageSize","messages","s","hasMoreEarlier","hasMoreNewer","setMessages","pushNewMessage","reset","currentUserId","setCurrentUserId","isLoading","setIsLoading","isLoadingEarlier","setIsLoadingEarlier","isLoadingNewer","setIsLoadingNewer","error","setError","conversationIdRef","current","fetchInitial","history","userId","Promise","all","fetchHistoryMessages","count","getCurrentUserId","initialMessages","messageList","isEnd","markConversationAsRead","catch","undefined","err","Error","String","onLoadEarlier","length","startClientMsgID","clientMsgID","incoming","hasNew","onLoadNewer","appendIncomingMessages","relevant","filter","message","forEach","msg","handleNewMessages","on","OnRecvNewMessages","off","refresh"],"sourceRoot":"../../../src","sources":["hooks/useChatMessages.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OpenIMSDK","OpenIMEvent","useCallback","useEffect","useRef","useState","ChatMessageAPI","belongsToConversation","hasNewHistoryMessages","mergeMessages","useMessageStore","useUserStore","useChatContext","useChatMessages","conversationId","enabled","pageSize","messages","s","hasMoreEarlier","hasMoreNewer","setMessages","pushNewMessage","reset","applicationType","cachedUserId","user","userID","currentUserId","setCurrentUserId","isLoading","setIsLoading","isLoadingEarlier","setIsLoadingEarlier","isLoadingNewer","setIsLoadingNewer","error","setError","conversationIdRef","current","fetchInitial","historyResult","userIdResult","Promise","allSettled","fetchHistoryMessages","count","getCurrentUserId","status","value","initialMessages","messageList","isEnd","markConversationAsRead","catch","undefined","console","warn","reason","localResult","searchLocalMessages","localMessages","searchResultItems","flatMap","item","log","length","err","Error","String","onLoadEarlier","history","startClientMsgID","clientMsgID","incoming","hasNew","onLoadNewer","appendIncomingMessages","total","clientMsgIDs","map","m","relevant","filter","message","forEach","msg","handleNewMessages","on","OnRecvNewMessages","off","refresh"],"sourceRoot":"../../../src","sources":["hooks/useChatMessages.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { useCallback, useState } from 'react';
4
4
  import { ImageUploadAPI } from "../services/imageUpload.js";
5
5
  import DeviceUtils from "../utils/device.js";
6
- import UIUtils from "../utils/ui.js";
6
+ import { UIUtils } from "../utils/UIUtils.js";
7
7
  import { trans } from "../translation/index.js";
8
8
  import { MAX_FILE_SIZE } from "../services/attachmentHandlers/index.js";
9
9
  const MAX_FILE_COUNT = 3;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","ImageUploadAPI","DeviceUtils","UIUtils","trans","MAX_FILE_SIZE","MAX_FILE_COUNT","useFileAttachment","selectedFiles","setSelectedFiles","updateFileStatus","id","updates","prev","map","f","uploadFile","file","isUploading","error","uploadProgress","uploaded","uploadImageFile","path","uri","startsWith","slice","filename","name","size","width","height","mime","mimeType","progress","url","Error","uploadedUrl","console","message","handleFileAttach","currentCount","length","toast","open","title","theme","picked","openFilePicker","oversized","filter","candidates","deduplicated","some","s","remaining","toAdd","newFiles","Date","now","Math","random","toString","Promise","all","handleFileRemove","clearAllFiles","isFilePreviewVisible"],"sourceRoot":"../../../src","sources":["hooks/useFileAttachment.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useState","ImageUploadAPI","DeviceUtils","UIUtils","trans","MAX_FILE_SIZE","MAX_FILE_COUNT","useFileAttachment","selectedFiles","setSelectedFiles","updateFileStatus","id","updates","prev","map","f","uploadFile","file","isUploading","error","uploadProgress","uploaded","uploadImageFile","path","uri","startsWith","slice","filename","name","size","width","height","mime","mimeType","progress","url","Error","uploadedUrl","console","message","handleFileAttach","currentCount","length","toast","open","title","theme","picked","openFilePicker","oversized","filter","candidates","deduplicated","some","s","remaining","toAdd","newFiles","Date","now","Math","random","toString","Promise","all","handleFileRemove","clearAllFiles","isFilePreviewVisible"],"sourceRoot":"../../../src","sources":["hooks/useFileAttachment.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useRef, useState } from 'react';
4
4
  import { Platform, Share } from 'react-native';
5
5
  import RNFS from 'react-native-fs';
6
6
  import FileViewer from 'react-native-file-viewer';
7
- import UIUtils from "../utils/ui.js";
7
+ import { UIUtils } from "../utils/UIUtils.js";
8
8
  import { trans } from "../translation/index.js";
9
9
  const INITIAL_STATE = {
10
10
  status: 'idle',
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","Platform","Share","RNFS","FileViewer","UIUtils","trans","INITIAL_STATE","status","progress","receivedMB","totalMB","localPath","error","CacheDir","CachesDirectoryPath","DownloadDir","OS","DownloadDirectoryPath","useFileDownload","fileName","url","state","setState","jobIdRef","cancelledRef","openFile","path","open","showOpenWithDialog","showAppsSuggestions","toast","title","theme","runDownload","destDir","destPath","current","MB","ret","downloadFile","fromUrl","toFile","res","r","bytesWritten","t","contentLength","prev","Math","round","jobId","result","promise","statusCode","Error","e","message","cancel","stopDownload","handleView","exists","searchDirs","dir","dirPath","handleDownload","cachedPath","share"],"sourceRoot":"../../../src","sources":["hooks/useFileDownload.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Platform","Share","RNFS","FileViewer","UIUtils","trans","INITIAL_STATE","status","progress","receivedMB","totalMB","localPath","error","CacheDir","CachesDirectoryPath","DownloadDir","OS","DownloadDirectoryPath","useFileDownload","fileName","url","state","setState","jobIdRef","cancelledRef","openFile","path","open","showOpenWithDialog","showAppsSuggestions","toast","title","theme","runDownload","destDir","destPath","current","MB","ret","downloadFile","fromUrl","toFile","res","r","bytesWritten","t","contentLength","prev","Math","round","jobId","result","promise","statusCode","Error","e","message","cancel","stopDownload","handleView","exists","searchDirs","dir","dirPath","handleDownload","cachedPath","share"],"sourceRoot":"../../../src","sources":["hooks/useFileDownload.ts"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useCallback, useState } from 'react';
4
4
  import DeviceUtils from "../utils/device.js";
5
- import UIUtils from "../utils/ui.js";
5
+ import { UIUtils } from "../utils/UIUtils.js";
6
6
  import { trans } from "../translation/index.js";
7
7
  import { getMimeType, isVideoFromPicker } from "../utils/imageUtils.js";
8
8
  import { UPLOAD_CONCURRENCY, UPLOAD_LIMITS } from "../config/uploadLimits.js";
@@ -50,11 +50,16 @@ export const useImageAttachment = () => {
50
50
  uploadedUrl: uploadedImage.url
51
51
  });
52
52
  } catch (error) {
53
- const msg = error instanceof Error ? error.message : trans('chat:image_upload_failed');
53
+ const msg = error instanceof Error ? error?.message : trans('chat:image_upload_failed');
54
54
  updateImageStatus(index, {
55
55
  isUploading: false,
56
56
  error: msg
57
57
  });
58
+ UIUtils.toast.open({
59
+ title: trans('chat:image_upload_failed'),
60
+ message: trans('chat:generic_error'),
61
+ theme: 'danger'
62
+ });
58
63
  }
59
64
  }, [updateImageStatus]);
60
65
  const generateVideoThumbnail = useCallback(async (index, image) => {
@@ -111,8 +116,12 @@ export const useImageAttachment = () => {
111
116
  };
112
117
  const oversizedItems = images.filter(img => !isWithinLimit(img));
113
118
  if (oversizedItems.length > 0) {
119
+ const isVideo = oversizedItems.some(isVideoFromPicker);
120
+ const maxSize = Math.floor((isVideo ? UPLOAD_LIMITS.video : UPLOAD_LIMITS.image) / 1024 / 1024);
114
121
  UIUtils.toast.open({
115
- title: trans(oversizedItems.some(isVideoFromPicker) ? 'chat:video_too_large' : 'chat:image_too_large'),
122
+ title: trans(isVideo ? 'chat:video_too_large' : 'chat:image_too_large', {
123
+ maxSize: String(maxSize)
124
+ }),
116
125
  theme: 'danger'
117
126
  });
118
127
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","DeviceUtils","UIUtils","trans","getMimeType","isVideoFromPicker","UPLOAD_CONCURRENCY","UPLOAD_LIMITS","ImageUploadAPI","VideoThumbnailUtil","pLimit","useImageAttachment","selectedImages","setSelectedImages","isImagePreviewVisible","setIsImagePreviewVisible","updateImageStatus","index","updates","prev","newImages","uploadImage","image","isUploading","error","uploadProgress","filePath","path","startsWith","replace","filename","uploadedImage","uploadImageFile","size","width","height","mime","progress","url","Error","uploadedUrl","msg","message","generateVideoThumbnail","video","videoDuration","duration","timeMs","Math","min","max","floor","baseName","thumbnail","generateThumbnail","time","quality","cacheId","Date","now","uploadedThumbnail","thumbnailUrl","thumbnailSize","__DEV__","console","warn","cleanupThumbnail","catch","handleImageAttach","multipleMode","images","openImagePicker","length","isWithinLimit","item","maxSize","oversizedItems","filter","img","toast","open","title","some","theme","finalImages","startIndex","map","Promise","all","offset","handleImageRemove","_","i","clearAllImages"],"sourceRoot":"../../../src","sources":["hooks/useImageAttachment.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useState","DeviceUtils","UIUtils","trans","getMimeType","isVideoFromPicker","UPLOAD_CONCURRENCY","UPLOAD_LIMITS","ImageUploadAPI","VideoThumbnailUtil","pLimit","useImageAttachment","selectedImages","setSelectedImages","isImagePreviewVisible","setIsImagePreviewVisible","updateImageStatus","index","updates","prev","newImages","uploadImage","image","isUploading","error","uploadProgress","filePath","path","startsWith","replace","filename","uploadedImage","uploadImageFile","size","width","height","mime","progress","url","Error","uploadedUrl","msg","message","toast","open","title","theme","generateVideoThumbnail","video","videoDuration","duration","timeMs","Math","min","max","floor","baseName","thumbnail","generateThumbnail","time","quality","cacheId","Date","now","uploadedThumbnail","thumbnailUrl","thumbnailSize","__DEV__","console","warn","cleanupThumbnail","catch","handleImageAttach","multipleMode","images","openImagePicker","length","isWithinLimit","item","maxSize","oversizedItems","filter","img","isVideo","some","String","finalImages","startIndex","map","Promise","all","offset","handleImageRemove","_","i","clearAllImages"],"sourceRoot":"../../../src","sources":["hooks/useImageAttachment.ts"],"mappings":"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","ignoreList":[]}
@@ -23,4 +23,5 @@ export { MediaViewerModal } from "./components/MediaViewerModal.js";
23
23
  export { Inbox } from "./screens/inbox/index.js";
24
24
  export { default as MediaViewerScreen } from "./screens/MediaView/index.js";
25
25
  export { ChatDetail, ChatDetailHeader, ChatComposer, ChatQuickActions, ChatAttachmentPanel, DEFAULT_Chat_QUICK_ACTIONS, DEFAULT_ATTACHMENT_ACTIONS } from "./screens/chat-detail/index.js";
26
+ export { registerUIUtils, UIUtils } from "./utils/UIUtils.js";
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ChatAPI","setAuthToken","getAuthToken","clearAuthToken","setTokenRefreshCallback","setTokenRefreshFailedCallback","refreshAuthToken","initBaseUrl","getBaseUrl","Config","useImageAttachment","useMediaViewer","initializeAttachmentHandlers","AttachmentOrchestratorService","Avatar","ThreadCard","AttachmentPreview","MediaViewerModal","Inbox","default","MediaViewerScreen","ChatDetail","ChatDetailHeader","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,SACEC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,6BAA6B,EAC7BC,gBAAgB,QACX,oBAAiB;AACxB,SAASC,WAAW,EAAEC,UAAU,QAAQ,2BAAwB;AAChE,SAASC,MAAM,QAAQ,mBAAU;AACjC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,cAAc,QAAQ,2BAAwB;AAEvD,cAAc,iBAAc;AAC5B,cAAc,wBAAqB;AACnC,cAAc,uBAAoB;AAClC,SAASC,4BAA4B,QAAQ,wCAA+B;AAC5E,SAASC,6BAA6B,QAAQ,sCAAmC;AACjF,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,iBAAiB,QAAQ,yCAAgC;AAClE,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SAASC,OAAO,IAAIC,iBAAiB,QAAQ,8BAAqB;AAClE,SACEC,UAAU,EACVC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,0BAA0B,QACrB,gCAAuB","ignoreList":[]}
1
+ {"version":3,"names":["ChatAPI","setAuthToken","getAuthToken","clearAuthToken","setTokenRefreshCallback","setTokenRefreshFailedCallback","refreshAuthToken","initBaseUrl","getBaseUrl","Config","useImageAttachment","useMediaViewer","initializeAttachmentHandlers","AttachmentOrchestratorService","Avatar","ThreadCard","AttachmentPreview","MediaViewerModal","Inbox","default","MediaViewerScreen","ChatDetail","ChatDetailHeader","ChatComposer","ChatQuickActions","ChatAttachmentPanel","DEFAULT_Chat_QUICK_ACTIONS","DEFAULT_ATTACHMENT_ACTIONS","registerUIUtils","UIUtils"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,qBAAY;AACpC,SACEC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,uBAAuB,EACvBC,6BAA6B,EAC7BC,gBAAgB,QACX,oBAAiB;AACxB,SAASC,WAAW,EAAEC,UAAU,QAAQ,2BAAwB;AAChE,SAASC,MAAM,QAAQ,mBAAU;AACjC,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,oBAAW;AACzB,cAAc,gCAA6B;AAC3C,cAAc,4BAAyB;AACvC,SAASC,kBAAkB,QAAQ,+BAA4B;AAC/D,SAASC,cAAc,QAAQ,2BAAwB;AAEvD,cAAc,iBAAc;AAC5B,cAAc,wBAAqB;AACnC,cAAc,uBAAoB;AAClC,SAASC,4BAA4B,QAAQ,wCAA+B;AAC5E,SAASC,6BAA6B,QAAQ,sCAAmC;AACjF,SAASC,MAAM,QAAQ,8BAAqB;AAC5C,SAASC,UAAU,QAAQ,kCAAyB;AACpD,SAASC,iBAAiB,QAAQ,yCAAgC;AAClE,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,KAAK,QAAQ,0BAAiB;AACvC,SAASC,OAAO,IAAIC,iBAAiB,QAAQ,8BAAqB;AAClE,SACEC,UAAU,EACVC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,0BAA0B,QACrB,gCAAuB;AAiB9B,SAASC,eAAe,EAAEC,OAAO,QAAQ,oBAAiB","ignoreList":[]}
@@ -15,6 +15,8 @@ import { ChatComposer } from "./ChatComposer.js";
15
15
  import { getConversationAvatarUri, getConversationSubtitle, getConversationTitle, shouldShowAddMember } from "./conversationHeader.utils.js";
16
16
  import { ChatDetailProvider } from "../../context/ChatDetailContext.js";
17
17
  import { normalizeUrl } from "../../utils/url.js";
18
+ // import { ChatMessageAPI } from '../../services/message';
19
+ import { MessageToolboxOverlay } from "./messageToolbox/MessageToolboxOverlay.js";
18
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
21
  const ChatDetail = /*#__PURE__*/memo(({
20
22
  conversationId,
@@ -35,6 +37,7 @@ const ChatDetail = /*#__PURE__*/memo(({
35
37
  }) => {
36
38
  const navigation = useNavigation();
37
39
  const mediaViewerRef = useRef(null);
40
+ const messageToolboxRef = useRef(null);
38
41
  const conversation = useConversation(conversationId);
39
42
  const handleBackDefault = useCallback(() => {
40
43
  navigation.goBack();
@@ -56,6 +59,18 @@ const ChatDetail = /*#__PURE__*/memo(({
56
59
  useEffect(() => {
57
60
  useConversationStore.getState().setCurrentConversation(conversationId);
58
61
  }, [conversationId]);
62
+
63
+ // useEffect(() => {
64
+ // if (!conversationId) return;
65
+ // ChatMessageAPI.searchLocalMessages(conversationId, { count: 20 })
66
+ // .then((result) => {
67
+ // console.log('[TEST searchLocalMessages] success:', result);
68
+ // })
69
+ // .catch((err) => {
70
+ // console.log('[TEST searchLocalMessages] error:', err);
71
+ // });
72
+ // }, [conversationId]);
73
+
59
74
  const resolvedTitle = title ?? getConversationTitle(conversation);
60
75
  const resolvedAvatarUri = avatarUri ?? getConversationAvatarUri(conversation);
61
76
  const resolvedAvatarFullName = avatarFullName ?? resolvedTitle;
@@ -73,6 +88,9 @@ const ChatDetail = /*#__PURE__*/memo(({
73
88
  const handlePressUrl = useCallback(url => {
74
89
  onPressUrl?.(normalizeUrl(url));
75
90
  }, [onPressUrl]);
91
+ const handleMessageLongPress = useCallback((message, rect) => {
92
+ messageToolboxRef.current?.show(message, rect);
93
+ }, []);
76
94
  return /*#__PURE__*/_jsx(ChatDetailProvider, {
77
95
  children: /*#__PURE__*/_jsxs(KContainer.Page, {
78
96
  flex: true,
@@ -102,12 +120,17 @@ const ChatDetail = /*#__PURE__*/memo(({
102
120
  isLoadingEarlier: isLoadingEarlier,
103
121
  hasMoreEarlier: hasMoreEarlier,
104
122
  onMediaPress: handleMediaPress,
105
- onPressUrl: handlePressUrl
123
+ onPressUrl: handlePressUrl,
124
+ onLongPress: handleMessageLongPress
106
125
  }), /*#__PURE__*/_jsx(ChatComposer, {
107
126
  isEmptyMessage: messages?.length === 0
108
127
  })]
109
128
  }), /*#__PURE__*/_jsx(MediaViewerModal, {
110
129
  ref: mediaViewerRef
130
+ }), /*#__PURE__*/_jsx(MessageToolboxOverlay, {
131
+ ref: messageToolboxRef,
132
+ currentUserId: currentUserId,
133
+ customMessageItemFactory: customMessageItemFactory
111
134
  })]
112
135
  })
113
136
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","useChatMessages","MediaViewerModal","useConversation","useConversationStore","ChatDetailHeader","ChatListLegend","ChatComposer","getConversationAvatarUri","getConversationSubtitle","getConversationTitle","shouldShowAddMember","ChatDetailProvider","normalizeUrl","jsx","_jsx","jsxs","_jsxs","ChatDetail","conversationId","enabled","title","subtitle","avatarUri","avatarFullName","showAddMember","getSubtitle","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","navigation","mediaViewerRef","conversation","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","currentUserId","onLoadEarlier","isLoading","isLoadingEarlier","hasMoreEarlier","getState","setCurrentConversation","resolvedTitle","resolvedAvatarUri","resolvedAvatarFullName","resolvedShowAddMember","resolvedSubtitle","undefined","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","children","Page","flex","edges","style","styles","keyboardAvoiding","behavior","onMediaPress","isEmptyMessage","length","ref","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","useChatMessages","MediaViewerModal","useConversation","useConversationStore","ChatDetailHeader","ChatListLegend","ChatComposer","getConversationAvatarUri","getConversationSubtitle","getConversationTitle","shouldShowAddMember","ChatDetailProvider","normalizeUrl","MessageToolboxOverlay","jsx","_jsx","jsxs","_jsxs","ChatDetail","conversationId","enabled","title","subtitle","avatarUri","avatarFullName","showAddMember","getSubtitle","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","navigation","mediaViewerRef","messageToolboxRef","conversation","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","currentUserId","onLoadEarlier","isLoading","isLoadingEarlier","hasMoreEarlier","getState","setCurrentConversation","resolvedTitle","resolvedAvatarUri","resolvedAvatarFullName","resolvedShowAddMember","resolvedSubtitle","undefined","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","handleMessageLongPress","message","rect","children","Page","flex","edges","style","styles","keyboardAvoiding","behavior","onMediaPress","onLongPress","isEmptyMessage","length","ref","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo, useCallback, useMemo, useEffect, useRef, useState } from 'react';
4
- import { ActivityIndicator, StyleSheet } from 'react-native';
4
+ import { StyleSheet } from 'react-native';
5
5
  import Animated, { useSharedValue, useAnimatedStyle, withSpring } from 'react-native-reanimated';
6
6
  import { LegendList } from '@legendapp/list/react-native';
7
7
  import { KContainer, KColors, KSpacingValue, KLabel } from '@droppii/libs';
@@ -13,20 +13,22 @@ import { useChatDetailContext } from "../../context/ChatDetailContext.js";
13
13
  import { getFlowInputButtonsNode } from "../../utils/flows.js";
14
14
  import { InputButtonFlow } from "../../components/flows/inputButtons/index.js";
15
15
  import { useResetFlow, useRunFlow } from "../../hooks/flows/useFlow.js";
16
+ import { useSendMessage } from "../../hooks/message/useSendMessage.js";
17
+ import { messageStyles } from "./legend/messageTypes.js";
16
18
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
19
  export const ChatListLegend = /*#__PURE__*/memo(({
18
20
  messages = [],
19
21
  currentUserId = '',
20
22
  customMessageItemFactory,
21
23
  onLoadEarlier,
22
- isLoading,
23
24
  isLoadingEarlier,
24
25
  hasMoreEarlier,
25
26
  onLoadNewer,
26
27
  isLoadingNewer,
27
28
  hasMoreNewer,
28
29
  onMediaPress,
29
- onPressUrl
30
+ onPressUrl,
31
+ onLongPress
30
32
  }) => {
31
33
  // Precompute all message data in single pass (O(n))
32
34
  const messageDataMap = useMemo(() => precomputeLegendListData(messages), [messages]);
@@ -34,6 +36,9 @@ export const ChatListLegend = /*#__PURE__*/memo(({
34
36
  isBotConversation,
35
37
  conversationFlow
36
38
  } = useChatDetailContext();
39
+ const {
40
+ retryMessage
41
+ } = useSendMessage();
37
42
  const lastMessageId = useMemo(() => {
38
43
  const last = messages[messages.length - 1];
39
44
  return last?.clientMsgID || last?.serverMsgID || null;
@@ -54,6 +59,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
54
59
  const itemHeightsRef = useRef(new Map());
55
60
  const avgItemHeightRef = useRef(120);
56
61
  const heightDebounceRef = useRef(undefined);
62
+ const rowRefsMap = useRef(new Map());
57
63
  const [showBadge, setShowBadge] = useState(false);
58
64
  const handleItemLayout = useCallback((messageId, height) => {
59
65
  itemHeightsRef.current.set(messageId, height);
@@ -69,6 +75,17 @@ export const ChatListLegend = /*#__PURE__*/memo(({
69
75
  }
70
76
  }, 100); // Batch updates every 100ms during load
71
77
  }, []);
78
+ const handleMessageLongPress = useCallback((messageId, message) => {
79
+ const node = rowRefsMap.current.get(messageId);
80
+ node?.measureInWindow((x, y, width, height) => {
81
+ onLongPress?.(message, {
82
+ x,
83
+ y,
84
+ width,
85
+ height
86
+ });
87
+ });
88
+ }, [onLongPress]);
72
89
  const onRunFlow = useCallback(payload => {
73
90
  runFlow(payload);
74
91
  }, [runFlow]);
@@ -101,7 +118,10 @@ export const ChatListLegend = /*#__PURE__*/memo(({
101
118
  children: [dayStart && /*#__PURE__*/_jsx(LegendChatDay, {
102
119
  createdAt: createdAt
103
120
  }), /*#__PURE__*/_jsxs(KContainer.View, {
104
- style: [styles.messageRow, isOutgoing ? styles.messageRowRight : styles.messageRowLeft],
121
+ ref: node => {
122
+ if (node) rowRefsMap.current.set(messageId, node);else rowRefsMap.current.delete(messageId);
123
+ },
124
+ style: isOutgoing ? messageStyles.messageRowRight : messageStyles.messageRowLeft,
105
125
  onLayout: e => handleItemLayout(messageId, e.nativeEvent.layout.height),
106
126
  children: [/*#__PURE__*/_jsx(LegendChatMessage, {
107
127
  message: message,
@@ -109,6 +129,8 @@ export const ChatListLegend = /*#__PURE__*/memo(({
109
129
  createdAtTime: createdAt,
110
130
  onMediaPress: onMediaPress,
111
131
  onPressUrl: onPressUrl,
132
+ onRetry: retryMessage,
133
+ onLongPress: onLongPress ? () => handleMessageLongPress(messageId, message) : undefined,
112
134
  customMessageItemFactory: customMessageItemFactory
113
135
  }), !!flowInputButtonsNode && /*#__PURE__*/_jsx(InputButtonFlow, {
114
136
  nodeData: flowInputButtonsNode,
@@ -127,7 +149,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
127
149
  })
128
150
  });
129
151
  }
130
- }, [currentUserId, lastMessageId, messageDataMap, isBotConversation, onMediaPress, onPressUrl, customMessageItemFactory, onResetFlow, onRunFlow, conversationFlow?.flowCurrentStep, handleItemLayout]);
152
+ }, [currentUserId, lastMessageId, messageDataMap, isBotConversation, onMediaPress, onPressUrl, onLongPress, handleMessageLongPress, customMessageItemFactory, onResetFlow, onRunFlow, conversationFlow?.flowCurrentStep, handleItemLayout, retryMessage]);
131
153
  const maintainScrollConfig = useMemo(() => ({
132
154
  animated: false,
133
155
  on: {
@@ -258,17 +280,18 @@ export const ChatListLegend = /*#__PURE__*/memo(({
258
280
  }
259
281
  };
260
282
  }, []);
261
- if (isLoading) {
262
- return /*#__PURE__*/_jsx(KContainer.View, {
263
- flex: true,
264
- center: true,
265
- background: KColors.white,
266
- children: /*#__PURE__*/_jsx(ActivityIndicator, {
267
- color: KColors.palette.primary.w400,
268
- size: "small"
269
- })
270
- });
271
- }
283
+
284
+ // if (isLoading) {
285
+ // return (
286
+ // <KContainer.View flex center background={KColors.white}>
287
+ // <ActivityIndicator
288
+ // color={KColors.palette.primary.w400}
289
+ // size="small"
290
+ // />
291
+ // </KContainer.View>
292
+ // );
293
+ // }
294
+
272
295
  return /*#__PURE__*/_jsxs(KContainer.View, {
273
296
  flex: true,
274
297
  background: KColors.white,
@@ -279,7 +302,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
279
302
  renderItem: renderItem,
280
303
  estimatedItemSize: avgItemHeightRef.current,
281
304
  keyExtractor: item => String(item.clientMsgID || item.serverMsgID),
282
- recycleItems: false,
305
+ recycleItems: true,
283
306
  extraData: `${conversationFlow?.flowCurrentStep?.id ?? ''}-${lastMessageId ?? ''}`,
284
307
  alignItemsAtEnd: true,
285
308
  maintainVisibleContentPosition: maintainVisiblePositionConfig,
@@ -324,17 +347,6 @@ const styles = StyleSheet.create({
324
347
  container: {
325
348
  position: 'relative'
326
349
  },
327
- messageRow: {
328
- width: '100%',
329
- paddingHorizontal: KSpacingValue['0.75rem'],
330
- marginBottom: KSpacingValue['0.25rem']
331
- },
332
- messageRowLeft: {
333
- alignItems: 'flex-start'
334
- },
335
- messageRowRight: {
336
- alignItems: 'flex-end'
337
- },
338
350
  content: {
339
351
  paddingVertical: KSpacingValue['0.75rem'],
340
352
  flexGrow: 1