@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,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo, useCallback } from 'react';
4
- import { StyleSheet } from 'react-native';
5
4
  import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
6
- import { DChatCategory } from "../../types/chat.js";
7
5
  import { AvatarSection } from "./AvatarSection.js";
8
6
  import { NamePrefixIcon } from "./NamePrefixIcon.js";
9
7
  import { UnreadBadge } from "./UnreadBadge.js";
10
8
  import { formatTimestamp, getLastMessageText } from "./thread-card.utils.js";
11
- import Images from "../../assets/images/index.js";
12
9
  import { useConversation, useUserStore } from "../../store/index.js";
13
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
11
  const ThreadCard = /*#__PURE__*/memo(({
@@ -16,18 +13,19 @@ const ThreadCard = /*#__PURE__*/memo(({
16
13
  onPress
17
14
  }) => {
18
15
  const {
19
- peer,
20
- chatCategory,
16
+ peerType,
17
+ showName,
18
+ faceURL,
21
19
  lastMessage,
22
20
  unreadCount = 0,
23
- isMuted,
24
- pinnedAt,
21
+ recvMsgOpt,
22
+ isPinned,
25
23
  applicationType,
26
- chatType,
27
24
  latestMsgSendTime
28
25
  } = useConversation(item) ?? {};
29
- const fullName = peer?.fullName ?? peer?.username ?? '';
26
+ const fullName = showName ?? '';
30
27
  const hasUnread = unreadCount > 0;
28
+ const isMuted = (recvMsgOpt ?? 0) !== 0;
31
29
  const timestamp = formatTimestamp(latestMsgSendTime ?? lastMessage?.sendTime ?? null);
32
30
  const currentUserId = useUserStore(s => s.user?.userID);
33
31
  const lastMessageText = getLastMessageText(lastMessage, currentUserId);
@@ -45,11 +43,10 @@ const ThreadCard = /*#__PURE__*/memo(({
45
43
  onPress: handlePress,
46
44
  activeOpacity: 0.7,
47
45
  children: [/*#__PURE__*/_jsx(AvatarSection, {
48
- avatar: peer?.avatar ?? null,
46
+ avatar: faceURL ?? null,
49
47
  fullName: fullName,
50
- chatCategory: chatCategory,
51
- applicationType: applicationType,
52
- chatType: chatType
48
+ peerType: peerType,
49
+ applicationType: applicationType
53
50
  }), /*#__PURE__*/_jsxs(KContainer.View, {
54
51
  flex: true,
55
52
  marginL: "0.5rem",
@@ -58,17 +55,7 @@ const ThreadCard = /*#__PURE__*/memo(({
58
55
  row: true,
59
56
  alignItems: "center",
60
57
  children: [/*#__PURE__*/_jsx(NamePrefixIcon, {
61
- chatCategory: chatCategory,
62
- chatType: chatType
63
- }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
64
- visible:
65
- // chatCategory === DChatCategory.BIZ_BOT_CRM ||
66
- chatCategory === DChatCategory.BIZ_BOT_PDP,
67
- children: /*#__PURE__*/_jsx(KImage.Base, {
68
- uri: Images.ICON_BOT,
69
- size: 14,
70
- style: styles.botIcon
71
- })
58
+ peerType: peerType
72
59
  }), /*#__PURE__*/_jsx(KLabel.Text, {
73
60
  typo: hasUnread ? 'TextMdBold' : 'TextMdNormal',
74
61
  numberOfLines: 1,
@@ -76,7 +63,7 @@ const ThreadCard = /*#__PURE__*/memo(({
76
63
  flex: true,
77
64
  children: fullName
78
65
  }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
79
- visible: !!isMuted,
66
+ visible: isMuted,
80
67
  children: /*#__PURE__*/_jsx(KContainer.View, {
81
68
  marginL: "0.25rem",
82
69
  children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
@@ -105,7 +92,7 @@ const ThreadCard = /*#__PURE__*/memo(({
105
92
  flex: true,
106
93
  children: lastMessageText
107
94
  }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
108
- visible: Boolean(pinnedAt),
95
+ visible: Boolean(isPinned),
109
96
  children: /*#__PURE__*/_jsx(KContainer.View, {
110
97
  marginL: "0.5rem",
111
98
  children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
@@ -124,11 +111,4 @@ const ThreadCard = /*#__PURE__*/memo(({
124
111
  });
125
112
  ThreadCard.displayName = 'ThreadCard';
126
113
  export default ThreadCard;
127
- const styles = StyleSheet.create({
128
- botIcon: {
129
- width: 16,
130
- height: 16,
131
- marginRight: 4
132
- }
133
- });
134
114
  //# sourceMappingURL=ThreadCard.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","StyleSheet","KContainer","KImage","KLabel","KColors","DChatCategory","AvatarSection","NamePrefixIcon","UnreadBadge","formatTimestamp","getLastMessageText","Images","useConversation","useUserStore","jsx","_jsx","jsxs","_jsxs","ThreadCard","item","onPress","peer","chatCategory","lastMessage","unreadCount","isMuted","pinnedAt","applicationType","chatType","latestMsgSendTime","fullName","username","hasUnread","timestamp","sendTime","currentUserId","s","user","userID","lastMessageText","handlePress","event","Touchable","row","alignItems","paddingH","paddingV","activeOpacity","children","avatar","View","flex","marginL","paddingB","VisibleView","visible","BIZ_BOT_PDP","Base","uri","ICON_BOT","size","style","styles","botIcon","Text","typo","numberOfLines","color","black","VectorIcons","name","provider","palette","gray","w500","Boolean","w400","normal","count","displayName","create","width","height","marginRight"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/ThreadCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","KContainer","KImage","KLabel","KColors","AvatarSection","NamePrefixIcon","UnreadBadge","formatTimestamp","getLastMessageText","useConversation","useUserStore","jsx","_jsx","jsxs","_jsxs","ThreadCard","item","onPress","peerType","showName","faceURL","lastMessage","unreadCount","recvMsgOpt","isPinned","applicationType","latestMsgSendTime","fullName","hasUnread","isMuted","timestamp","sendTime","currentUserId","s","user","userID","lastMessageText","handlePress","event","Touchable","row","alignItems","paddingH","paddingV","activeOpacity","children","avatar","View","flex","marginL","paddingB","Text","typo","numberOfLines","color","black","VisibleView","visible","VectorIcons","name","provider","size","palette","gray","w500","Boolean","w400","normal","count","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/ThreadCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { MessageType } from '@droppii/openim-rn-client-sdk';
4
+ import { DChatMessageType } from "../../types/message.js";
4
5
  const extractTextContent = message => {
5
6
  if (message.textElem?.content) return message.textElem.content;
6
7
  try {
@@ -10,14 +11,89 @@ const extractTextContent = message => {
10
11
  return message.content ?? '';
11
12
  }
12
13
  };
14
+ const formatDuration = seconds => {
15
+ const mins = Math.floor(seconds / 60);
16
+ const secs = seconds % 60;
17
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
18
+ };
19
+ const getMessagePreview = message => {
20
+ // Check custom message type first
21
+ if (message.contentType === MessageType.CustomMessage) {
22
+ try {
23
+ const data = JSON.parse(message.content);
24
+ const dataType = data.dataType || data.type;
25
+ if (dataType === DChatMessageType.Link) {
26
+ const linkText = data.content || data.title || 'Link';
27
+ return linkText;
28
+ }
29
+ if (dataType === DChatMessageType.Order) {
30
+ const orderCode = data.orderCode || data.code || '';
31
+ return `[Đơn hàng] ${orderCode}`;
32
+ }
33
+ } catch {
34
+ // Fall through to default
35
+ }
36
+ }
37
+
38
+ // Handle standard message types
39
+ switch (message.contentType) {
40
+ case MessageType.TextMessage:
41
+ return extractTextContent(message);
42
+ case MessageType.PictureMessage:
43
+ return '[Hình ảnh]';
44
+ case MessageType.VideoMessage:
45
+ try {
46
+ const videoData = JSON.parse(message.content);
47
+ const duration = videoData.duration || 0;
48
+ const durationStr = duration > 0 ? ` ${formatDuration(duration)}` : '';
49
+ return `[Video]${durationStr}`;
50
+ } catch {
51
+ return '[Video]';
52
+ }
53
+ case MessageType.FileMessage:
54
+ try {
55
+ const fileData = JSON.parse(message.content);
56
+ const fileName = fileData.fileName || fileData.name || 'File';
57
+ return `[File] ${fileName}`;
58
+ } catch {
59
+ return '[File]';
60
+ }
61
+ case MessageType.MergeMessage:
62
+ // Show image count for merged messages containing images
63
+ try {
64
+ const mergeData = message.mergeElem;
65
+ if (mergeData?.multiMessage) {
66
+ const imageCount = mergeData.multiMessage.filter(msg => msg.contentType === MessageType.PictureMessage).length;
67
+ if (imageCount > 0) {
68
+ return `${imageCount} [Hình ảnh]`;
69
+ }
70
+ }
71
+ } catch {
72
+ // Fall through to default
73
+ }
74
+ return '';
75
+ case MessageType.UrlTextMessage:
76
+ // Preview link message - show with [Link] prefix
77
+ const urlText = message?.urlTextElem?.content || message?.urlTextElem?.urls?.[0] || '';
78
+ console.log('message', urlText);
79
+ return urlText ? `[Link] ${urlText}` : '[Link]';
80
+ case MessageType.AtTextMessage:
81
+ case MessageType.QuoteMessage:
82
+ return extractTextContent(message);
83
+ default:
84
+ return '[Tin nhắn không được hỗ trợ]';
85
+ }
86
+ };
13
87
  export const getLastMessageText = (message, currentUserId) => {
14
88
  if (!message) return '';
15
- if (message.contentType !== MessageType.TextMessage) return '';
16
- const text = extractTextContent(message);
89
+ const preview = getMessagePreview(message);
90
+ if (!preview) return '';
91
+
92
+ // Add sender name
17
93
  if (currentUserId && message.sendID === currentUserId) {
18
- return `Bạn: ${text}`;
94
+ return `Bạn: ${preview}`;
19
95
  }
20
- return text;
96
+ return preview;
21
97
  };
22
98
  export const formatTimestamp = ts => {
23
99
  if (!ts) return '';
@@ -1 +1 @@
1
- {"version":3,"names":["MessageType","extractTextContent","message","textElem","content","parsed","JSON","parse","getLastMessageText","currentUserId","contentType","TextMessage","text","sendID","formatTimestamp","ts","date","Date","isNaN","getTime","now","today","getFullYear","getMonth","getDate","yesterday","dateOnly","h","getHours","toString","padStart","m","getMinutes","daysAgo","Math","floor","dayNames","getDay","d","mo"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/thread-card.utils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MessageType","DChatMessageType","extractTextContent","message","textElem","content","parsed","JSON","parse","formatDuration","seconds","mins","Math","floor","secs","toString","padStart","getMessagePreview","contentType","CustomMessage","data","dataType","type","Link","linkText","title","Order","orderCode","code","TextMessage","PictureMessage","VideoMessage","videoData","duration","durationStr","FileMessage","fileData","fileName","name","MergeMessage","mergeData","mergeElem","multiMessage","imageCount","filter","msg","length","UrlTextMessage","urlText","urlTextElem","urls","console","log","AtTextMessage","QuoteMessage","getLastMessageText","currentUserId","preview","sendID","formatTimestamp","ts","date","Date","isNaN","getTime","now","today","getFullYear","getMonth","getDate","yesterday","dateOnly","h","getHours","m","getMinutes","daysAgo","dayNames","getDay","d","mo"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/thread-card.utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { KContainer, KLabel } from '@droppii/libs';
5
+ import { CHAT_BUBBLE_COLORS } from "../../../screens/chat-detail/constants.js";
6
+ import { messageStyles } from "../styles.js";
7
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
8
+ export const FileMessage = /*#__PURE__*/memo(({
9
+ message,
10
+ isOutgoing
11
+ }) => {
12
+ const fileName = message.fileElem?.fileName || message.content || '[File]';
13
+ return /*#__PURE__*/_jsx(KContainer.View, {
14
+ style: messageStyles.wrapper,
15
+ children: /*#__PURE__*/_jsx(KContainer.View, {
16
+ style: [messageStyles.bubble, isOutgoing ? messageStyles.bubbleSent : messageStyles.bubbleReceived],
17
+ children: /*#__PURE__*/_jsxs(KLabel.Text, {
18
+ typo: "TextSmNormal",
19
+ color: CHAT_BUBBLE_COLORS.text,
20
+ children: ["\uD83D\uDCCE ", fileName]
21
+ })
22
+ })
23
+ });
24
+ });
25
+ FileMessage.displayName = 'FileMessage';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","KContainer","KLabel","CHAT_BUBBLE_COLORS","messageStyles","jsxs","_jsxs","jsx","_jsx","FileMessage","message","isOutgoing","fileName","fileElem","content","View","style","wrapper","children","bubble","bubbleSent","bubbleReceived","Text","typo","color","text","displayName"],"sourceRoot":"../../../../../src","sources":["components/messages/fileMessage/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,EAAEC,MAAM,QAAQ,eAAe;AAClD,SAASC,kBAAkB,QAAQ,2CAAwC;AAC3E,SAASC,aAAa,QAAQ,cAAW;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,WAAW,gBAAGT,IAAI,CAC7B,CAAC;EAAEU,OAAO;EAAEC;AAAmC,CAAC,KAAK;EACnD,MAAMC,QAAQ,GAAGF,OAAO,CAACG,QAAQ,EAAED,QAAQ,IAAIF,OAAO,CAACI,OAAO,IAAI,QAAQ;EAE1E,oBACEN,IAAA,CAACP,UAAU,CAACc,IAAI;IAACC,KAAK,EAAEZ,aAAa,CAACa,OAAQ;IAAAC,QAAA,eAC5CV,IAAA,CAACP,UAAU,CAACc,IAAI;MACdC,KAAK,EAAE,CACLZ,aAAa,CAACe,MAAM,EACpBR,UAAU,GACNP,aAAa,CAACgB,UAAU,GACxBhB,aAAa,CAACiB,cAAc,CAChC;MAAAH,QAAA,eAEFZ,KAAA,CAACJ,MAAM,CAACoB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,KAAK,EAAErB,kBAAkB,CAACsB,IAAK;QAAAP,QAAA,GAAC,eAC5D,EAACN,QAAQ;MAAA,CACD;IAAC,CACC;EAAC,CACH,CAAC;AAEtB,CACF,CAAC;AAEDH,WAAW,CAACiB,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ import { memo, useState, useCallback, useMemo } from 'react';
4
+ import { StyleSheet, Image, useWindowDimensions } from 'react-native';
5
+ import { KContainer, KImage } from '@droppii/libs';
6
+ import ChatImageDimens from "../../../utils/chatImageDimens.js";
7
+ import { messageStyles } from "../styles.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const ImageMessage = /*#__PURE__*/memo(({
10
+ message,
11
+ onMediaPress
12
+ }) => {
13
+ const windowWidth = useWindowDimensions().width;
14
+ const [isLoading, setIsLoading] = useState(true);
15
+ const pictureElem = message.pictureElem;
16
+ const rawImageUrl = pictureElem?.snapshotPicture?.url || pictureElem?.bigPicture?.url || pictureElem?.sourcePicture?.url;
17
+
18
+ // Calculate dimensions respecting aspect ratio and 80% device width
19
+ const imageDimensions = useMemo(() => {
20
+ if (!rawImageUrl) return {
21
+ width: 250,
22
+ height: 250
23
+ };
24
+ const responseWidth = pictureElem?.width || pictureElem?.bigPicture?.width || pictureElem?.snapshotPicture?.width;
25
+ const responseHeight = pictureElem?.height || pictureElem?.bigPicture?.height || pictureElem?.snapshotPicture?.height;
26
+ let imgWidth = responseWidth;
27
+ let imgHeight = responseHeight;
28
+
29
+ // If no dimensions in response, try to resolve from image source
30
+ if (!imgWidth || !imgHeight) {
31
+ try {
32
+ const source = Image.resolveAssetSource({
33
+ uri: rawImageUrl
34
+ });
35
+ imgWidth = source?.width || 300;
36
+ imgHeight = source?.height || 300;
37
+ } catch {
38
+ // Fallback to default if resolution fails
39
+ imgWidth = 300;
40
+ imgHeight = 300;
41
+ }
42
+ }
43
+ const aspectRatio = imgWidth / imgHeight;
44
+ // Account for all margins/padding: use 75% of window width with buffer
45
+ const horizontalBuffer = 16; // Left and right combined buffer
46
+ const maxWidth = Math.floor(windowWidth * 0.75 - horizontalBuffer);
47
+
48
+ // Calculate final dimensions
49
+ let finalWidth = maxWidth;
50
+ let finalHeight = maxWidth / aspectRatio;
51
+
52
+ // Cap maximum height to avoid overly tall images
53
+ const maxHeight = 500;
54
+ if (finalHeight > maxHeight) {
55
+ finalHeight = maxHeight;
56
+ finalWidth = finalHeight * aspectRatio;
57
+ }
58
+ return {
59
+ width: Math.round(finalWidth),
60
+ height: Math.round(finalHeight)
61
+ };
62
+ }, [pictureElem, rawImageUrl, windowWidth]);
63
+ const handleLoadEnd = useCallback(() => {
64
+ setIsLoading(false);
65
+ }, []);
66
+ const handlePress = useCallback(() => {
67
+ onMediaPress?.([{
68
+ url: rawImageUrl
69
+ }], 0);
70
+ }, [onMediaPress, rawImageUrl]);
71
+ if (!rawImageUrl) {
72
+ return null;
73
+ }
74
+
75
+ // Use dynamic optimization matching calculated dimensions
76
+ const optimizedUrl = ChatImageDimens.getOptimizedImageUrlWithDimensions(rawImageUrl, imageDimensions.width, imageDimensions.height);
77
+ return /*#__PURE__*/_jsx(KContainer.View, {
78
+ style: [messageStyles.wrapper, styles.wrapper],
79
+ children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
80
+ onPress: handlePress,
81
+ style: [messageStyles.imageBubble, styles.imageContainer, {
82
+ width: imageDimensions.width,
83
+ height: imageDimensions.height
84
+ }],
85
+ children: [/*#__PURE__*/_jsx(KImage.Base, {
86
+ uri: optimizedUrl,
87
+ width: imageDimensions.width,
88
+ height: imageDimensions.height,
89
+ style: [messageStyles.imageBubble],
90
+ onLoadEnd: handleLoadEnd
91
+ }), isLoading && /*#__PURE__*/_jsx(KContainer.View, {
92
+ style: styles.skeleton
93
+ })]
94
+ })
95
+ });
96
+ });
97
+ ImageMessage.displayName = 'ImageMessage';
98
+ const styles = StyleSheet.create({
99
+ wrapper: {
100
+ // paddingRight: 8,
101
+ overflow: 'hidden'
102
+ },
103
+ skeleton: {
104
+ position: 'absolute',
105
+ top: 0,
106
+ left: 0,
107
+ right: 0,
108
+ bottom: 0,
109
+ backgroundColor: '#f0f0f0',
110
+ borderRadius: 8
111
+ },
112
+ imageContainer: {
113
+ position: 'relative',
114
+ overflow: 'hidden',
115
+ borderRadius: 8
116
+ }
117
+ });
118
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useState","useCallback","useMemo","StyleSheet","Image","useWindowDimensions","KContainer","KImage","ChatImageDimens","messageStyles","jsx","_jsx","jsxs","_jsxs","ImageMessage","message","onMediaPress","windowWidth","width","isLoading","setIsLoading","pictureElem","rawImageUrl","snapshotPicture","url","bigPicture","sourcePicture","imageDimensions","height","responseWidth","responseHeight","imgWidth","imgHeight","source","resolveAssetSource","uri","aspectRatio","horizontalBuffer","maxWidth","Math","floor","finalWidth","finalHeight","maxHeight","round","handleLoadEnd","handlePress","optimizedUrl","getOptimizedImageUrlWithDimensions","View","style","wrapper","styles","children","Touchable","onPress","imageBubble","imageContainer","Base","onLoadEnd","skeleton","displayName","create","overflow","position","top","left","right","bottom","backgroundColor","borderRadius"],"sourceRoot":"../../../../../src","sources":["components/messages/imageMessage/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { Linking, StyleSheet } from 'react-native';
5
+ import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
6
+ import { formatMessageTime } from "../types.js";
7
+ import { CHAT_BUBBLE_COLORS } from "../../../screens/chat-detail/constants.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const parseUrlMetadata = ex => {
10
+ if (!ex) return undefined;
11
+ try {
12
+ const parsed = JSON.parse(ex);
13
+ // Handle nested urlMetadata structure
14
+ return parsed.urlMetadata || parsed;
15
+ } catch {
16
+ return undefined;
17
+ }
18
+ };
19
+ const renderTextWithLinks = (content, urls) => {
20
+ if (!urls.length) {
21
+ return /*#__PURE__*/_jsx(KLabel.Text, {
22
+ typo: "TextMdNormal",
23
+ children: content
24
+ });
25
+ }
26
+ return /*#__PURE__*/_jsx(KLabel.Text, {
27
+ typo: "TextMdNormal",
28
+ color: CHAT_BUBBLE_COLORS.text,
29
+ children: content
30
+ });
31
+ };
32
+ export const LinkMessage = /*#__PURE__*/memo(({
33
+ message,
34
+ isOutgoing,
35
+ createdAtTime
36
+ }) => {
37
+ const content = message?.urlTextElem?.content;
38
+ const urls = message?.urlTextElem?.urls ?? [];
39
+ const metadata = parseUrlMetadata(message.ex);
40
+ const timeLabel = formatMessageTime(createdAtTime);
41
+ return /*#__PURE__*/_jsxs(KContainer.View, {
42
+ style: styles.wrapper,
43
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
44
+ style: [styles.bubble, isOutgoing ? styles.bubbleSent : styles.bubbleReceived],
45
+ children: [!!content?.trim() && /*#__PURE__*/_jsx(KContainer.View, {
46
+ style: styles.textRow,
47
+ children: renderTextWithLinks(content, urls)
48
+ }), metadata && /*#__PURE__*/_jsxs(KContainer.Touchable, {
49
+ style: styles.card,
50
+ onPress: () => metadata.url && Linking.openURL(metadata.url),
51
+ children: [!!metadata.image && /*#__PURE__*/_jsx(KContainer.View, {
52
+ style: styles.cardThumb,
53
+ children: /*#__PURE__*/_jsx(KImage.Base, {
54
+ uri: metadata.image,
55
+ style: StyleSheet.absoluteFill,
56
+ resizeMode: "cover"
57
+ })
58
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
59
+ style: styles.cardBody,
60
+ children: [!!metadata.title && /*#__PURE__*/_jsx(KLabel.Text, {
61
+ typo: "TextNmMedium",
62
+ color: KColors.palette.gray.w900,
63
+ numberOfLines: 1,
64
+ children: metadata.title
65
+ }), !!metadata.url && /*#__PURE__*/_jsx(KLabel.Text, {
66
+ typo: "TextXsMedium",
67
+ color: KColors.palette.primary.w400,
68
+ numberOfLines: 1,
69
+ children: metadata.url
70
+ }), !!metadata.description && /*#__PURE__*/_jsx(KLabel.Text, {
71
+ typo: "TextXsNormal",
72
+ color: KColors.gray.normal,
73
+ numberOfLines: 2,
74
+ children: metadata.description
75
+ })]
76
+ })]
77
+ })]
78
+ }), !isOutgoing && timeLabel ? /*#__PURE__*/_jsx(KLabel.Text, {
79
+ typo: "TextXsNormal",
80
+ color: CHAT_BUBBLE_COLORS.timestamp,
81
+ marginL: "0.25rem",
82
+ children: timeLabel
83
+ }) : null]
84
+ });
85
+ });
86
+ LinkMessage.displayName = 'LinkMessage';
87
+ const styles = StyleSheet.create({
88
+ wrapper: {
89
+ maxWidth: '80%'
90
+ },
91
+ bubble: {
92
+ paddingHorizontal: KSpacingValue['0.75rem'],
93
+ paddingVertical: KSpacingValue['0.5rem'],
94
+ borderRadius: KSpacingValue['1.25rem']
95
+ },
96
+ bubbleReceived: {
97
+ backgroundColor: CHAT_BUBBLE_COLORS.received
98
+ },
99
+ bubbleSent: {
100
+ backgroundColor: CHAT_BUBBLE_COLORS.sent
101
+ },
102
+ textRow: {
103
+ paddingHorizontal: KSpacingValue['0.25rem']
104
+ },
105
+ card: {
106
+ borderRadius: KSpacingValue['0.75rem'],
107
+ borderWidth: 1,
108
+ borderColor: 'rgba(57,62,64,0.1)',
109
+ backgroundColor: KColors.white,
110
+ overflow: 'hidden'
111
+ },
112
+ cardThumb: {
113
+ width: '100%',
114
+ aspectRatio: 16 / 9
115
+ },
116
+ cardBody: {
117
+ paddingHorizontal: KSpacingValue['0.75rem'],
118
+ paddingVertical: KSpacingValue['0.5rem'],
119
+ gap: 2
120
+ }
121
+ });
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","Linking","StyleSheet","KContainer","KImage","KLabel","KColors","KSpacingValue","formatMessageTime","CHAT_BUBBLE_COLORS","jsx","_jsx","jsxs","_jsxs","parseUrlMetadata","ex","undefined","parsed","JSON","parse","urlMetadata","renderTextWithLinks","content","urls","length","Text","typo","children","color","text","LinkMessage","message","isOutgoing","createdAtTime","urlTextElem","metadata","timeLabel","View","style","styles","wrapper","bubble","bubbleSent","bubbleReceived","trim","textRow","Touchable","card","onPress","url","openURL","image","cardThumb","Base","uri","absoluteFill","resizeMode","cardBody","title","palette","gray","w900","numberOfLines","primary","w400","description","normal","timestamp","marginL","displayName","create","maxWidth","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","received","sent","borderWidth","borderColor","white","overflow","width","aspectRatio","gap"],"sourceRoot":"../../../../../src","sources":["components/messages/linkMessage/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { KContainer } from '@droppii/libs';
5
+ import { MergedImageGrid } from "../../MergedImageGrid.js";
6
+ import { messageStyles } from "../styles.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const MergedMessage = /*#__PURE__*/memo(({
9
+ message,
10
+ isOutgoing,
11
+ onMediaPress
12
+ }) => {
13
+ const mergeElem = message.mergeElem;
14
+ if (!mergeElem?.multiMessage) {
15
+ return null;
16
+ }
17
+ const {
18
+ multiMessage
19
+ } = mergeElem;
20
+ const imageMessages = multiMessage.filter(msg => msg.contentType === 102);
21
+ return /*#__PURE__*/_jsx(KContainer.View, {
22
+ style: messageStyles.wrapper,
23
+ children: /*#__PURE__*/_jsx(KContainer.View, {
24
+ style: [messageStyles.bubble, isOutgoing ? messageStyles.bubbleSent : messageStyles.bubbleReceived],
25
+ children: imageMessages.length > 0 && /*#__PURE__*/_jsx(KContainer.View, {
26
+ marginB: "0.5rem",
27
+ children: /*#__PURE__*/_jsx(MergedImageGrid, {
28
+ images: imageMessages,
29
+ maxDisplay: 4,
30
+ onMediaPress: onMediaPress
31
+ })
32
+ })
33
+ })
34
+ });
35
+ });
36
+ MergedMessage.displayName = 'MergedMessage';
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","KContainer","MergedImageGrid","messageStyles","jsx","_jsx","MergedMessage","message","isOutgoing","onMediaPress","mergeElem","multiMessage","imageMessages","filter","msg","contentType","View","style","wrapper","children","bubble","bubbleSent","bubbleReceived","length","marginB","images","maxDisplay","displayName"],"sourceRoot":"../../../../../src","sources":["components/messages/mergedMessage/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,eAAe,QAAQ,0BAAuB;AACvD,SAASC,aAAa,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG1C,OAAO,MAAMC,aAAa,gBAAGN,IAAI,CAC/B,CAAC;EAAEO,OAAO;EAAEC,UAAU;EAAEC;AAAqC,CAAC,KAAK;EACjE,MAAMC,SAAS,GAAIH,OAAO,CAASG,SAAS;EAE5C,IAAI,CAACA,SAAS,EAAEC,YAAY,EAAE;IAC5B,OAAO,IAAI;EACb;EAEA,MAAM;IAAEA;EAAa,CAAC,GAAGD,SAAS;EAClC,MAAME,aAAa,GAAGD,YAAY,CAACE,MAAM,CACtCC,GAAQ,IAAKA,GAAG,CAACC,WAAW,KAAK,GACpC,CAAC;EAED,oBACEV,IAAA,CAACJ,UAAU,CAACe,IAAI;IAACC,KAAK,EAAEd,aAAa,CAACe,OAAQ;IAAAC,QAAA,eAC5Cd,IAAA,CAACJ,UAAU,CAACe,IAAI;MACdC,KAAK,EAAE,CACLd,aAAa,CAACiB,MAAM,EACpBZ,UAAU,GACNL,aAAa,CAACkB,UAAU,GACxBlB,aAAa,CAACmB,cAAc,CAChC;MAAAH,QAAA,EAEDP,aAAa,CAACW,MAAM,GAAG,CAAC,iBACvBlB,IAAA,CAACJ,UAAU,CAACe,IAAI;QAACQ,OAAO,EAAC,QAAQ;QAAAL,QAAA,eAC/Bd,IAAA,CAACH,eAAe;UACduB,MAAM,EAAEb,aAAc;UACtBc,UAAU,EAAE,CAAE;UACdjB,YAAY,EAAEA;QAAa,CAC5B;MAAC,CACa;IAClB,CACc;EAAC,CACH,CAAC;AAEtB,CACF,CAAC;AAEDH,aAAa,CAACqB,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet } from 'react-native';
4
+ import { KSpacingValue } from '@droppii/libs';
5
+ import { CHAT_BUBBLE_COLORS } from "../../screens/chat-detail/constants.js";
6
+ export const messageStyles = StyleSheet.create({
7
+ wrapper: {
8
+ maxWidth: '80%'
9
+ },
10
+ bubble: {
11
+ paddingHorizontal: KSpacingValue['0.75rem'],
12
+ paddingVertical: KSpacingValue['0.5rem'],
13
+ borderRadius: KSpacingValue['1.25rem']
14
+ },
15
+ bubbleReceived: {
16
+ backgroundColor: CHAT_BUBBLE_COLORS.received
17
+ },
18
+ bubbleSent: {
19
+ backgroundColor: CHAT_BUBBLE_COLORS.sent
20
+ },
21
+ imageBubble: {
22
+ borderRadius: KSpacingValue['0.75rem']
23
+ },
24
+ videoPlaceholder: {
25
+ backgroundColor: CHAT_BUBBLE_COLORS.received
26
+ },
27
+ videoContainer: {
28
+ position: 'relative',
29
+ overflow: 'hidden',
30
+ borderRadius: KSpacingValue['0.75rem']
31
+ },
32
+ playButtonOverlay: {
33
+ position: 'absolute',
34
+ top: 0,
35
+ left: 0,
36
+ right: 0,
37
+ bottom: 0,
38
+ backgroundColor: 'rgba(0, 0, 0, 0.3)'
39
+ }
40
+ });
41
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","KSpacingValue","CHAT_BUBBLE_COLORS","messageStyles","create","wrapper","maxWidth","bubble","paddingHorizontal","paddingVertical","borderRadius","bubbleReceived","backgroundColor","received","bubbleSent","sent","imageBubble","videoPlaceholder","videoContainer","position","overflow","playButtonOverlay","top","left","right","bottom"],"sourceRoot":"../../../../src","sources":["components/messages/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,kBAAkB,QAAQ,wCAAqC;AAExE,OAAO,MAAMC,aAAa,GAAGH,UAAU,CAACI,MAAM,CAAC;EAC7CC,OAAO,EAAE;IACPC,QAAQ,EAAE;EACZ,CAAC;EACDC,MAAM,EAAE;IACNC,iBAAiB,EAAEP,aAAa,CAAC,SAAS,CAAC;IAC3CQ,eAAe,EAAER,aAAa,CAAC,QAAQ,CAAC;IACxCS,YAAY,EAAET,aAAa,CAAC,SAAS;EACvC,CAAC;EACDU,cAAc,EAAE;IACdC,eAAe,EAAEV,kBAAkB,CAACW;EACtC,CAAC;EACDC,UAAU,EAAE;IACVF,eAAe,EAAEV,kBAAkB,CAACa;EACtC,CAAC;EACDC,WAAW,EAAE;IACXN,YAAY,EAAET,aAAa,CAAC,SAAS;EACvC,CAAC;EACDgB,gBAAgB,EAAE;IAChBL,eAAe,EAAEV,kBAAkB,CAACW;EACtC,CAAC;EACDK,cAAc,EAAE;IACdC,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE,QAAQ;IAClBV,YAAY,EAAET,aAAa,CAAC,SAAS;EACvC,CAAC;EACDoB,iBAAiB,EAAE;IACjBF,QAAQ,EAAE,UAAU;IACpBG,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTb,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}