@droppii-org/chat-mobile 0.2.6 → 0.2.8

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 (398) hide show
  1. package/lib/module/components/AttachmentPreview.js +250 -0
  2. package/lib/module/components/AttachmentPreview.js.map +1 -0
  3. package/lib/module/components/MediaViewer/index.js +2 -0
  4. package/lib/module/components/MediaViewer/index.js.map +1 -0
  5. package/lib/module/components/MediaViewerModal.js +57 -0
  6. package/lib/module/components/MediaViewerModal.js.map +1 -0
  7. package/lib/module/components/MergedImageGrid.js +173 -0
  8. package/lib/module/components/MergedImageGrid.js.map +1 -0
  9. package/lib/module/components/ThreadCard/AvatarSection.js +4 -4
  10. package/lib/module/components/ThreadCard/AvatarSection.js.map +1 -1
  11. package/lib/module/components/ThreadCard/NamePrefixIcon.js +13 -16
  12. package/lib/module/components/ThreadCard/NamePrefixIcon.js.map +1 -1
  13. package/lib/module/components/ThreadCard/ThreadCard.js +13 -33
  14. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  15. package/lib/module/components/ThreadCard/thread-card.utils.js +80 -4
  16. package/lib/module/components/ThreadCard/thread-card.utils.js.map +1 -1
  17. package/lib/module/components/messages/fileMessage/index.js +26 -0
  18. package/lib/module/components/messages/fileMessage/index.js.map +1 -0
  19. package/lib/module/components/messages/imageMessage/index.js +118 -0
  20. package/lib/module/components/messages/imageMessage/index.js.map +1 -0
  21. package/lib/module/components/messages/linkMessage/index.js +122 -0
  22. package/lib/module/components/messages/linkMessage/index.js.map +1 -0
  23. package/lib/module/components/messages/mergedMessage/index.js +37 -0
  24. package/lib/module/components/messages/mergedMessage/index.js.map +1 -0
  25. package/lib/module/components/messages/styles.js +41 -0
  26. package/lib/module/components/messages/styles.js.map +1 -0
  27. package/lib/module/components/messages/textMessage/index.js +38 -0
  28. package/lib/module/components/messages/textMessage/index.js.map +1 -0
  29. package/lib/module/components/messages/types.js +14 -0
  30. package/lib/module/components/messages/types.js.map +1 -0
  31. package/lib/module/components/messages/videoMessage/index.js +110 -0
  32. package/lib/module/components/messages/videoMessage/index.js.map +1 -0
  33. package/lib/module/config/api-endpoints.js +66 -0
  34. package/lib/module/config/api-endpoints.js.map +1 -0
  35. package/lib/module/config/attachment-priority.js +81 -0
  36. package/lib/module/config/attachment-priority.js.map +1 -0
  37. package/lib/module/config/configuration.js +50 -0
  38. package/lib/module/config/configuration.js.map +1 -0
  39. package/lib/module/config/index.js +22 -0
  40. package/lib/module/config/index.js.map +1 -0
  41. package/lib/module/context/ChatContext.js +7 -6
  42. package/lib/module/context/ChatContext.js.map +1 -1
  43. package/lib/module/core/index.js +19 -1
  44. package/lib/module/core/index.js.map +1 -1
  45. package/lib/module/core/useChatListener.js +0 -14
  46. package/lib/module/core/useChatListener.js.map +1 -1
  47. package/lib/module/hooks/message/useSendMessage.js +106 -0
  48. package/lib/module/hooks/message/useSendMessage.js.map +1 -0
  49. package/lib/module/hooks/useChatMessages.js +36 -121
  50. package/lib/module/hooks/useChatMessages.js.map +1 -1
  51. package/lib/module/hooks/useConversationList.js +29 -17
  52. package/lib/module/hooks/useConversationList.js.map +1 -1
  53. package/lib/module/hooks/useImageAttachment.js +263 -0
  54. package/lib/module/hooks/useImageAttachment.js.map +1 -0
  55. package/lib/module/hooks/useLinkPreview/useLinkPreview.js +3 -2
  56. package/lib/module/hooks/useLinkPreview/useLinkPreview.js.map +1 -1
  57. package/lib/module/hooks/useMediaViewer.js +24 -0
  58. package/lib/module/hooks/useMediaViewer.js.map +1 -0
  59. package/lib/module/hooks/useSendAttachment.js +182 -0
  60. package/lib/module/hooks/useSendAttachment.js.map +1 -0
  61. package/lib/module/hooks/useVideoAttachment.js +251 -0
  62. package/lib/module/hooks/useVideoAttachment.js.map +1 -0
  63. package/lib/module/index.js +13 -1
  64. package/lib/module/index.js.map +1 -1
  65. package/lib/module/screens/MediaView/VideoPlayer.js +177 -0
  66. package/lib/module/screens/MediaView/VideoPlayer.js.map +1 -0
  67. package/lib/module/screens/MediaView/index.js +264 -0
  68. package/lib/module/screens/MediaView/index.js.map +1 -0
  69. package/lib/module/screens/chat-detail/ChatComposer.js +190 -196
  70. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  71. package/lib/module/screens/chat-detail/ChatDetail.js +106 -71
  72. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  73. package/lib/module/screens/chat-detail/ChatDetailHeader.js +5 -8
  74. package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
  75. package/lib/module/screens/chat-detail/ChatLinkPreview.js +1 -1
  76. package/lib/module/screens/chat-detail/ChatLinkPreview.js.map +1 -1
  77. package/lib/module/screens/chat-detail/ChatListLegend.js +5 -15
  78. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  79. package/lib/module/screens/chat-detail/components/ChatInputActions.js +51 -0
  80. package/lib/module/screens/chat-detail/components/ChatInputActions.js.map +1 -0
  81. package/lib/module/screens/chat-detail/components/ChatMessageInput.js +93 -0
  82. package/lib/module/screens/chat-detail/components/ChatMessageInput.js.map +1 -0
  83. package/lib/module/screens/chat-detail/conversationHeader.utils.js +7 -9
  84. package/lib/module/screens/chat-detail/conversationHeader.utils.js.map +1 -1
  85. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +221 -0
  86. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -0
  87. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +114 -0
  88. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -0
  89. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +26 -0
  90. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -0
  91. package/lib/module/screens/chat-detail/index.js +0 -1
  92. package/lib/module/screens/chat-detail/index.js.map +1 -1
  93. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +32 -25
  94. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  95. package/lib/module/screens/chat-detail/legend/messageTypes.js +15 -0
  96. package/lib/module/screens/chat-detail/legend/messageTypes.js.map +1 -0
  97. package/lib/module/screens/inbox/MessagesTab.js.map +1 -1
  98. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +61 -0
  99. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -0
  100. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +54 -0
  101. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -0
  102. package/lib/module/services/attachmentHandlers/index.js +12 -0
  103. package/lib/module/services/attachmentHandlers/index.js.map +1 -0
  104. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +85 -0
  105. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js.map +1 -0
  106. package/lib/module/services/attachmentOrchestrator.js +225 -0
  107. package/lib/module/services/attachmentOrchestrator.js.map +1 -0
  108. package/lib/module/services/auth.js +35 -0
  109. package/lib/module/services/auth.js.map +1 -0
  110. package/lib/module/services/endpoints.js +20 -1
  111. package/lib/module/services/endpoints.js.map +1 -1
  112. package/lib/module/services/imageUpload.js +126 -0
  113. package/lib/module/services/imageUpload.js.map +1 -0
  114. package/lib/module/store/conversation.js +1 -1
  115. package/lib/module/store/conversation.js.map +1 -1
  116. package/lib/module/store/message.js +45 -0
  117. package/lib/module/store/message.js.map +1 -0
  118. package/lib/module/translation/resources/i18n.js +22 -2
  119. package/lib/module/translation/resources/i18n.js.map +1 -1
  120. package/lib/module/types/attachment.js +2 -0
  121. package/lib/module/types/attachment.js.map +1 -0
  122. package/lib/module/types/attachmentHandler.js +20 -0
  123. package/lib/module/types/attachmentHandler.js.map +1 -0
  124. package/lib/module/types/chat.js +2 -7
  125. package/lib/module/types/chat.js.map +1 -1
  126. package/lib/module/types/imageUpload.js +2 -0
  127. package/lib/module/types/imageUpload.js.map +1 -0
  128. package/lib/module/types/message.js +1 -0
  129. package/lib/module/types/message.js.map +1 -1
  130. package/lib/module/utils/chatImageDimens.js +148 -0
  131. package/lib/module/utils/chatImageDimens.js.map +1 -0
  132. package/lib/module/utils/conversation.js +34 -13
  133. package/lib/module/utils/conversation.js.map +1 -1
  134. package/lib/module/utils/device.js +65 -0
  135. package/lib/module/utils/device.js.map +1 -0
  136. package/lib/module/utils/imageUrlOptimizer.js +41 -0
  137. package/lib/module/utils/imageUrlOptimizer.js.map +1 -0
  138. package/lib/module/utils/imageUtils.js +69 -0
  139. package/lib/module/utils/imageUtils.js.map +1 -0
  140. package/lib/module/utils/legendListMessage.js +0 -3
  141. package/lib/module/utils/legendListMessage.js.map +1 -1
  142. package/lib/module/utils/message.js +5 -8
  143. package/lib/module/utils/message.js.map +1 -1
  144. package/lib/module/utils/resolveMessageType.js +3 -0
  145. package/lib/module/utils/resolveMessageType.js.map +1 -1
  146. package/lib/module/utils/ui.js +17 -0
  147. package/lib/module/utils/ui.js.map +1 -0
  148. package/lib/module/utils/url.js +3 -3
  149. package/lib/module/utils/url.js.map +1 -1
  150. package/lib/module/utils/videoThumbnail.js +62 -0
  151. package/lib/module/utils/videoThumbnail.js.map +1 -0
  152. package/lib/typescript/src/components/AttachmentPreview.d.ts +28 -0
  153. package/lib/typescript/src/components/AttachmentPreview.d.ts.map +1 -0
  154. package/lib/typescript/src/components/MediaViewer/index.d.ts +1 -0
  155. package/lib/typescript/src/components/MediaViewer/index.d.ts.map +1 -0
  156. package/lib/typescript/src/components/MediaViewerModal.d.ts +10 -0
  157. package/lib/typescript/src/components/MediaViewerModal.d.ts.map +1 -0
  158. package/lib/typescript/src/components/MergedImageGrid.d.ts +16 -0
  159. package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -0
  160. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts +2 -2
  161. package/lib/typescript/src/components/ThreadCard/AvatarSection.d.ts.map +1 -1
  162. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts +3 -4
  163. package/lib/typescript/src/components/ThreadCard/NamePrefixIcon.d.ts.map +1 -1
  164. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  165. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts.map +1 -1
  166. package/lib/typescript/src/components/messages/fileMessage/index.d.ts +3 -0
  167. package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -0
  168. package/lib/typescript/src/components/messages/imageMessage/index.d.ts +3 -0
  169. package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -0
  170. package/lib/typescript/src/components/messages/linkMessage/index.d.ts +9 -0
  171. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -0
  172. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts +3 -0
  173. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -0
  174. package/lib/typescript/src/components/messages/styles.d.ts +36 -0
  175. package/lib/typescript/src/components/messages/styles.d.ts.map +1 -0
  176. package/lib/typescript/src/components/messages/textMessage/index.d.ts +9 -0
  177. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -0
  178. package/lib/typescript/src/components/messages/types.d.ts +10 -0
  179. package/lib/typescript/src/components/messages/types.d.ts.map +1 -0
  180. package/lib/typescript/src/components/messages/videoMessage/index.d.ts +3 -0
  181. package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -0
  182. package/lib/typescript/src/config/api-endpoints.d.ts +40 -0
  183. package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -0
  184. package/lib/typescript/src/config/attachment-priority.d.ts +31 -0
  185. package/lib/typescript/src/config/attachment-priority.d.ts.map +1 -0
  186. package/lib/typescript/src/config/configuration.d.ts +30 -0
  187. package/lib/typescript/src/config/configuration.d.ts.map +1 -0
  188. package/lib/typescript/src/config/index.d.ts +15 -0
  189. package/lib/typescript/src/config/index.d.ts.map +1 -0
  190. package/lib/typescript/src/context/ChatContext.d.ts +1 -1
  191. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  192. package/lib/typescript/src/core/index.d.ts +13 -1
  193. package/lib/typescript/src/core/index.d.ts.map +1 -1
  194. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  195. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +12 -0
  196. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
  197. package/lib/typescript/src/hooks/useChatMessages.d.ts +0 -1
  198. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
  199. package/lib/typescript/src/hooks/useConversationList.d.ts +2 -1
  200. package/lib/typescript/src/hooks/useConversationList.d.ts.map +1 -1
  201. package/lib/typescript/src/hooks/useImageAttachment.d.ts +20 -0
  202. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -0
  203. package/lib/typescript/src/hooks/useLinkPreview/useLinkPreview.d.ts.map +1 -1
  204. package/lib/typescript/src/hooks/useMediaViewer.d.ts +13 -0
  205. package/lib/typescript/src/hooks/useMediaViewer.d.ts.map +1 -0
  206. package/lib/typescript/src/hooks/useSendAttachment.d.ts +59 -0
  207. package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -0
  208. package/lib/typescript/src/hooks/useVideoAttachment.d.ts +29 -0
  209. package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +1 -0
  210. package/lib/typescript/src/index.d.ts +14 -1
  211. package/lib/typescript/src/index.d.ts.map +1 -1
  212. package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts +12 -0
  213. package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts.map +1 -0
  214. package/lib/typescript/src/screens/MediaView/index.d.ts +11 -0
  215. package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -0
  216. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +1 -1
  217. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  218. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
  219. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  220. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
  221. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
  222. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
  223. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  224. package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts +8 -0
  225. package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts.map +1 -0
  226. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts +15 -0
  227. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts.map +1 -0
  228. package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts +1 -1
  229. package/lib/typescript/src/screens/chat-detail/conversationHeader.utils.d.ts.map +1 -1
  230. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +23 -0
  231. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -0
  232. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +15 -0
  233. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -0
  234. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +13 -0
  235. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -0
  236. package/lib/typescript/src/screens/chat-detail/index.d.ts +0 -2
  237. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
  238. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +3 -3
  239. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  240. package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts +13 -0
  241. package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts.map +1 -0
  242. package/lib/typescript/src/screens/chat-detail/types.d.ts +10 -8
  243. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  244. package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +22 -0
  245. package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -0
  246. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts +3 -0
  247. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -0
  248. package/lib/typescript/src/services/attachmentHandlers/index.d.ts +5 -0
  249. package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -0
  250. package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts +31 -0
  251. package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts.map +1 -0
  252. package/lib/typescript/src/services/attachmentOrchestrator.d.ts +5 -0
  253. package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -0
  254. package/lib/typescript/src/services/auth.d.ts +19 -0
  255. package/lib/typescript/src/services/auth.d.ts.map +1 -0
  256. package/lib/typescript/src/services/endpoints.d.ts +11 -1
  257. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  258. package/lib/typescript/src/services/imageUpload.d.ts +7 -0
  259. package/lib/typescript/src/services/imageUpload.d.ts.map +1 -0
  260. package/lib/typescript/src/store/message.d.ts +3 -0
  261. package/lib/typescript/src/store/message.d.ts.map +1 -0
  262. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  263. package/lib/typescript/src/types/attachment.d.ts +72 -0
  264. package/lib/typescript/src/types/attachment.d.ts.map +1 -0
  265. package/lib/typescript/src/types/attachmentHandler.d.ts +13 -0
  266. package/lib/typescript/src/types/attachmentHandler.d.ts.map +1 -0
  267. package/lib/typescript/src/types/chat.d.ts +28 -27
  268. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  269. package/lib/typescript/src/types/common.d.ts +1 -0
  270. package/lib/typescript/src/types/common.d.ts.map +1 -1
  271. package/lib/typescript/src/types/imageUpload.d.ts +26 -0
  272. package/lib/typescript/src/types/imageUpload.d.ts.map +1 -0
  273. package/lib/typescript/src/types/message.d.ts +1 -0
  274. package/lib/typescript/src/types/message.d.ts.map +1 -1
  275. package/lib/typescript/src/utils/chatImageDimens.d.ts +34 -0
  276. package/lib/typescript/src/utils/chatImageDimens.d.ts.map +1 -0
  277. package/lib/typescript/src/utils/conversation.d.ts +3 -2
  278. package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
  279. package/lib/typescript/src/utils/device.d.ts +7 -0
  280. package/lib/typescript/src/utils/device.d.ts.map +1 -0
  281. package/lib/typescript/src/utils/imageUrlOptimizer.d.ts +12 -0
  282. package/lib/typescript/src/utils/imageUrlOptimizer.d.ts.map +1 -0
  283. package/lib/typescript/src/utils/imageUtils.d.ts +9 -0
  284. package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -0
  285. package/lib/typescript/src/utils/legendListMessage.d.ts +0 -2
  286. package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
  287. package/lib/typescript/src/utils/message.d.ts.map +1 -1
  288. package/lib/typescript/src/utils/resolveMessageType.d.ts.map +1 -1
  289. package/lib/typescript/src/utils/ui.d.ts +13 -0
  290. package/lib/typescript/src/utils/ui.d.ts.map +1 -0
  291. package/lib/typescript/src/utils/url.d.ts +1 -1
  292. package/lib/typescript/src/utils/url.d.ts.map +1 -1
  293. package/lib/typescript/src/utils/videoThumbnail.d.ts +16 -0
  294. package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -0
  295. package/package.json +15 -3
  296. package/src/components/AttachmentPreview.tsx +304 -0
  297. package/src/components/MediaViewer/index.tsx +0 -0
  298. package/src/components/MediaViewerModal.tsx +70 -0
  299. package/src/components/MergedImageGrid.tsx +238 -0
  300. package/src/components/ThreadCard/AvatarSection.tsx +5 -8
  301. package/src/components/ThreadCard/NamePrefixIcon.tsx +27 -38
  302. package/src/components/ThreadCard/ThreadCard.tsx +16 -30
  303. package/src/components/ThreadCard/thread-card.utils.ts +95 -4
  304. package/src/components/messages/fileMessage/index.tsx +30 -0
  305. package/src/components/messages/imageMessage/index.tsx +137 -0
  306. package/src/components/messages/linkMessage/index.tsx +162 -0
  307. package/src/components/messages/mergedMessage/index.tsx +45 -0
  308. package/src/components/messages/styles.ts +39 -0
  309. package/src/components/messages/textMessage/index.tsx +53 -0
  310. package/src/components/messages/types.ts +22 -0
  311. package/src/components/messages/videoMessage/index.tsx +120 -0
  312. package/src/config/api-endpoints.ts +72 -0
  313. package/src/config/attachment-priority.ts +93 -0
  314. package/src/config/configuration.ts +50 -0
  315. package/src/config/index.ts +19 -0
  316. package/src/context/ChatContext.tsx +12 -4
  317. package/src/core/index.ts +25 -1
  318. package/src/core/useChatListener.ts +0 -21
  319. package/src/hooks/message/useSendMessage.ts +143 -0
  320. package/src/hooks/useChatMessages.ts +69 -161
  321. package/src/hooks/useConversationList.ts +34 -16
  322. package/src/hooks/useImageAttachment.ts +348 -0
  323. package/src/hooks/useLinkPreview/useLinkPreview.ts +3 -2
  324. package/src/hooks/useMediaViewer.ts +32 -0
  325. package/src/hooks/useSendAttachment.ts +295 -0
  326. package/src/hooks/useVideoAttachment.ts +334 -0
  327. package/src/index.tsx +13 -1
  328. package/src/screens/MediaView/VideoPlayer.tsx +211 -0
  329. package/src/screens/MediaView/index.tsx +327 -0
  330. package/src/screens/chat-detail/ChatComposer.tsx +206 -271
  331. package/src/screens/chat-detail/ChatDetail.tsx +164 -104
  332. package/src/screens/chat-detail/ChatDetailHeader.tsx +4 -10
  333. package/src/screens/chat-detail/ChatLinkPreview.tsx +1 -1
  334. package/src/screens/chat-detail/ChatListLegend.tsx +10 -13
  335. package/src/screens/chat-detail/components/ChatInputActions.tsx +71 -0
  336. package/src/screens/chat-detail/components/ChatMessageInput.tsx +127 -0
  337. package/src/screens/chat-detail/conversationHeader.utils.ts +11 -14
  338. package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +291 -0
  339. package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +184 -0
  340. package/src/screens/chat-detail/hooks/useChatComposerState.ts +40 -0
  341. package/src/screens/chat-detail/index.ts +0 -2
  342. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +44 -39
  343. package/src/screens/chat-detail/legend/messageTypes.tsx +13 -0
  344. package/src/screens/chat-detail/types.ts +11 -9
  345. package/src/screens/inbox/MessagesTab.tsx +1 -1
  346. package/src/services/attachmentHandlers/fileAttachmentHandler.ts +78 -0
  347. package/src/services/attachmentHandlers/imageAttachmentHandler.ts +54 -0
  348. package/src/services/attachmentHandlers/index.ts +10 -0
  349. package/src/services/attachmentHandlers/videoAttachmentHandler.ts +114 -0
  350. package/src/services/attachmentOrchestrator.ts +300 -0
  351. package/src/services/auth.ts +34 -0
  352. package/src/services/endpoints.ts +24 -1
  353. package/src/services/imageUpload.ts +162 -0
  354. package/src/store/conversation.ts +1 -1
  355. package/src/store/message.ts +44 -0
  356. package/src/translation/resources/i18n.ts +22 -2
  357. package/src/types/attachment.ts +85 -0
  358. package/src/types/attachmentHandler.ts +31 -0
  359. package/src/types/chat.ts +31 -30
  360. package/src/types/common.ts +1 -0
  361. package/src/types/imageUpload.ts +28 -0
  362. package/src/types/message.ts +1 -0
  363. package/src/utils/chatImageDimens.ts +178 -0
  364. package/src/utils/conversation.ts +44 -17
  365. package/src/utils/device.ts +73 -0
  366. package/src/utils/imageUrlOptimizer.ts +56 -0
  367. package/src/utils/imageUtils.ts +76 -0
  368. package/src/utils/legendListMessage.ts +0 -5
  369. package/src/utils/message.ts +10 -12
  370. package/src/utils/resolveMessageType.ts +2 -0
  371. package/src/utils/ui.ts +19 -0
  372. package/src/utils/url.ts +3 -3
  373. package/src/utils/videoThumbnail.ts +85 -0
  374. package/lib/module/screens/chat-detail/ChatList.js +0 -147
  375. package/lib/module/screens/chat-detail/ChatList.js.map +0 -1
  376. package/lib/module/screens/chat-detail/ChatTextBubble.js +0 -62
  377. package/lib/module/screens/chat-detail/ChatTextBubble.js.map +0 -1
  378. package/lib/module/screens/chat-detail/legend/message-types.js +0 -122
  379. package/lib/module/screens/chat-detail/legend/message-types.js.map +0 -1
  380. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js +0 -24
  381. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +0 -1
  382. package/lib/module/screens/chat-detail/messages/types.js +0 -4
  383. package/lib/module/screens/chat-detail/messages/types.js.map +0 -1
  384. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +0 -3
  385. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +0 -1
  386. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +0 -3
  387. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +0 -1
  388. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +0 -12
  389. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +0 -1
  390. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +0 -3
  391. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +0 -1
  392. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts +0 -13
  393. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts.map +0 -1
  394. package/src/screens/chat-detail/ChatList.tsx +0 -190
  395. package/src/screens/chat-detail/ChatTextBubble.tsx +0 -73
  396. package/src/screens/chat-detail/legend/message-types.tsx +0 -149
  397. package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -23
  398. package/src/screens/chat-detail/messages/types.ts +0 -14
