@droppii-org/chat-mobile 0.2.24 → 0.2.25

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 (133) 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/messages/MessageStatusIndicator.js +70 -0
  7. package/lib/module/components/messages/MessageStatusIndicator.js.map +1 -0
  8. package/lib/module/components/messages/fileMessage/index.js.map +1 -1
  9. package/lib/module/components/messages/imageMessage/index.js +59 -50
  10. package/lib/module/components/messages/imageMessage/index.js.map +1 -1
  11. package/lib/module/components/messages/linkMessage/index.js +14 -6
  12. package/lib/module/components/messages/linkMessage/index.js.map +1 -1
  13. package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
  14. package/lib/module/components/messages/textMessage/index.js +14 -6
  15. package/lib/module/components/messages/textMessage/index.js.map +1 -1
  16. package/lib/module/components/messages/videoMessage/index.js.map +1 -1
  17. package/lib/module/config/uploadLimits.js +1 -1
  18. package/lib/module/config/uploadLimits.js.map +1 -1
  19. package/lib/module/core/useChatListener.js +35 -4
  20. package/lib/module/core/useChatListener.js.map +1 -1
  21. package/lib/module/core/useUserListener.js +17 -7
  22. package/lib/module/core/useUserListener.js.map +1 -1
  23. package/lib/module/hooks/message/useSendMessage.js +62 -15
  24. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  25. package/lib/module/hooks/useChatCompose.js +39 -28
  26. package/lib/module/hooks/useChatCompose.js.map +1 -1
  27. package/lib/module/hooks/useChatMessages.js +39 -8
  28. package/lib/module/hooks/useChatMessages.js.map +1 -1
  29. package/lib/module/hooks/useFileAttachment.js +1 -1
  30. package/lib/module/hooks/useFileAttachment.js.map +1 -1
  31. package/lib/module/hooks/useFileDownload.js +1 -1
  32. package/lib/module/hooks/useFileDownload.js.map +1 -1
  33. package/lib/module/hooks/useImageAttachment.js +12 -3
  34. package/lib/module/hooks/useImageAttachment.js.map +1 -1
  35. package/lib/module/index.js +1 -0
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/screens/chat-detail/ChatDetail.js +13 -0
  38. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  39. package/lib/module/screens/chat-detail/ChatListLegend.js +20 -15
  40. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  41. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +18 -13
  42. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  43. package/lib/module/services/attachmentOrchestrator.js +34 -12
  44. package/lib/module/services/attachmentOrchestrator.js.map +1 -1
  45. package/lib/module/services/message.js +13 -5
  46. package/lib/module/services/message.js.map +1 -1
  47. package/lib/module/translation/resources/i18n.js +4 -3
  48. package/lib/module/translation/resources/i18n.js.map +1 -1
  49. package/lib/module/types/chat.js.map +1 -1
  50. package/lib/module/types/global.d.js +2 -0
  51. package/lib/module/types/global.d.js.map +1 -0
  52. package/lib/module/types/index.d.js +3 -0
  53. package/lib/module/types/index.d.js.map +1 -0
  54. package/lib/module/utils/UIUtils.js +37 -0
  55. package/lib/module/utils/UIUtils.js.map +1 -0
  56. package/lib/module/utils/videoThumbnailUpload.js +1 -1
  57. package/lib/module/utils/videoThumbnailUpload.js.map +1 -1
  58. package/lib/typescript/src/assets/images/index.d.ts +1 -0
  59. package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
  60. package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts +9 -0
  61. package/lib/typescript/src/components/messages/MessageStatusIndicator.d.ts.map +1 -0
  62. package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
  63. package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -1
  64. package/lib/typescript/src/components/messages/linkMessage/index.d.ts +3 -8
  65. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
  66. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
  67. package/lib/typescript/src/components/messages/textMessage/index.d.ts +2 -8
  68. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
  69. package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -1
  70. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  71. package/lib/typescript/src/core/useUserListener.d.ts.map +1 -1
  72. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -0
  73. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  74. package/lib/typescript/src/hooks/useChatCompose.d.ts.map +1 -1
  75. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
  76. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
  77. package/lib/typescript/src/index.d.ts +1 -0
  78. package/lib/typescript/src/index.d.ts.map +1 -1
  79. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  80. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
  81. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  82. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +3 -5
  83. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  84. package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -1
  85. package/lib/typescript/src/services/message.d.ts +7 -0
  86. package/lib/typescript/src/services/message.d.ts.map +1 -1
  87. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  88. package/lib/typescript/src/types/chat.d.ts +11 -0
  89. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  90. package/lib/typescript/src/utils/UIUtils.d.ts +4 -0
  91. package/lib/typescript/src/utils/UIUtils.d.ts.map +1 -0
  92. package/package.json +2 -2
  93. package/src/assets/images/btn_resend.png +0 -0
  94. package/src/assets/images/index.ts +1 -0
  95. package/src/components/AttachmentPreview/FilePreview.tsx +1 -1
  96. package/src/components/messages/MessageStatusIndicator.tsx +82 -0
  97. package/src/components/messages/fileMessage/index.tsx +0 -1
  98. package/src/components/messages/imageMessage/index.tsx +71 -57
  99. package/src/components/messages/linkMessage/index.tsx +13 -19
  100. package/src/components/messages/mergedMessage/index.tsx +0 -1
  101. package/src/components/messages/textMessage/index.tsx +13 -18
  102. package/src/components/messages/videoMessage/index.tsx +0 -1
  103. package/src/config/uploadLimits.ts +1 -1
  104. package/src/core/useChatListener.ts +38 -4
  105. package/src/core/useUserListener.ts +17 -7
  106. package/src/hooks/message/useSendMessage.ts +103 -24
  107. package/src/hooks/useChatCompose.ts +42 -33
  108. package/src/hooks/useChatMessages.ts +54 -10
  109. package/src/hooks/useFileAttachment.ts +1 -1
  110. package/src/hooks/useFileDownload.ts +1 -1
  111. package/src/hooks/useImageAttachment.ts +13 -5
  112. package/src/index.tsx +2 -0
  113. package/src/screens/chat-detail/ChatDetail.tsx +12 -0
  114. package/src/screens/chat-detail/ChatListLegend.tsx +16 -13
  115. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +19 -12
  116. package/src/services/attachmentOrchestrator.ts +45 -21
  117. package/src/services/message.ts +21 -4
  118. package/src/translation/resources/i18n.ts +6 -3
  119. package/src/types/chat.ts +6 -0
  120. package/src/types/global.d.ts +299 -0
  121. package/src/types/index.d.ts +1 -0
  122. package/src/utils/UIUtils.ts +31 -0
  123. package/src/utils/videoThumbnailUpload.ts +1 -1
  124. package/lib/module/hooks/useVideoAttachment.js +0 -251
  125. package/lib/module/hooks/useVideoAttachment.js.map +0 -1
  126. package/lib/module/utils/ui.js +0 -17
  127. package/lib/module/utils/ui.js.map +0 -1
  128. package/lib/typescript/src/hooks/useVideoAttachment.d.ts +0 -29
  129. package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +0 -1
  130. package/lib/typescript/src/utils/ui.d.ts +0 -13
  131. package/lib/typescript/src/utils/ui.d.ts.map +0 -1
  132. package/src/hooks/useVideoAttachment.ts +0 -334
  133. package/src/utils/ui.ts +0 -19