@@ -1 +1 @@
1
- {"version":3,"names":["memo","LegendTextMessage","LegendImageMessage","LegendVideoMessage","LegendFileMessage","DChatMessageType","MessageTypeEnum","jsx","_jsx","messageComponentMap","Text","Image","Video","File","Link","Order","Unsupported","LegendChatMessage","message","messageType","isOutgoing","createdAtTime","MessageComponent","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAuB,OAAO;AAG3C,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,gBAAgB,IAAIC,eAAe,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS7E;AACA,MAAMC,mBAEL,GAAG;EACF,CAACH,eAAe,CAACI,IAAI,GAAGT,iBAAiB;EACzC,CAACK,eAAe,CAACK,KAAK,GAAGT,kBAAkB;EAC3C,CAACI,eAAe,CAACM,KAAK,GAAGT,kBAAkB;EAC3C,CAACG,eAAe,CAACO,IAAI,GAAGT,iBAAiB;EACzC,CAACE,eAAe,CAACQ,IAAI,GAAGb,iBAAiB;EAAE;EAC3C,CAACK,eAAe,CAACS,KAAK,GAAGd,iBAAiB;EAAE;EAC5C,CAACK,eAAe,CAACU,WAAW,GAAGf,iBAAiB,CAAE;AACpD,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMgB,iBAAiB,gBAAGjB,IAAI,CACnC,CAAC;EACCkB,OAAO;EACPC,WAAW;EACXC,UAAU;EACVC;AACsB,CAAC,KAAK;EAC5B,MAAMC,gBAAgB,GAAGb,mBAAmB,CAACU,WAAW,CAAC;;EAEzD;EACA,IAAI,CAACG,gBAAgB,EAAE;IACrB,oBACEd,IAAA,CAACP,iBAAiB;MAChBiB,OAAO,EAAEA,OAAQ;MACjBE,UAAU,EAAEA,UAAW;MACvBC,aAAa,EAAEA;IAAc,CAC9B,CAAC;EAEN;EAEA,oBACEb,IAAA,CAACc,gBAAgB;IACfJ,OAAO,EAAEA,OAAQ;IACjBE,UAAU,EAAEA,UAAW;IACvBC,aAAa,EAAEA;EAAc,CAC9B,CAAC;AAEN,CACF,CAAC;AAEDJ,iBAAiB,CAACM,WAAW,GAAG,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["memo","MessageType","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","jsx","_jsx","MERGED_MESSAGE_TYPE","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","LegendChatMessage","message","isOutgoing","createdAtTime","onMediaPress","MessageComponent","contentType","mediaTypes","hasMediaPress","includes","props","displayName"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAE5B,SAASC,WAAW,QAAQ,+BAA+B;AAG3D,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,aAAa,QAAQ,qDAA4C;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS3E;AACA,MAAMC,mBAAmB,GAAG,GAAG,CAAC,CAAC;;AAEjC,MAAMC,mBAAqE,GAAG;EAC5E,CAACV,WAAW,CAACC,WAAW,GAAGA,WAAW;EACtC,CAACD,WAAW,CAACW,aAAa,GAAGV,WAAW;EACxC,CAACD,WAAW,CAACY,YAAY,GAAGX,WAAW;EACvC,CAACD,WAAW,CAACa,cAAc,GAAGR,WAAW;EACzC,CAACL,WAAW,CAACc,cAAc,GAAGZ,YAAY;EAC1C,CAACF,WAAW,CAACG,YAAY,GAAGA,YAAY;EACxC,CAACH,WAAW,CAACI,WAAW,GAAGA,WAAW;EACtC,CAACK,mBAAmB,GAAGH;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMS,iBAAiB,gBAAGhB,IAAI,CACnC,CAAC;EACCiB,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC;AACsB,CAAC,KAAK;EAC5B,MAAMC,gBAAgB,GACpBV,mBAAmB,CAACM,OAAO,EAAEK,WAAW,CAAC,IAAIpB,WAAW;;EAE1D;EACA,MAAMqB,UAAU,GAAG,CACjBtB,WAAW,CAACc,cAAc,EAC1Bd,WAAW,CAACG,YAAY,EACxBM,mBAAmB,CACpB;EACD,MAAMc,aAAa,GACjBD,UAAU,CAACE,QAAQ,CAACR,OAAO,EAAEK,WAAW,CAAC,IAAIF,YAAY;EAE3D,MAAMM,KAAU,GAAG;IACjBT,OAAO;IACPC,UAAU;IACVC;EACF,CAAC;EAED,IAAIK,aAAa,EAAE;IACjBE,KAAK,CAACN,YAAY,GAAGA,YAAY;EACnC;EAEA,oBAAOX,IAAA,CAACY,gBAAgB;IAAA,GAAKK;EAAK,CAAG,CAAC;AACxC,CACF,CAAC;AAEDV,iBAAiB,CAACW,WAAW,GAAG,mBAAmB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Message type components - re-exports from components/messages
5
+ * Stateless message components live in components/messages
6
+ */
7
+
8
+ export { formatMessageTime } from "../../../components/messages/types.js";
9
+ export { TextMessage } from "../../../components/messages/textMessage/index.js";
10
+ export { ImageMessage } from "../../../components/messages/imageMessage/index.js";
11
+ export { VideoMessage } from "../../../components/messages/videoMessage/index.js";
12
+ export { FileMessage } from "../../../components/messages/fileMessage/index.js";
13
+ export { MergedMessage } from "../../../components/messages/mergedMessage/index.js";
14
+ export { messageStyles } from "../../../components/messages/styles.js";
15
+ //# sourceMappingURL=messageTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatMessageTime","TextMessage","ImageMessage","VideoMessage","FileMessage","MergedMessage","messageStyles"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/messageTypes.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,iBAAiB,QAAQ,uCAAoC;AACtE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,aAAa,QAAQ,qDAA4C;AAC1E,SAASC,aAAa,QAAQ,wCAAqC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","ActivityIndicator","KContainer","KDivider","KLabel","KColors","useConversationList","ThreadCard","useConversationStore","jsx","_jsx","Separator","type","size","keyExtractor","item","MessagesTab","applicationType","onPressThread","data","state","list","isLoading","refetch","isRefetching","page","handleThreadPress","params","renderItem","onPress","LoadingComponent","View","center","flex","paddingV","children","color","palette","primary","w400","EmptyComponent","Text","typo","gray","length","FlatList","ItemSeparatorComponent","ListEmptyComponent","refreshing","onRefresh","showsVerticalScrollIndicator","displayName"],"sourceRoot":"../../../../src","sources":["screens/inbox/MessagesTab.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAAgCC,iBAAiB,QAAQ,cAAc;AACvE,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AACrE,SAASC,mBAAmB,QAAQ,oCAAiC;AACrE,SAASC,UAAU,QAAQ,sCAA6B;AACxD,SAASC,oBAAoB,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOnD,MAAMC,SAAS,GAAGA,CAAA,kBAAMD,IAAA,CAACP,QAAQ;EAACS,IAAI,EAAC,MAAM;EAACC,IAAI,EAAC;AAAU,CAAE,CAAC;AAChE,MAAMC,YAAY,GAAIC,IAAY,IAAKA,IAAI;AAE3C,OAAO,MAAMC,WAAW,gBAAGjB,IAAI,CAC7B,CAAC;EAAEkB,eAAe;EAAEC;AAAgC,CAAC,KAAK;EACxD,MAAMC,IAAI,GAAGX,oBAAoB,CAAEY,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC;EAExD,MAAM;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAGlB,mBAAmB,CAAC;IAC/DW,eAAe;IACfQ,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAG1B,WAAW,CAClC2B,MAAsD,IAAK;IAC1DT,aAAa,GAAGS,MAAM,CAACZ,IAAI,CAAC;EAC9B,CAAC,EACD,CAACG,aAAa,CAChB,CAAC;EAED,MAAMU,UAAU,GAAG5B,WAAW,CAC5B,CAAC;IAAEe;EAAuB,CAAC,kBACzBL,IAAA,CAACH,UAAU;IAACQ,IAAI,EAAEA,IAAK;IAACc,OAAO,EAAEH;EAAkB,CAAE,CACtD,EACD,CAACA,iBAAiB,CACpB,CAAC;EAED,MAAMI,gBAAgB,gBACpBpB,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACT,iBAAiB;MAACY,IAAI,EAAC,OAAO;MAACuB,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACC,OAAO,CAACC;IAAK,CAAE;EAAC,CACxD,CAClB;EAED,MAAMC,cAAc,GAAGlB,SAAS,GAAG,IAAI,gBACrCZ,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACN,MAAM,CAACqC,IAAI;MAACC,IAAI,EAAC,cAAc;MAACN,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACM,IAAI,CAACJ,IAAK;MAAAJ,QAAA,EAAC;IAEnE,CAAa;EAAC,CACC,CAClB;EAED,IAAIb,SAAS,IAAIH,IAAI,CAACyB,MAAM,KAAK,CAAC,EAAE;IAClC,OAAOd,gBAAgB;EACzB;EAEA,oBACEpB,IAAA,CAACR,UAAU,CAAC2C,QAAQ;IAClB1B,IAAI,EAAEA,IAAK;IACXS,UAAU,EAAEA,UAAW;IACvBd,YAAY,EAAEA,YAAa;IAC3BgC,sBAAsB,EAAEnC,SAAU;IAClCoC,kBAAkB,EAAEP,cAAe;IACnCQ,UAAU,EAAExB,YAAa;IACzByB,SAAS,EAAE1B,OAAQ;IACnB2B,4BAA4B,EAAE;EAAM,CACrC,CAAC;AAEN,CACF,CAAC;AAEDlC,WAAW,CAACmC,WAAW,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","ActivityIndicator","KContainer","KDivider","KLabel","KColors","useConversationList","ThreadCard","useConversationStore","jsx","_jsx","Separator","type","size","keyExtractor","item","MessagesTab","applicationType","onPressThread","data","state","list","isLoading","refetch","isRefetching","page","handleThreadPress","params","renderItem","onPress","LoadingComponent","View","center","flex","paddingV","children","color","palette","primary","w400","EmptyComponent","Text","typo","gray","length","FlatList","ItemSeparatorComponent","ListEmptyComponent","refreshing","onRefresh","showsVerticalScrollIndicator","displayName"],"sourceRoot":"../../../../src","sources":["screens/inbox/MessagesTab.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAAqCC,iBAAiB,QAAQ,cAAc;AAC5E,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AACrE,SAASC,mBAAmB,QAAQ,oCAAiC;AACrE,SAASC,UAAU,QAAQ,sCAA6B;AACxD,SAASC,oBAAoB,QAAQ,sBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOnD,MAAMC,SAAS,GAAGA,CAAA,kBAAMD,IAAA,CAACP,QAAQ;EAACS,IAAI,EAAC,MAAM;EAACC,IAAI,EAAC;AAAU,CAAE,CAAC;AAChE,MAAMC,YAAY,GAAIC,IAAY,IAAKA,IAAI;AAE3C,OAAO,MAAMC,WAAW,gBAAGjB,IAAI,CAC7B,CAAC;EAAEkB,eAAe;EAAEC;AAAgC,CAAC,KAAK;EACxD,MAAMC,IAAI,GAAGX,oBAAoB,CAAEY,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC;EAExD,MAAM;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAGlB,mBAAmB,CAAC;IAC/DW,eAAe;IACfQ,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAG1B,WAAW,CAClC2B,MAAsD,IAAK;IAC1DT,aAAa,GAAGS,MAAM,CAACZ,IAAI,CAAC;EAC9B,CAAC,EACD,CAACG,aAAa,CAChB,CAAC;EAED,MAAMU,UAAU,GAAG5B,WAAW,CAC5B,CAAC;IAAEe;EAAuB,CAAC,kBACzBL,IAAA,CAACH,UAAU;IAACQ,IAAI,EAAEA,IAAK;IAACc,OAAO,EAAEH;EAAkB,CAAE,CACtD,EACD,CAACA,iBAAiB,CACpB,CAAC;EAED,MAAMI,gBAAgB,gBACpBpB,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACT,iBAAiB;MAACY,IAAI,EAAC,OAAO;MAACuB,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACC,OAAO,CAACC;IAAK,CAAE;EAAC,CACxD,CAClB;EAED,MAAMC,cAAc,GAAGlB,SAAS,GAAG,IAAI,gBACrCZ,IAAA,CAACR,UAAU,CAAC6B,IAAI;IAACC,MAAM;IAACC,IAAI;IAACC,QAAQ,EAAC,MAAM;IAAAC,QAAA,eAC1CzB,IAAA,CAACN,MAAM,CAACqC,IAAI;MAACC,IAAI,EAAC,cAAc;MAACN,KAAK,EAAE/B,OAAO,CAACgC,OAAO,CAACM,IAAI,CAACJ,IAAK;MAAAJ,QAAA,EAAC;IAEnE,CAAa;EAAC,CACC,CAClB;EAED,IAAIb,SAAS,IAAIH,IAAI,CAACyB,MAAM,KAAK,CAAC,EAAE;IAClC,OAAOd,gBAAgB;EACzB;EAEA,oBACEpB,IAAA,CAACR,UAAU,CAAC2C,QAAQ;IAClB1B,IAAI,EAAEA,IAAK;IACXS,UAAU,EAAEA,UAAW;IACvBd,YAAY,EAAEA,YAAa;IAC3BgC,sBAAsB,EAAEnC,SAAU;IAClCoC,kBAAkB,EAAEP,cAAe;IACnCQ,UAAU,EAAExB,YAAa;IACzByB,SAAS,EAAE1B,OAAQ;IACnB2B,4BAA4B,EAAE;EAAM,CACrC,CAAC;AAEN,CACF,CAAC;AAEDlC,WAAW,CAACmC,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ export class FileAttachmentHandler {
4
+ static MAX_FILE_SIZE = 200 * 1024 * 1024; // 200MB
5
+
6
+ validate(attachment) {
7
+ if (attachment.type !== 'file') {
8
+ return {
9
+ valid: false,
10
+ reason: 'Invalid attachment type for file handler'
11
+ };
12
+ }
13
+ const {
14
+ sourceFile
15
+ } = attachment;
16
+ if (!sourceFile.filename) {
17
+ return {
18
+ valid: false,
19
+ reason: 'File name is required'
20
+ };
21
+ }
22
+ if (!sourceFile.size) {
23
+ return {
24
+ valid: false,
25
+ reason: 'File size is required'
26
+ };
27
+ }
28
+ if (sourceFile.size > FileAttachmentHandler.MAX_FILE_SIZE) {
29
+ return {
30
+ valid: false,
31
+ reason: `File size exceeds maximum (${FileAttachmentHandler.MAX_FILE_SIZE / 1024 / 1024}MB)`
32
+ };
33
+ }
34
+ return {
35
+ valid: true
36
+ };
37
+ }
38
+ async buildPayload(attachment, uploadedUrl) {
39
+ const file = attachment;
40
+ const {
41
+ sourceFile
42
+ } = file;
43
+ const fileElem = {
44
+ uuid: attachment.id,
45
+ fileName: sourceFile.filename,
46
+ fileSize: sourceFile.size,
47
+ fileType: sourceFile.mimeType,
48
+ url: uploadedUrl
49
+ };
50
+ console.warn('[FileAttachmentHandler] Built payload', {
51
+ uuid: fileElem.uuid,
52
+ fileName: fileElem.fileName,
53
+ fileSize: fileElem.fileSize,
54
+ fileType: fileElem.fileType,
55
+ url: uploadedUrl.substring(0, 50) + '...'
56
+ });
57
+ return fileElem;
58
+ }
59
+ }
60
+ export default new FileAttachmentHandler();
61
+ //# sourceMappingURL=fileAttachmentHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FileAttachmentHandler","MAX_FILE_SIZE","validate","attachment","type","valid","reason","sourceFile","filename","size","buildPayload","uploadedUrl","file","fileElem","uuid","id","fileName","fileSize","fileType","mimeType","url","console","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/fileAttachmentHandler.ts"],"mappings":";;AAWA,OAAO,MAAMA,qBAAqB,CAA+B;EAC/D,OAAwBC,aAAa,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;;EAE3DC,QAAQA,CACNC,UAAsB,EAC8B;IACpD,IAAIA,UAAU,CAACC,IAAI,KAAK,MAAM,EAAE;MAC9B,OAAO;QACLC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,MAAM;MAAEC;IAAW,CAAC,GAAGJ,UAAU;IAEjC,IAAI,CAACI,UAAU,CAACC,QAAQ,EAAE;MACxB,OAAO;QACLH,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAI,CAACC,UAAU,CAACE,IAAI,EAAE;MACpB,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAIC,UAAU,CAACE,IAAI,GAAGT,qBAAqB,CAACC,aAAa,EAAE;MACzD,OAAO;QACLI,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,8BAA8BN,qBAAqB,CAACC,aAAa,GAAG,IAAI,GAAG,IAAI;MACzF,CAAC;IACH;IAEA,OAAO;MAAEI,KAAK,EAAE;IAAK,CAAC;EACxB;EAEA,MAAMK,YAAYA,CAChBP,UAAsB,EACtBQ,WAAmB,EACA;IACnB,MAAMC,IAAI,GAAGT,UAA4B;IACzC,MAAM;MAAEI;IAAW,CAAC,GAAGK,IAAI;IAE3B,MAAMC,QAAkB,GAAG;MACzBC,IAAI,EAAEX,UAAU,CAACY,EAAE;MACnBC,QAAQ,EAAET,UAAU,CAACC,QAAQ;MAC7BS,QAAQ,EAAEV,UAAU,CAACE,IAAI;MACzBS,QAAQ,EAAEX,UAAU,CAACY,QAAQ;MAC7BC,GAAG,EAAET;IACP,CAAC;IAEDU,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAE;MACpDR,IAAI,EAAED,QAAQ,CAACC,IAAI;MACnBE,QAAQ,EAAEH,QAAQ,CAACG,QAAQ;MAC3BC,QAAQ,EAAEJ,QAAQ,CAACI,QAAQ;MAC3BC,QAAQ,EAAEL,QAAQ,CAACK,QAAQ;MAC3BE,GAAG,EAAET,WAAW,CAACY,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;IACtC,CAAC,CAAC;IAEF,OAAOV,QAAQ;EACjB;AACF;AAEA,eAAe,IAAIb,qBAAqB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ import { generateUUID } from "../../utils/imageUtils.js";
4
+ export const ImageAttachmentHandler = {
5
+ validate(attachment) {
6
+ const MAX_SIZE = 5 * 1024 * 1024;
7
+ if (attachment.sourceFile.size > MAX_SIZE) {
8
+ return {
9
+ valid: false,
10
+ reason: 'Image exceeds 5MB limit'
11
+ };
12
+ }
13
+ const validMimes = ['image/jpeg', 'image/png', 'image/webp', 'image/jpg'];
14
+ if (!validMimes.includes(attachment.sourceFile.mimeType)) {
15
+ return {
16
+ valid: false,
17
+ reason: `Unsupported format: ${attachment.sourceFile.mimeType}`
18
+ };
19
+ }
20
+ if (attachment.metadata.width <= 0 || attachment.metadata.height <= 0) {
21
+ return {
22
+ valid: false,
23
+ reason: 'Invalid image dimensions'
24
+ };
25
+ }
26
+ return {
27
+ valid: true
28
+ };
29
+ },
30
+ async buildPayload(attachment, uploadedUrl) {
31
+ console.log('[ImageAttachmentHandler] Building payload for', {
32
+ filename: attachment.sourceFile.filename,
33
+ url: uploadedUrl
34
+ });
35
+ const picInfo = {
36
+ uuid: generateUUID(),
37
+ type: attachment.sourceFile.mimeType,
38
+ size: attachment.sourceFile.size,
39
+ width: attachment.metadata.width,
40
+ height: attachment.metadata.height,
41
+ url: uploadedUrl
42
+ };
43
+ const payload = {
44
+ sourcePicture: picInfo,
45
+ bigPicture: picInfo,
46
+ snapshotPicture: picInfo
47
+ };
48
+ console.log('[ImageAttachmentHandler] Payload created for', {
49
+ fileName: attachment.sourceFile.filename
50
+ });
51
+ return payload;
52
+ }
53
+ };
54
+ //# sourceMappingURL=imageAttachmentHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["generateUUID","ImageAttachmentHandler","validate","attachment","MAX_SIZE","sourceFile","size","valid","reason","validMimes","includes","mimeType","metadata","width","height","buildPayload","uploadedUrl","console","log","filename","url","picInfo","uuid","type","payload","sourcePicture","bigPicture","snapshotPicture","fileName"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/imageAttachmentHandler.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,2BAAwB;AAErD,OAAO,MAAMC,sBAA0C,GAAG;EACxDC,QAAQA,CAACC,UAA2B,EAAE;IACpC,MAAMC,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAChC,IAAID,UAAU,CAACE,UAAU,CAACC,IAAI,GAAGF,QAAQ,EAAE;MACzC,OAAO;QAAEG,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA0B,CAAC;IAC5D;IAEA,MAAMC,UAAU,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;IACzE,IAAI,CAACA,UAAU,CAACC,QAAQ,CAACP,UAAU,CAACE,UAAU,CAACM,QAAQ,CAAC,EAAE;MACxD,OAAO;QACLJ,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,uBAAuBL,UAAU,CAACE,UAAU,CAACM,QAAQ;MAC/D,CAAC;IACH;IAEA,IAAIR,UAAU,CAACS,QAAQ,CAACC,KAAK,IAAI,CAAC,IAAIV,UAAU,CAACS,QAAQ,CAACE,MAAM,IAAI,CAAC,EAAE;MACrE,OAAO;QAAEP,KAAK,EAAE,KAAK;QAAEC,MAAM,EAAE;MAA2B,CAAC;IAC7D;IAEA,OAAO;MAAED,KAAK,EAAE;IAAK,CAAC;EACxB,CAAC;EAED,MAAMQ,YAAYA,CAACZ,UAA2B,EAAEa,WAAmB,EAAE;IACnEC,OAAO,CAACC,GAAG,CAAC,+CAA+C,EAAE;MAC3DC,QAAQ,EAAEhB,UAAU,CAACE,UAAU,CAACc,QAAQ;MACxCC,GAAG,EAAEJ;IACP,CAAC,CAAC;IAEF,MAAMK,OAAO,GAAG;MACdC,IAAI,EAAEtB,YAAY,CAAC,CAAC;MACpBuB,IAAI,EAAEpB,UAAU,CAACE,UAAU,CAACM,QAAQ;MACpCL,IAAI,EAAEH,UAAU,CAACE,UAAU,CAACC,IAAI;MAChCO,KAAK,EAAEV,UAAU,CAACS,QAAQ,CAACC,KAAK;MAChCC,MAAM,EAAEX,UAAU,CAACS,QAAQ,CAACE,MAAM;MAClCM,GAAG,EAAEJ;IACP,CAAC;IAED,MAAMQ,OAAO,GAAG;MACdC,aAAa,EAAEJ,OAAO;MACtBK,UAAU,EAAEL,OAAO;MACnBM,eAAe,EAAEN;IACnB,CAAC;IAEDJ,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAE;MAC1DU,QAAQ,EAAEzB,UAAU,CAACE,UAAU,CAACc;IAClC,CAAC,CAAC;IAEF,OAAOK,OAAO;EAChB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ // Handlers are now dispatched directly in getAttachmentHandler without registry
4
+
5
+ // Legacy export for backward compatibility
6
+ export function initializeAttachmentHandlers() {
7
+ // No longer needed - handlers are dispatched directly
8
+ }
9
+ export { ImageAttachmentHandler } from "./imageAttachmentHandler.js";
10
+ export { default as VideoAttachmentHandler } from "./videoAttachmentHandler.js";
11
+ export { default as FileAttachmentHandler } from "./fileAttachmentHandler.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["initializeAttachmentHandlers","ImageAttachmentHandler","default","VideoAttachmentHandler","FileAttachmentHandler"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/index.ts"],"mappings":";;AAAA;;AAEA;AACA,OAAO,SAASA,4BAA4BA,CAAA,EAAS;EACnD;AAAA;AAGF,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,OAAO,IAAIC,sBAAsB,QAAQ,6BAA0B;AAC5E,SAASD,OAAO,IAAIE,qBAAqB,QAAQ,4BAAyB","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ export class VideoAttachmentHandler {
4
+ static MAX_VIDEO_SIZE = 100 * 1024 * 1024; // 100MB
5
+ static SUPPORTED_TYPES = ['video/mp4', 'video/quicktime'];
6
+ validate(attachment) {
7
+ if (attachment.type !== 'video') {
8
+ return {
9
+ valid: false,
10
+ reason: 'Invalid attachment type for video handler'
11
+ };
12
+ }
13
+ const {
14
+ sourceFile
15
+ } = attachment;
16
+ if (!sourceFile?.size) {
17
+ return {
18
+ valid: false,
19
+ reason: 'Video file size is required'
20
+ };
21
+ }
22
+ if (sourceFile.size > VideoAttachmentHandler.MAX_VIDEO_SIZE) {
23
+ return {
24
+ valid: false,
25
+ reason: `Video size exceeds maximum (${VideoAttachmentHandler.MAX_VIDEO_SIZE / 1024 / 1024}MB)`
26
+ };
27
+ }
28
+ if (sourceFile.mimeType && !VideoAttachmentHandler.SUPPORTED_TYPES.includes(sourceFile.mimeType)) {
29
+ return {
30
+ valid: false,
31
+ reason: 'Unsupported video format'
32
+ };
33
+ }
34
+ return {
35
+ valid: true
36
+ };
37
+ }
38
+ async buildPayload(attachment, uploadedUrl) {
39
+ const video = attachment;
40
+ const {
41
+ sourceFile,
42
+ metadata
43
+ } = video;
44
+
45
+ // Use thumbnail URL if available, otherwise fall back to video URL
46
+ const snapshotUrl = metadata.thumbnail?.url || uploadedUrl;
47
+ const snapshotWidth = metadata.thumbnail?.width || metadata.width || 320;
48
+ const snapshotHeight = metadata.thumbnail?.height || metadata.height || 180;
49
+ const snapshotSize = metadata.thumbnail?.size || 0;
50
+ if (metadata.thumbnail?.url) {
51
+ console.log('✅ [VideoAttachmentHandler] Using thumbnail:', {
52
+ snapshotUrl: metadata.thumbnail.url,
53
+ snapshotWidth,
54
+ snapshotHeight,
55
+ snapshotSize
56
+ });
57
+ }
58
+ const picInfo = {
59
+ videoUUID: attachment.id,
60
+ videoType: sourceFile.mimeType || 'video/mp4',
61
+ videoSize: sourceFile.size,
62
+ duration: metadata.duration,
63
+ snapshotWidth: snapshotWidth,
64
+ snapshotHeight: snapshotHeight,
65
+ videoUrl: uploadedUrl,
66
+ videoPath: sourceFile.path,
67
+ snapshotPath: snapshotUrl,
68
+ snapshotUUID: `${attachment.id}-snapshot`,
69
+ snapshotSize: snapshotSize,
70
+ snapshotUrl: snapshotUrl,
71
+ snapShotType: 'image/jpeg'
72
+ };
73
+ console.warn('[VideoAttachmentHandler] Built payload', {
74
+ videoUUID: picInfo.videoUUID,
75
+ videoSize: picInfo.videoSize,
76
+ duration: picInfo.duration,
77
+ snapshotWidth: picInfo.snapshotWidth,
78
+ snapshotHeight: picInfo.snapshotHeight,
79
+ videoUrl: uploadedUrl.substring(0, 50) + '...'
80
+ });
81
+ return picInfo;
82
+ }
83
+ }
84
+ export default new VideoAttachmentHandler();
85
+ //# sourceMappingURL=videoAttachmentHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["VideoAttachmentHandler","MAX_VIDEO_SIZE","SUPPORTED_TYPES","validate","attachment","type","valid","reason","sourceFile","size","mimeType","includes","buildPayload","uploadedUrl","video","metadata","snapshotUrl","thumbnail","url","snapshotWidth","width","snapshotHeight","height","snapshotSize","console","log","picInfo","videoUUID","id","videoType","videoSize","duration","videoUrl","videoPath","path","snapshotPath","snapshotUUID","snapShotType","warn","substring"],"sourceRoot":"../../../../src","sources":["services/attachmentHandlers/videoAttachmentHandler.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+
3
+ import OpenIMSDK from '@droppii/openim-rn-client-sdk';
4
+ import { getAttachmentHandler } from "../types/attachmentHandler.js";
5
+ import { useConversationStore } from "../store/index.js";
6
+ import { getAttachmentPriorityConfig } from "../config/attachment-priority.js";
7
+ export let AttachmentOrchestratorService;
8
+ (function (_AttachmentOrchestratorService) {
9
+ async function sendPreparedAttachments(attachments, uploadedUrls, options = {
10
+ strategy: 'individual'
11
+ }, onMessageSent) {
12
+ const result = {
13
+ success: false,
14
+ sentAttachmentIds: [],
15
+ failedAttachmentIds: [],
16
+ errors: {}
17
+ };
18
+ if (!attachments || attachments.length === 0) {
19
+ return result;
20
+ }
21
+
22
+ // 1. Validate all attachments
23
+ console.log('[AttachmentOrchestrator] Validating prepared attachments...');
24
+ for (const att of attachments) {
25
+ try {
26
+ const handler = getAttachmentHandler(att.type);
27
+ const validation = handler.validate(att);
28
+ if (!validation.valid) {
29
+ result.failedAttachmentIds.push(att.id);
30
+ result.errors[att.id] = validation.reason;
31
+ }
32
+ } catch (error) {
33
+ const msg = error instanceof Error ? error.message : 'Validation failed';
34
+ result.failedAttachmentIds.push(att.id);
35
+ result.errors[att.id] = msg;
36
+ }
37
+ }
38
+ if (result.failedAttachmentIds.length === attachments.length) {
39
+ return result;
40
+ }
41
+ const validAttachments = attachments.filter(a => !result.failedAttachmentIds.includes(a.id));
42
+
43
+ // 2. Build message payloads directly (no upload)
44
+ console.log('[AttachmentOrchestrator] Building message payloads for prepared attachments...');
45
+ const payloads = [];
46
+ for (const att of validAttachments) {
47
+ try {
48
+ const uploadedUrl = uploadedUrls[att.id];
49
+ if (!uploadedUrl) {
50
+ result.failedAttachmentIds.push(att.id);
51
+ result.errors[att.id] = 'No uploaded URL provided';
52
+ continue;
53
+ }
54
+ const handler = getAttachmentHandler(att.type);
55
+ const payload = await handler.buildPayload(att, uploadedUrl);
56
+ payloads.push({
57
+ attachmentId: att.id,
58
+ payload
59
+ });
60
+ } catch (error) {
61
+ const msg = error instanceof Error ? error.message : 'Payload build failed';
62
+ result.failedAttachmentIds.push(att.id);
63
+ result.errors[att.id] = msg;
64
+ }
65
+ }
66
+
67
+ // 3. Send via OpenIM - always use createMergerMessage
68
+ console.log('[AttachmentOrchestrator] Sending via createMergerMessage', {
69
+ payloadCount: payloads.length,
70
+ attachmentIds: payloads.map(p => p.attachmentId)
71
+ });
72
+ try {
73
+ const mergedMsgId = await sendMergedMessage(payloads.map(p => p.payload), options.includeCaption, onMessageSent);
74
+ console.log('[AttachmentOrchestrator] Messages sent via merger:', {
75
+ messageId: mergedMsgId,
76
+ count: payloads.length
77
+ });
78
+ result.sentAttachmentIds = payloads.map(p => p.attachmentId);
79
+ result.mergedMessageId = mergedMsgId;
80
+ } catch (error) {
81
+ const msg = error instanceof Error ? error.message : 'Send failed';
82
+ console.error('[AttachmentOrchestrator] OpenIM send error:', {
83
+ error: msg,
84
+ stack: error instanceof Error ? error.stack : undefined
85
+ });
86
+ if (result.sentAttachmentIds.length === 0) {
87
+ result.errors._send = msg;
88
+ }
89
+ }
90
+ result.success = result.sentAttachmentIds.length > 0;
91
+ return result;
92
+ }
93
+ _AttachmentOrchestratorService.sendPreparedAttachments = sendPreparedAttachments;
94
+ async function sendMergedMessage(payloads, _caption, onMessageSent) {
95
+ const currentConversation = useConversationStore.getState().getCurrentConversation();
96
+ if (!currentConversation) {
97
+ throw new Error('No conversation selected');
98
+ }
99
+
100
+ // Get priority configuration
101
+ const priorityConfig = getAttachmentPriorityConfig();
102
+ console.log('[AttachmentOrchestrator] Using priority config:', {
103
+ enabled: priorityConfig.enabled,
104
+ order: priorityConfig.order
105
+ });
106
+
107
+ // Categorize payloads by type
108
+ const categorizedPayloads = {
109
+ image: [],
110
+ video: [],
111
+ file: [],
112
+ text: []
113
+ };
114
+ for (const p of payloads) {
115
+ const payload = p;
116
+ // Detect type from payload properties
117
+ if (payload.duration !== undefined || payload.videoPath !== undefined) {
118
+ categorizedPayloads.video.push(p);
119
+ } else if (payload.fileExtension !== undefined || payload.fileName && payload.fileName.includes('.')) {
120
+ categorizedPayloads.file.push(p);
121
+ } else if (payload.content && typeof payload.content === 'string') {
122
+ categorizedPayloads.text.push(p);
123
+ } else {
124
+ categorizedPayloads.image.push(p);
125
+ }
126
+ }
127
+ console.log('[AttachmentOrchestrator] Categorized payloads:', {
128
+ count: payloads.length,
129
+ images: categorizedPayloads.image.length,
130
+ videos: categorizedPayloads.video.length,
131
+ files: categorizedPayloads.file.length,
132
+ texts: categorizedPayloads.text.length
133
+ });
134
+
135
+ // AC2: Create message from payload based on type
136
+ const createMessageFromPayload = async p => {
137
+ if (p.duration !== undefined || p.videoPath !== undefined) {
138
+ console.log('[AttachmentOrchestrator] Creating video message');
139
+ return OpenIMSDK.createVideoMessageByURL(p);
140
+ }
141
+ if (p.fileExtension !== undefined || p.fileName && p.fileName.includes('.')) {
142
+ console.log('[AttachmentOrchestrator] Creating file message');
143
+ return OpenIMSDK.createFileMessageByURL(p);
144
+ }
145
+ if (p.content && typeof p.content === 'string') {
146
+ console.log('[AttachmentOrchestrator] Creating text message');
147
+ return OpenIMSDK.createTextMessage(p.content);
148
+ }
149
+ // Default to image
150
+ console.log('[AttachmentOrchestrator] Creating image message');
151
+ return OpenIMSDK.createImageMessageByURL(p);
152
+ };
153
+
154
+ // Process attachments in priority order from config
155
+ let lastMsgId = '';
156
+ const allMessages = [];
157
+ if (priorityConfig.enabled) {
158
+ // Use configured priority order
159
+ console.log('[AttachmentOrchestrator] Processing in priority order:', priorityConfig.order);
160
+ for (const attachmentType of priorityConfig.order) {
161
+ const payloadsForType = categorizedPayloads[attachmentType];
162
+ if (payloadsForType.length === 0) continue;
163
+ console.log(`[AttachmentOrchestrator] Processing ${attachmentType}:`, {
164
+ count: payloadsForType.length
165
+ });
166
+ const mergeStrategy = attachmentType === 'image' ? priorityConfig.mergeStrategy.images : attachmentType === 'video' ? priorityConfig.mergeStrategy.videos : attachmentType === 'file' ? priorityConfig.mergeStrategy.files : 'individual';
167
+ if (mergeStrategy === 'individual' || payloadsForType.length === 1) {
168
+ // Send individually
169
+ for (const p of payloadsForType) {
170
+ const message = await createMessageFromPayload(p);
171
+ allMessages.push(message);
172
+ }
173
+ } else {
174
+ // Merge multiple items
175
+ const messages = [];
176
+ for (const p of payloadsForType) {
177
+ const message = await createMessageFromPayload(p);
178
+ messages.push(message);
179
+ }
180
+ const typeLabel = attachmentType.charAt(0).toUpperCase() + attachmentType.slice(1);
181
+ const merged = await OpenIMSDK.createMergerMessage({
182
+ messageList: messages,
183
+ title: typeLabel + 's',
184
+ summaryList: messages.map((_, i) => `[${typeLabel} ${i + 1}]`)
185
+ });
186
+ if (merged) {
187
+ allMessages.push(merged);
188
+ }
189
+ }
190
+ }
191
+ } else {
192
+ // Original behavior (config disabled)
193
+ console.log('[AttachmentOrchestrator] Priority config disabled');
194
+ const allPayloads = [...categorizedPayloads.image, ...categorizedPayloads.video, ...categorizedPayloads.file, ...categorizedPayloads.text];
195
+ for (const p of allPayloads) {
196
+ const message = await createMessageFromPayload(p);
197
+ allMessages.push(message);
198
+ }
199
+ }
200
+
201
+ // Send all messages in priority order
202
+ console.log('[AttachmentOrchestrator] Sending all messages in priority order', {
203
+ totalMessages: allMessages.length
204
+ });
205
+ for (let i = 0; i < allMessages.length; i++) {
206
+ const message = allMessages[i];
207
+ console.log('[AttachmentOrchestrator] Sending message', i + 1, 'of', allMessages.length);
208
+ const result = await OpenIMSDK.sendMessageNotOss({
209
+ recvID: currentConversation.userID || '',
210
+ groupID: currentConversation.groupID || '',
211
+ message
212
+ });
213
+ lastMsgId = result?.clientMsgID || result?.serverMsgID || '';
214
+ console.log('[AttachmentOrchestrator] Message sent:', {
215
+ messageId: lastMsgId,
216
+ index: i + 1
217
+ });
218
+ if (onMessageSent && result) {
219
+ onMessageSent(result);
220
+ }
221
+ }
222
+ return lastMsgId;
223
+ }
224
+ })(AttachmentOrchestratorService || (AttachmentOrchestratorService = {}));
225
+ //# sourceMappingURL=attachmentOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OpenIMSDK","getAttachmentHandler","useConversationStore","getAttachmentPriorityConfig","AttachmentOrchestratorService","_AttachmentOrchestratorService","sendPreparedAttachments","attachments","uploadedUrls","options","strategy","onMessageSent","result","success","sentAttachmentIds","failedAttachmentIds","errors","length","console","log","att","handler","type","validation","validate","valid","push","id","reason","error","msg","Error","message","validAttachments","filter","a","includes","payloads","uploadedUrl","payload","buildPayload","attachmentId","payloadCount","attachmentIds","map","p","mergedMsgId","sendMergedMessage","includeCaption","messageId","count","mergedMessageId","stack","undefined","_send","_caption","currentConversation","getState","getCurrentConversation","priorityConfig","enabled","order","categorizedPayloads","image","video","file","text","duration","videoPath","fileExtension","fileName","content","images","videos","files","texts","createMessageFromPayload","createVideoMessageByURL","createFileMessageByURL","createTextMessage","createImageMessageByURL","lastMsgId","allMessages","attachmentType","payloadsForType","mergeStrategy","messages","typeLabel","charAt","toUpperCase","slice","merged","createMergerMessage","messageList","title","summaryList","_","i","allPayloads","totalMessages","sendMessageNotOss","recvID","userID","groupID","clientMsgID","serverMsgID","index"],"sourceRoot":"../../../src","sources":["services/attachmentOrchestrator.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Auth token management
5
+ * Consumer app calls setAuthToken() once at startup
6
+ * Library services call getAuthToken() internally
7
+ */
8
+
9
+ let authToken = null;
10
+
11
+ /**
12
+ * Set auth token (call once at app startup)
13
+ */
14
+ export const setAuthToken = token => {
15
+ authToken = token;
16
+ };
17
+
18
+ /**
19
+ * Get auth token (called internally by library services)
20
+ * @throws Error if token not set
21
+ */
22
+ export const getAuthToken = () => {
23
+ if (!authToken) {
24
+ throw new Error('Auth token not initialized. Call setAuthToken(token) at app startup.');
25
+ }
26
+ return authToken;
27
+ };
28
+
29
+ /**
30
+ * Clear token (logout)
31
+ */
32
+ export const clearAuthToken = () => {
33
+ authToken = null;
34
+ };
35
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["authToken","setAuthToken","token","getAuthToken","Error","clearAuthToken"],"sourceRoot":"../../../src","sources":["services/auth.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,IAAIA,SAAwB,GAAG,IAAI;;AAEnC;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAIC,KAAa,IAAK;EAC7CF,SAAS,GAAGE,KAAK;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAc;EACxC,IAAI,CAACH,SAAS,EAAE;IACd,MAAM,IAAII,KAAK,CACb,sEACF,CAAC;EACH;EACA,OAAOJ,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,cAAc,GAAGA,CAAA,KAAM;EAClCL,SAAS,GAAG,IAAI;AAClB,CAAC","ignoreList":[]}
@@ -1,8 +1,27 @@
1
1
  "use strict";
2
2
 
3
+ /**
4
+ * @deprecated Use config/api-endpoints.ts instead
5
+ * This file is kept for backward compatibility only.
6
+ * All endpoints should be managed through config/api-endpoints.ts
7
+ */
8
+
9
+ import { getApiEndpoint, setApiEndpoint, getAllApiEndpoints } from "../config/api-endpoints.js";
10
+
11
+ // Legacy interface - use api-endpoints.ts directly
3
12
  export const ENDPOINTS = {
4
13
  chatService: {
5
- urlMetadata: '/chat-service/v1/utils/url-metadata'
14
+ get urlMetadata() {
15
+ return getApiEndpoint('urlMetadata');
16
+ }
17
+ },
18
+ uploaderService: {
19
+ get uploadImage() {
20
+ return getApiEndpoint('imageUpload');
21
+ }
6
22
  }
7
23
  };
24
+
25
+ // Re-export proper API for new code
26
+ export { getApiEndpoint, setApiEndpoint, getAllApiEndpoints };
8
27
  //# sourceMappingURL=endpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ENDPOINTS","chatService","urlMetadata"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA,OAAO,MAAMA,SAAS,GAAG;EACvBC,WAAW,EAAE;IACXC,WAAW,EAAE;EACf;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getApiEndpoint","setApiEndpoint","getAllApiEndpoints","ENDPOINTS","chatService","urlMetadata","uploaderService","uploadImage"],"sourceRoot":"../../../src","sources":["services/endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SACEA,cAAc,EACdC,cAAc,EACdC,kBAAkB,QACb,4BAAyB;;AAEhC;AACA,OAAO,MAAMC,SAAS,GAAG;EACvBC,WAAW,EAAE;IACX,IAAIC,WAAWA,CAAA,EAAG;MAChB,OAAOL,cAAc,CAAC,aAAa,CAAC;IACtC;EACF,CAAC;EACDM,eAAe,EAAE;IACf,IAAIC,WAAWA,CAAA,EAAG;MAChB,OAAOP,cAAc,CAAC,aAAa,CAAC;IACtC;EACF;AACF,CAAC;;AAED;AACA,SAASA,cAAc,EAAEC,cAAc,EAAEC,kBAAkB","ignoreList":[]}