@@ -21,30 +21,40 @@ export const useUserListener = () => {
21
21
  }
22
22
  }, [isLoggedIn, fetchAndUpdateUser]);
23
23
  const onConnecting = useCallback(() => {
24
+ console.log('[Listener] OnConnecting');
24
25
  useUserStore.getState().updateConnectStatus(LoginStatus.Logging);
25
26
  }, []);
26
27
  const onConnectSuccess = useCallback(() => {
28
+ console.log('[Listener] OnConnectSuccess');
27
29
  useUserStore.getState().updateConnectStatus(LoginStatus.Logged);
28
30
  }, []);
29
- const onConnectFailed = useCallback(() => {
30
- useUserStore.getState().updateConnectStatus(LoginStatus.Logout);
31
+ const onConnectFailed = useCallback(data => {
32
+ console.log('[Listener] OnConnectFailed', data);
31
33
  }, []);
32
- const onSyncServerStart = useCallback(() => {
34
+ const onSyncServerStart = useCallback(isSyncing => {
35
+ console.log('[Listener] OnSyncServerStart', {
36
+ isSyncing
37
+ });
33
38
  useUserStore.getState().updateSyncStatus(SyncStatus.Loading);
34
39
  }, []);
35
40
  const onSyncServerFinish = useCallback(() => {
41
+ console.log('[Listener] OnSyncServerFinish');
36
42
  useUserStore.getState().updateSyncStatus(SyncStatus.Success);
37
43
  }, []);
38
44
  const onSyncServerFailed = useCallback(() => {
45
+ console.log('[Listener] OnSyncServerFailed');
39
46
  useUserStore.getState().updateSyncStatus(SyncStatus.Failed);
40
47
  }, []);
48
+ const onUserToken = useCallback(() => {
49
+ console.log('[Listener] OnUserToken expired/invalid');
50
+ }, []);
41
51
  useEffect(() => {
42
52
  // User
43
53
  OpenIMSDK.on(OpenIMEvent.OnConnecting, onConnecting);
44
54
  OpenIMSDK.on(OpenIMEvent.OnConnectSuccess, onConnectSuccess);
45
55
  OpenIMSDK.on(OpenIMEvent.OnConnectFailed, onConnectFailed);
46
- OpenIMSDK.on(OpenIMEvent.OnUserTokenExpired, onConnectFailed);
47
- OpenIMSDK.on(OpenIMEvent.OnUserTokenInvalid, onConnectFailed);
56
+ OpenIMSDK.on(OpenIMEvent.OnUserTokenExpired, onUserToken);
57
+ OpenIMSDK.on(OpenIMEvent.OnUserTokenInvalid, onUserToken);
48
58
 
49
59
  // Sync
50
60
  OpenIMSDK.on(OpenIMEvent.OnSyncServerStart, onSyncServerStart);
@@ -55,8 +65,8 @@ export const useUserListener = () => {
55
65
  OpenIMSDK.off(OpenIMEvent.OnConnecting, onConnecting);
56
66
  OpenIMSDK.off(OpenIMEvent.OnConnectSuccess, onConnectSuccess);
57
67
  OpenIMSDK.off(OpenIMEvent.OnConnectFailed, onConnectFailed);
58
- OpenIMSDK.on(OpenIMEvent.OnUserTokenExpired, onConnectFailed);
59
- OpenIMSDK.on(OpenIMEvent.OnUserTokenInvalid, onConnectFailed);
68
+ OpenIMSDK.off(OpenIMEvent.OnUserTokenExpired, onUserToken);
69
+ OpenIMSDK.off(OpenIMEvent.OnUserTokenInvalid, onUserToken);
60
70
 
61
71
  // Sync
62
72
  OpenIMSDK.off(OpenIMEvent.OnSyncServerStart, onSyncServerStart);
@@ -1 +1 @@
1
- {"version":3,"names":["OpenIMSDK","LoginStatus","OpenIMEvent","useCallback","useEffect","useUserStore","SyncStatus","ChatAPI","useUserListener","isLoggedIn","state","connectStatus","Logged","fetchAndUpdateUser","user","getUser","getState","setUser","error","console","onConnecting","updateConnectStatus","Logging","onConnectSuccess","onConnectFailed","Logout","onSyncServerStart","updateSyncStatus","Loading","onSyncServerFinish","Success","onSyncServerFailed","Failed","on","OnConnecting","OnConnectSuccess","OnConnectFailed","OnUserTokenExpired","OnUserTokenInvalid","OnSyncServerStart","OnSyncServerFinish","OnSyncServerFailed","off"],"sourceRoot":"../../../src","sources":["core/useUserListener.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OpenIMSDK","LoginStatus","OpenIMEvent","useCallback","useEffect","useUserStore","SyncStatus","ChatAPI","useUserListener","isLoggedIn","state","connectStatus","Logged","fetchAndUpdateUser","user","getUser","getState","setUser","error","console","onConnecting","log","updateConnectStatus","Logging","onConnectSuccess","onConnectFailed","data","onSyncServerStart","isSyncing","updateSyncStatus","Loading","onSyncServerFinish","Success","onSyncServerFailed","Failed","onUserToken","on","OnConnecting","OnConnectSuccess","OnConnectFailed","OnUserTokenExpired","OnUserTokenInvalid","OnSyncServerStart","OnSyncServerFinish","OnSyncServerFailed","off"],"sourceRoot":"../../../src","sources":["core/useUserListener.ts"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,43 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback } from 'react';
4
- import { useConversationStore } from "../../store/index.js";
4
+ import { useConversationStore } from "../../store/conversation.js";
5
+ import { MessageStatus, MessageType } from '@droppii/openim-rn-client-sdk';
5
6
  import { extractUrls } from "../../utils/url.js";
6
7
  import OpenIMSDK from '@droppii/openim-rn-client-sdk';
7
8
  import { useChatContext } from "../../context/index.js";
8
9
  import { generateContentBasedOnMessageType } from "../../utils/conversation.js";
9
10
  import { useMessageStore } from "../../store/message.js";
11
+ const buildSendParams = (message, recvID, groupID, extendMessageInfo, plainText) => ({
12
+ groupID,
13
+ recvID,
14
+ message: {
15
+ ...message,
16
+ ex: JSON.stringify(extendMessageInfo) || '{}'
17
+ },
18
+ offlinePushInfo: generateOfflinePushInfo(message.contentType, plainText)
19
+ });
10
20
  export const useSendMessage = () => {
11
21
  const applicationType = useChatContext().applicationType;
12
22
  const pushNewMessage = useMessageStore(state => state.pushNewMessage);
23
+ const updateOneMessage = useMessageStore(state => state.updateOneMessage);
24
+ const deleteOneMessage = useMessageStore(state => state.deleteOneMessage);
25
+ const dispatchSend = useCallback(async (message, recvID, groupID, extendMessageInfo, plainText) => {
26
+ pushNewMessage({
27
+ ...message,
28
+ status: MessageStatus.Sending
29
+ });
30
+ try {
31
+ const sent = await OpenIMSDK.sendMessage(buildSendParams(message, recvID, groupID, extendMessageInfo, plainText));
32
+ deleteOneMessage(message.clientMsgID);
33
+ pushNewMessage(sent);
34
+ } catch {
35
+ updateOneMessage({
36
+ ...message,
37
+ status: MessageStatus.Failed
38
+ });
39
+ }
40
+ }, [pushNewMessage, updateOneMessage, deleteOneMessage]);
13
41
  const sendMessage = useCallback(async ({
14
42
  plainText,
15
43
  files,
@@ -25,8 +53,6 @@ export const useSendMessage = () => {
25
53
  for (const file of files || []) {
26
54
  if (!file) continue;
27
55
  }
28
-
29
- // Allow empty text if urlMetadata (preview link) is present
30
56
  const hasText = !!plainText && plainText.trim() !== '';
31
57
  const hasPreview = !!urlMetadata?.url;
32
58
  if (hasText || hasPreview) {
@@ -34,7 +60,6 @@ export const useSendMessage = () => {
34
60
  const isUrlMessage = urls.length > 0 || hasPreview;
35
61
  let message = null;
36
62
  if (isUrlMessage) {
37
- // Create URL message even with empty text if preview exists
38
63
  message = await createUrlTextMessage(plainText || '', urls);
39
64
  } else if (hasText) {
40
65
  message = await createTextMessage(plainText);
@@ -48,20 +73,42 @@ export const useSendMessage = () => {
48
73
  urlMetadata,
49
74
  flow
50
75
  };
51
- const successMessage = await OpenIMSDK.sendMessage({
52
- groupID: groupID || '',
53
- recvID: recvID || '',
54
- message: {
55
- ...message,
56
- ex: JSON.stringify(extendMessageInfo) || '{}'
57
- },
58
- offlinePushInfo: generateOfflinePushInfo(message.contentType, plainText || '')
76
+ await dispatchSend(message, recvID || '', groupID || '', extendMessageInfo, plainText || '');
77
+ }
78
+ }, [applicationType, dispatchSend]);
79
+ const retryMessage = useCallback(async message => {
80
+ const {
81
+ userID: recvID,
82
+ groupID
83
+ } = useConversationStore.getState().getCurrentConversation() || {};
84
+ if (!recvID && !groupID) return;
85
+ updateOneMessage({
86
+ ...message,
87
+ status: MessageStatus.Sending
88
+ });
89
+
90
+ // Attachment messages were sent via sendMessageNotOss (URL already uploaded).
91
+ // Text/URL messages use sendMessage (SDK handles upload).
92
+ const isAttachment = [MessageType.PictureMessage, MessageType.VideoMessage, MessageType.FileMessage, MessageType.MergeMessage].includes(message.contentType);
93
+ const params = {
94
+ recvID: recvID || '',
95
+ groupID: groupID || '',
96
+ message
97
+ };
98
+ try {
99
+ const sent = isAttachment ? await OpenIMSDK.sendMessageNotOss(params) : await OpenIMSDK.sendMessage(buildSendParams(message, recvID || '', groupID || '', JSON.parse(message.ex || '{}'), ''));
100
+ deleteOneMessage(message.clientMsgID);
101
+ pushNewMessage(sent);
102
+ } catch {
103
+ updateOneMessage({
104
+ ...message,
105
+ status: MessageStatus.Failed
59
106
  });
60
- pushNewMessage(successMessage);
61
107
  }
62
- }, [applicationType, pushNewMessage]);
108
+ }, [pushNewMessage, updateOneMessage, deleteOneMessage]);
63
109
  return {
64
- sendMessage
110
+ sendMessage,
111
+ retryMessage
65
112
  };
66
113
  };
67
114
  const generateOfflinePushInfo = (contentType, plainText) => {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useConversationStore","extractUrls","OpenIMSDK","useChatContext","generateContentBasedOnMessageType","useMessageStore","useSendMessage","applicationType","pushNewMessage","state","sendMessage","plainText","files","urlMetadata","flow","userID","recvID","groupID","getState","getCurrentConversation","messageList","file","hasText","trim","hasPreview","url","urls","isUrlMessage","length","message","createUrlTextMessage","createTextMessage","push","extendMessageInfo","successMessage","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","contentType","conversationData","title","showName","desc","icon","faceURL","conversationId","conversationID","iOSPushSound","iOSBadgeCount","text","textMessage","Date","getTime","toString","then","data","catch","errCode","errMsg","console","error","urlTextMessage"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useConversationStore","MessageStatus","MessageType","extractUrls","OpenIMSDK","useChatContext","generateContentBasedOnMessageType","useMessageStore","buildSendParams","message","recvID","groupID","extendMessageInfo","plainText","ex","JSON","stringify","offlinePushInfo","generateOfflinePushInfo","contentType","useSendMessage","applicationType","pushNewMessage","state","updateOneMessage","deleteOneMessage","dispatchSend","status","Sending","sent","sendMessage","clientMsgID","Failed","files","urlMetadata","flow","userID","getState","getCurrentConversation","messageList","file","hasText","trim","hasPreview","url","urls","isUrlMessage","length","createUrlTextMessage","createTextMessage","push","retryMessage","isAttachment","PictureMessage","VideoMessage","FileMessage","MergeMessage","includes","params","sendMessageNotOss","parse","conversationData","title","showName","desc","icon","faceURL","conversationId","conversationID","iOSPushSound","iOSBadgeCount","text","textMessage","Date","getTime","toString","then","data","catch","errCode","errMsg","console","error","urlTextMessage"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,oBAAoB,QAAQ,6BAA0B;AAE/D,SAASC,aAAa,EAAEC,WAAW,QAAQ,+BAA+B;AAC1E,SAASC,WAAW,QAAQ,oBAAiB;AAC7C,OAAOC,SAAS,MAAM,+BAA+B;AAErD,SAASC,cAAc,QAAQ,wBAAe;AAC9C,SAASC,iCAAiC,QAAQ,6BAA0B;AAC5E,SAASC,eAAe,QAAQ,wBAAqB;AAKrD,MAAMC,eAAe,GAAGA,CACtBC,OAAoB,EACpBC,MAAc,EACdC,OAAe,EACfC,iBAAiC,EACjCC,SAAiB,MACb;EACJF,OAAO;EACPD,MAAM;EACND,OAAO,EAAE;IAAE,GAAGA,OAAO;IAAEK,EAAE,EAAEC,IAAI,CAACC,SAAS,CAACJ,iBAAiB,CAAC,IAAI;EAAK,CAAC;EACtEK,eAAe,EAAEC,uBAAuB,CAACT,OAAO,CAACU,WAAW,EAAEN,SAAS;AACzE,CAAC,CAAC;AAEF,OAAO,MAAMO,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMC,eAAe,GAAGhB,cAAc,CAAC,CAAC,CAACgB,eAAe;EACxD,MAAMC,cAAc,GAAGf,eAAe,CAAEgB,KAAK,IAAKA,KAAK,CAACD,cAAc,CAAC;EACvE,MAAME,gBAAgB,GAAGjB,eAAe,CAAEgB,KAAK,IAAKA,KAAK,CAACC,gBAAgB,CAAC;EAC3E,MAAMC,gBAAgB,GAAGlB,eAAe,CAAEgB,KAAK,IAAKA,KAAK,CAACE,gBAAgB,CAAC;EAC3E,MAAMC,YAAY,GAAG3B,WAAW,CAC9B,OACEU,OAAoB,EACpBC,MAAc,EACdC,OAAe,EACfC,iBAAiC,EACjCC,SAAiB,KACd;IACHS,cAAc,CAAC;MAAE,GAAGb,OAAO;MAAEkB,MAAM,EAAE1B,aAAa,CAAC2B;IAAQ,CAAC,CAAC;IAE7D,IAAI;MACF,MAAMC,IAAI,GAAG,MAAMzB,SAAS,CAAC0B,WAAW,CACtCtB,eAAe,CACbC,OAAO,EACPC,MAAM,EACNC,OAAO,EACPC,iBAAiB,EACjBC,SACF,CACF,CAAC;MACDY,gBAAgB,CAAChB,OAAO,CAACsB,WAAW,CAAC;MACrCT,cAAc,CAACO,IAAI,CAAC;IACtB,CAAC,CAAC,MAAM;MACNL,gBAAgB,CAAC;QAAE,GAAGf,OAAO;QAAEkB,MAAM,EAAE1B,aAAa,CAAC+B;MAAO,CAAC,CAAC;IAChE;EACF,CAAC,EACD,CAACV,cAAc,EAAEE,gBAAgB,EAAEC,gBAAgB,CACrD,CAAC;EAED,MAAMK,WAAW,GAAG/B,WAAW,CAC7B,OAAO;IACLc,SAAS;IACToB,KAAK;IACLC,WAAW;IACXC;EAMF,CAAC,KAAK;IACJ,MAAM;MAAEC,MAAM,EAAE1B,MAAM;MAAEC;IAAQ,CAAC,GAC/BX,oBAAoB,CAACqC,QAAQ,CAAC,CAAC,CAACC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC5B,MAAM,IAAI,CAACC,OAAO,EAAE;IAEzB,MAAM4B,WAA0B,GAAG,EAAE;IAErC,KAAK,MAAMC,IAAI,IAAIP,KAAK,IAAI,EAAE,EAAE;MAC9B,IAAI,CAACO,IAAI,EAAE;IACb;IAEA,MAAMC,OAAO,GAAG,CAAC,CAAC5B,SAAS,IAAIA,SAAS,CAAC6B,IAAI,CAAC,CAAC,KAAK,EAAE;IACtD,MAAMC,UAAU,GAAG,CAAC,CAACT,WAAW,EAAEU,GAAG;IAErC,IAAIH,OAAO,IAAIE,UAAU,EAAE;MACzB,MAAME,IAAI,GAAGJ,OAAO,GAAGtC,WAAW,CAACU,SAAS,CAAC,GAAG,EAAE;MAClD,MAAMiC,YAAY,GAAGD,IAAI,CAACE,MAAM,GAAG,CAAC,IAAIJ,UAAU;MAClD,IAAIlC,OAA2B,GAAG,IAAI;MAEtC,IAAIqC,YAAY,EAAE;QAChBrC,OAAO,GAAG,MAAMuC,oBAAoB,CAACnC,SAAS,IAAI,EAAE,EAAEgC,IAAI,CAAC;MAC7D,CAAC,MAAM,IAAIJ,OAAO,EAAE;QAClBhC,OAAO,GAAG,MAAMwC,iBAAiB,CAACpC,SAAS,CAAC;MAC9C;MAEA,IAAI,CAACJ,OAAO,EAAE;MACd8B,WAAW,CAACW,IAAI,CAACzC,OAAO,CAAC;IAC3B;IAEA,KAAK,MAAMA,OAAO,IAAI8B,WAAW,EAAE;MACjC,MAAM3B,iBAAiC,GAAG;QACxCS,eAAe;QACfa,WAAW;QACXC;MACF,CAAC;MAED,MAAMT,YAAY,CAChBjB,OAAO,EACPC,MAAM,IAAI,EAAE,EACZC,OAAO,IAAI,EAAE,EACbC,iBAAiB,EACjBC,SAAS,IAAI,EACf,CAAC;IACH;EACF,CAAC,EACD,CAACQ,eAAe,EAAEK,YAAY,CAChC,CAAC;EAED,MAAMyB,YAAY,GAAGpD,WAAW,CAC9B,MAAOU,OAAoB,IAAK;IAC9B,MAAM;MAAE2B,MAAM,EAAE1B,MAAM;MAAEC;IAAQ,CAAC,GAC/BX,oBAAoB,CAACqC,QAAQ,CAAC,CAAC,CAACC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC5B,MAAM,IAAI,CAACC,OAAO,EAAE;IAEzBa,gBAAgB,CAAC;MAAE,GAAGf,OAAO;MAAEkB,MAAM,EAAE1B,aAAa,CAAC2B;IAAQ,CAAC,CAAC;;IAE/D;IACA;IACA,MAAMwB,YAAY,GAChB,CACElD,WAAW,CAACmD,cAAc,EAC1BnD,WAAW,CAACoD,YAAY,EACxBpD,WAAW,CAACqD,WAAW,EACvBrD,WAAW,CAACsD,YAAY,CACzB,CACDC,QAAQ,CAAChD,OAAO,CAACU,WAAW,CAAC;IAE/B,MAAMuC,MAAM,GAAG;MACbhD,MAAM,EAAEA,MAAM,IAAI,EAAE;MACpBC,OAAO,EAAEA,OAAO,IAAI,EAAE;MACtBF;IACF,CAAC;IAED,IAAI;MACF,MAAMoB,IAAI,GAAGuB,YAAY,GACrB,MAAMhD,SAAS,CAACuD,iBAAiB,CAACD,MAAM,CAAC,GACzC,MAAMtD,SAAS,CAAC0B,WAAW,CACzBtB,eAAe,CACbC,OAAO,EACPC,MAAM,IAAI,EAAE,EACZC,OAAO,IAAI,EAAE,EACbI,IAAI,CAAC6C,KAAK,CAACnD,OAAO,CAACK,EAAE,IAAI,IAAI,CAAC,EAC9B,EACF,CACF,CAAC;MACLW,gBAAgB,CAAChB,OAAO,CAACsB,WAAW,CAAC;MACrCT,cAAc,CAACO,IAAI,CAAC;IACtB,CAAC,CAAC,MAAM;MACNL,gBAAgB,CAAC;QAAE,GAAGf,OAAO;QAAEkB,MAAM,EAAE1B,aAAa,CAAC+B;MAAO,CAAC,CAAC;IAChE;EACF,CAAC,EACD,CAACV,cAAc,EAAEE,gBAAgB,EAAEC,gBAAgB,CACrD,CAAC;EAED,OAAO;IACLK,WAAW;IACXqB;EACF,CAAC;AACH,CAAC;AAED,MAAMjC,uBAAuB,GAAGA,CAC9BC,WAAwB,EACxBN,SAAiB,KACd;EACH,MAAMgD,gBAAgB,GAAG7D,oBAAoB,EACzCqC,QAAQ,GAAG,CAAC,EACZC,sBAAsB,CAAC,CAAC;EAC5B,MAAMwB,KAAK,GAAGD,gBAAgB,EAAEE,QAAQ,IAAI,SAAS;EACrD,MAAMC,IAAI,GAAG1D,iCAAiC,CAACa,WAAW,EAAEN,SAAS,CAAC;EACtE,OAAO;IACLiD,KAAK;IACLE,IAAI;IACJlD,EAAE,EAAEC,IAAI,CAACC,SAAS,CAAC;MACjBiD,IAAI,EAAEJ,gBAAgB,EAAEK,OAAO,IAAI,EAAE;MACrCC,cAAc,EAAEN,gBAAgB,EAAEO,cAAc,IAAI,EAAE;MACtDN,KAAK;MACLE;IACF,CAAC,CAAC;IACFK,YAAY,EAAE,SAAS;IACvBC,aAAa,EAAE;EACjB,CAAC;AACH,CAAC;AAED,OAAO,MAAMrB,iBAAiB,GAAG,MAAOsB,IAAY,IAAK;EACvD,IAAIC,WAAW,GAAG,MAAMpE,SAAS,CAAC6C,iBAAiB,CACjDsB,IAAI,EACJ,IAAIE,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAChC,CAAC,CACEC,IAAI,CAAEC,IAAI,IAAK;IACd,OAAOA,IAAI;EACb,CAAC,CAAC,CACDC,KAAK,CAAC,CAAC;IAAEC,OAAO;IAAEC;EAAO,CAAC,KAAK;IAC9BC,OAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEH,OAAO,EAAEC,MAAM,CAAC;IACnD,OAAO,IAAI;EACb,CAAC,CAAC;EACJ,OAAOR,WAAW;AACpB,CAAC;AAED,OAAO,MAAMxB,oBAAoB,GAAG,MAAAA,CAAOuB,IAAY,EAAE1B,IAAc,KAAK;EAC1E,IAAIsC,cAAc,GAAG,MAAM/E,SAAS,CAAC4C,oBAAoB,CACvDuB,IAAI,EACJ1B,IAAI,EACJ,IAAI4B,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAChC,CAAC,CACEC,IAAI,CAAEC,IAAI,IAAK;IACd,OAAOA,IAAI;EACb,CAAC,CAAC,CACDC,KAAK,CAAC,CAAC;IAAEC,OAAO;IAAEC;EAAO,CAAC,KAAK;IAC9BC,OAAO,CAACC,KAAK,CAAC,sBAAsB,EAAEH,OAAO,EAAEC,MAAM,CAAC;IACtD,OAAO,IAAI;EACb,CAAC,CAAC;EACJ,OAAOG,cAAc;AACvB,CAAC","ignoreList":[]}
@@ -40,10 +40,13 @@ export function useChatCompose() {
40
40
  const uploadedImages = actualImages.filter(img => img.uploadedUrl);
41
41
  const uploadedVideos = videos.filter(v => v.uploadedUrl);
42
42
 
43
- // Generate + upload thumbnails for gallery videos
43
+ // Thumbnails are generated + uploaded at pick time (useImageAttachment).
44
+ // Only fall back to generating here for videos that don't already have one
45
+ // (e.g. thumbnail generation failed or hadn't finished before send).
46
+ const videosMissingThumbnail = uploadedVideos.filter(v => !v.thumbnailUrl);
44
47
  let videoThumbnails = {};
45
- if (uploadedVideos.length > 0) {
46
- videoThumbnails = await generateAndUploadVideoThumbnails(uploadedVideos);
48
+ if (videosMissingThumbnail.length > 0) {
49
+ videoThumbnails = await generateAndUploadVideoThumbnails(videosMissingThumbnail);
47
50
  }
48
51
 
49
52
  // Send images + videos
@@ -68,45 +71,53 @@ export function useChatCompose() {
68
71
  error: vid.error,
69
72
  isUploading: vid.isUploading,
70
73
  uploadedUrl: vid.uploadedUrl,
71
- thumbnailUrl: thumb?.url,
72
- thumbnailSize: thumb?.size
74
+ thumbnailUrl: vid.thumbnailUrl ?? thumb?.url,
75
+ thumbnailSize: vid.thumbnailSize ?? thumb?.size
73
76
  };
74
77
  })];
75
- const success = await sendAttachments(attachmentItems, undefined);
76
- if (success) {
77
- // Release all picker temp files to free native memory.
78
- ImagePicker.clean().catch(() => {});
79
- clearAllImages();
80
- }
78
+
79
+ // Clear composer immediately — message is already in chat list with Sending status.
80
+ // User retries from the bubble, not the composer.
81
+ ImagePicker.clean().catch(() => {});
82
+ clearAllImages();
83
+ // Awaited so files (lower priority per attachment-priority config)
84
+ // only start sending after images/videos are done.
85
+ await sendAttachments(attachmentItems, undefined);
81
86
  }
82
87
 
83
- // Send each file as its own message
88
+ // Send each file as its own message (never merged), in priority order
89
+ // after images/videos, one at a time to preserve pick order.
84
90
  const uploadedFiles = selectedFiles.filter(f => f.uploadedUrl && !f.error);
85
- for (const file of uploadedFiles) {
86
- await sendAttachments([{
87
- type: 'file',
88
- file: {
89
- path: file.uri,
90
- filename: file.name,
91
- size: file.size
92
- },
93
- uploadProgress: 100,
94
- error: null,
95
- isUploading: false,
96
- uploadedUrl: file.uploadedUrl
97
- }], undefined);
91
+ if (uploadedFiles.length > 0) {
92
+ clearAllFiles();
93
+ for (const file of uploadedFiles) {
94
+ await sendAttachments([{
95
+ type: 'file',
96
+ file: {
97
+ path: file.uri,
98
+ filename: file.name,
99
+ size: file.size
100
+ },
101
+ uploadProgress: 100,
102
+ error: null,
103
+ isUploading: false,
104
+ uploadedUrl: file.uploadedUrl
105
+ }], undefined);
106
+ }
98
107
  }
99
- if (uploadedFiles.length > 0) clearAllFiles();
100
108
  }
101
109
 
102
110
  // --- Text / link preview ---
103
111
  if (text.trim() || urlMeta) {
112
+ const plainText = text.trim();
113
+ // Clear composer immediately — message is already in chat list with Sending status.
114
+ // User retries from the bubble, not the composer.
115
+ setText('');
104
116
  await sendMessage({
105
117
  files: [],
106
- plainText: text.trim(),
118
+ plainText,
107
119
  urlMetadata: urlMeta
108
120
  });
109
- setText('');
110
121
  }
111
122
  }, [imageAttachment, fileAttachment, linkPreview.isVisible, linkPreview.metadata, sendAttachments, sendMessage, text]);
112
123
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useState","ImagePicker","useImageAttachment","useFileAttachment","useLinkPreview","useSendAttachment","useSendMessage","isVideoFromPicker","generateAndUploadVideoThumbnails","useChatCompose","text","setText","imageAttachment","fileAttachment","linkPreview","send","sendAttachments","sendMessage","isUploading","selectedImages","some","img","selectedFiles","f","error","canSend","trim","length","clearAllImages","clearAllFiles","urlMeta","isVisible","metadata","undefined","actualImages","filter","image","videos","uploadedImages","uploadedUrl","uploadedVideos","v","videoThumbnails","attachmentItems","map","type","vid","vidIdx","videoId","thumb","video","path","filename","size","width","height","duration","uploadProgress","thumbnailUrl","url","thumbnailSize","success","clean","catch","uploadedFiles","file","uri","name","files","plainText","urlMetadata","isImagePreviewVisible","isFilePreviewVisible","addImages","handleImageAttach","addFiles","handleFileAttach","removeImage","handleImageRemove","removeFile","handleFileRemove","showLinkPreview","isMetadataLoading","isLoading","dismissPreview","dismiss","clearAll"],"sourceRoot":"../../../src","sources":["hooks/useChatCompose.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useState","ImagePicker","useImageAttachment","useFileAttachment","useLinkPreview","useSendAttachment","useSendMessage","isVideoFromPicker","generateAndUploadVideoThumbnails","useChatCompose","text","setText","imageAttachment","fileAttachment","linkPreview","send","sendAttachments","sendMessage","isUploading","selectedImages","some","img","selectedFiles","f","error","canSend","trim","length","clearAllImages","clearAllFiles","urlMeta","isVisible","metadata","undefined","actualImages","filter","image","videos","uploadedImages","uploadedUrl","uploadedVideos","v","videosMissingThumbnail","thumbnailUrl","videoThumbnails","attachmentItems","map","type","vid","vidIdx","videoId","thumb","video","path","filename","size","width","height","duration","uploadProgress","url","thumbnailSize","clean","catch","uploadedFiles","file","uri","name","plainText","files","urlMetadata","isImagePreviewVisible","isFilePreviewVisible","addImages","handleImageAttach","addFiles","handleFileAttach","removeImage","handleImageRemove","removeFile","handleFileRemove","showLinkPreview","isMetadataLoading","isLoading","dismissPreview","dismiss","clearAll"],"sourceRoot":"../../../src","sources":["hooks/useChatCompose.ts"],"mappings":"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","ignoreList":[]}
@@ -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":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SAASC,cAAc,QAAQ,4BAAyB;AACxD,OAAOC,WAAW,MAAM,oBAAiB;AACzC,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,KAAK,QAAQ,yBAAgB;AACtC,SAASC,aAAa,QAAQ,yCAAgC;AAE9D,MAAMC,cAAc,GAAG,CAAC;AAsBxB,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAA+B;EAC9D,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGT,QAAQ,CAChD,EACF,CAAC;EAED,MAAMU,gBAAgB,GAAGX,WAAW,CAClC,CAACY,EAAU,EAAEC,OAAkD,KAAK;IAClEH,gBAAgB,CAAEI,IAAI,IACpBA,IAAI,CAACC,GAAG,CAAEC,CAAC,IAAMA,CAAC,CAACJ,EAAE,KAAKA,EAAE,GAAG;MAAE,GAAGI,CAAC;MAAE,GAAGH;IAAQ,CAAC,GAAGG,CAAE,CAC1D,CAAC;EACH,CAAC,EACD,EACF,CAAC;EAED,MAAMC,UAAU,GAAGjB,WAAW,CAC5B,MAAOkB,IAA0B,IAAK;IACpC,IAAI;MACFP,gBAAgB,CAACO,IAAI,CAACN,EAAE,EAAE;QACxBO,WAAW,EAAE,IAAI;QACjBC,KAAK,EAAE,IAAI;QACXC,cAAc,EAAE;MAClB,CAAC,CAAC;MAEF,MAAMC,QAAQ,GAAG,MAAMpB,cAAc,CAACqB,eAAe,CACnD;QACEC,IAAI,EAAEN,IAAI,CAACO,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,GAAGR,IAAI,CAACO,GAAG,CAACE,KAAK,CAAC,CAAC,CAAC,GAAGT,IAAI,CAACO,GAAG;QACnEG,QAAQ,EAAEV,IAAI,CAACW,IAAI;QACnBC,IAAI,EAAEZ,IAAI,CAACY,IAAI;QACfC,KAAK,EAAE,CAAC;QACRC,MAAM,EAAE,CAAC;QACTC,IAAI,EAAEf,IAAI,CAACgB;MACb,CAAC,EACAC,QAAQ,IAAKxB,gBAAgB,CAACO,IAAI,CAACN,EAAE,EAAE;QAAES,cAAc,EAAEc;MAAS,CAAC,CACtE,CAAC;MAED,IAAI,CAACb,QAAQ,EAAEc,GAAG,EAAE,MAAM,IAAIC,KAAK,CAAC,6BAA6B,CAAC;MAElE1B,gBAAgB,CAACO,IAAI,CAACN,EAAE,EAAE;QACxBO,WAAW,EAAE,KAAK;QAClBE,cAAc,EAAE,GAAG;QACnBiB,WAAW,EAAEhB,QAAQ,CAACc;MACxB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOhB,KAAU,EAAE;MACnB;MACAmB,OAAO,CAACnB,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MACnDT,gBAAgB,CAACO,IAAI,CAACN,EAAE,EAAE;QACxBO,WAAW,EAAE,KAAK;QAClBC,KAAK,EAAEA,KAAK,EAAEoB,OAAO,IAAInC,KAAK,CAAC,yBAAyB;MAC1D,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACM,gBAAgB,CACnB,CAAC;EAED,MAAM8B,gBAAgB,GAAGzC,WAAW,CAAC,YAAY;IAC/C,IAAI;MACF,MAAM0C,YAAY,GAAGjC,aAAa,CAACkC,MAAM;MACzC,IAAID,YAAY,IAAInC,cAAc,EAAE;QAClCH,OAAO,CAACwC,KAAK,CAACC,IAAI,CAAC;UACjBC,KAAK,EAAEzC,KAAK,CAAC,qBAAqB,CAAC;UACnC0C,KAAK,EAAE;QACT,CAAC,CAAC;QACF;MACF;MAEA,MAAMC,MAAM,GAAG,MAAM7C,WAAW,CAAC8C,cAAc,CAAC,IAAI,CAAC;MACrD,IAAI,CAACD,MAAM,IAAIA,MAAM,CAACL,MAAM,KAAK,CAAC,EAAE;MAEpC,MAAMO,SAAS,GAAGF,MAAM,CAACG,MAAM,CAAEnC,CAAC,IAAKA,CAAC,CAACc,IAAI,GAAGxB,aAAa,CAAC;MAC9D,IAAI8C,UAAU,GAAGJ,MAAM;MACvB,IAAIE,SAAS,CAACP,MAAM,GAAG,CAAC,EAAE;QACxBvC,OAAO,CAACwC,KAAK,CAACC,IAAI,CAAC;UACjBC,KAAK,EAAEzC,KAAK,CAAC,qBAAqB,CAAC;UACnC0C,KAAK,EAAE;QACT,CAAC,CAAC;QACFK,UAAU,GAAGJ,MAAM,CAACG,MAAM,CAAEnC,CAAC,IAAKA,CAAC,CAACc,IAAI,IAAIxB,aAAa,CAAC;QAC1D,IAAI8C,UAAU,CAACT,MAAM,KAAK,CAAC,EAAE;MAC/B;MAEA,MAAMU,YAAY,GAAGD,UAAU,CAACD,MAAM,CACnCnC,CAAC,IACA,CAACP,aAAa,CAAC6C,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAC1B,IAAI,KAAKb,CAAC,CAACa,IAAI,IAAI0B,CAAC,CAACzB,IAAI,KAAKd,CAAC,CAACc,IAAI,CACrE,CAAC;MACD,IAAIuB,YAAY,CAACV,MAAM,KAAK,CAAC,EAAE;MAE/B,MAAMa,SAAS,GAAGjD,cAAc,GAAGmC,YAAY;MAC/C,MAAMe,KAAK,GAAGJ,YAAY,CAAC1B,KAAK,CAAC,CAAC,EAAE6B,SAAS,CAAC;MAE9C,IAAIC,KAAK,CAACd,MAAM,GAAGU,YAAY,CAACV,MAAM,EAAE;QACtCvC,OAAO,CAACwC,KAAK,CAACC,IAAI,CAAC;UACjBC,KAAK,EAAEzC,KAAK,CAAC,qBAAqB,CAAC;UACnC0C,KAAK,EAAE;QACT,CAAC,CAAC;MACJ;MAEA,MAAMW,QAAgC,GAAGD,KAAK,CAAC1C,GAAG,CAAEC,CAAC,KAAM;QACzDJ,EAAE,EAAE,QAAQ+C,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACpC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC/DF,GAAG,EAAET,CAAC,CAACS,GAAG;QACVI,IAAI,EAAEb,CAAC,CAACa,IAAI;QACZC,IAAI,EAAEd,CAAC,CAACc,IAAI;QACZI,QAAQ,EAAElB,CAAC,CAACkB,QAAQ;QACpBb,cAAc,EAAE,CAAC;QACjBD,KAAK,EAAE,IAAI;QACXD,WAAW,EAAE;MACf,CAAC,CAAC,CAAC;MAEHT,gBAAgB,CAAEI,IAAI,IAAK,CAAC,GAAGA,IAAI,EAAE,GAAG4C,QAAQ,CAAC,CAAC;MAElD,MAAMM,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC3C,GAAG,CAAEC,CAAC,IAAKC,UAAU,CAACD,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,OAAOI,KAAU,EAAE;MACnBhB,OAAO,CAACwC,KAAK,CAACC,IAAI,CAAC;QACjBC,KAAK,EAAEzC,KAAK,CAAC,uBAAuB,CAAC;QACrCmC,OAAO,EAAEpB,KAAK,YAAYiB,KAAK,GAAGjB,KAAK,CAACoB,OAAO,GAAG,eAAe;QACjEO,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACtC,aAAa,EAAEQ,UAAU,CAAC,CAAC;EAE/B,MAAMiD,gBAAgB,GAAGlE,WAAW,CAAEY,EAAU,IAAK;IACnDF,gBAAgB,CAAEI,IAAI,IAAKA,IAAI,CAACqC,MAAM,CAAEnC,CAAC,IAAKA,CAAC,CAACJ,EAAE,KAAKA,EAAE,CAAC,CAAC;EAC7D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMuD,aAAa,GAAGnE,WAAW,CAAC,MAAM;IACtCU,gBAAgB,CAAC,EAAE,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLD,aAAa;IACb2D,oBAAoB,EAAE3D,aAAa,CAACkC,MAAM,GAAG,CAAC;IAC9CF,gBAAgB;IAChByB,gBAAgB;IAChBC;EACF,CAAC;AACH,CAAC","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
  }