@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
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+
3
+ import { memo } from 'react';
4
+ import { ScrollView, StyleSheet } from 'react-native';
5
+ import { KContainer, KImage, KColors, KLabel } from '@droppii/libs';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const formatDuration = seconds => {
8
+ const mins = Math.floor(seconds / 60);
9
+ const secs = seconds % 60;
10
+ return `${mins}:${secs.toString().padStart(2, '0')}`;
11
+ };
12
+ const getAttachmentIcon = type => {
13
+ switch (type) {
14
+ case 'image':
15
+ return 'image';
16
+ case 'video':
17
+ return 'play-circle';
18
+ case 'audio':
19
+ return 'music';
20
+ case 'document':
21
+ return 'file-document';
22
+ case 'file':
23
+ default:
24
+ return 'file';
25
+ }
26
+ };
27
+ export const AttachmentPreview = /*#__PURE__*/memo(({
28
+ visible,
29
+ attachments,
30
+ onRemove
31
+ }) => {
32
+ if (!visible || !attachments?.length) {
33
+ return null;
34
+ }
35
+ return /*#__PURE__*/_jsx(KContainer.View, {
36
+ paddingH: "0.75rem"
37
+ // paddingV="0.75rem"
38
+ ,
39
+ brW: 1,
40
+ brC: KColors.palette.gray.w100,
41
+ background: KColors.white,
42
+ style: styles.container,
43
+ children: /*#__PURE__*/_jsx(KContainer.View, {
44
+ row: true,
45
+ alignItems: true,
46
+ minH: 70,
47
+ children: /*#__PURE__*/_jsx(KContainer.View, {
48
+ flex: true,
49
+ children: /*#__PURE__*/_jsx(ScrollView, {
50
+ horizontal: true,
51
+ showsHorizontalScrollIndicator: false,
52
+ scrollEventThrottle: 16,
53
+ contentContainerStyle: {
54
+ alignItems: 'center'
55
+ },
56
+ children: attachments.map((item, index) => {
57
+ const {
58
+ type,
59
+ metadata,
60
+ uploadProgress,
61
+ error,
62
+ isUploading,
63
+ thumbnailUrl
64
+ } = item;
65
+ const isImage = type === 'image';
66
+ const isVideo = type === 'video';
67
+ const hasPreview = isImage || isVideo;
68
+ return /*#__PURE__*/_jsxs(KContainer.View, {
69
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
70
+ style: styles.thumbnail,
71
+ center: true,
72
+ children: [isVideo && thumbnailUrl && /*#__PURE__*/_jsx(KImage.Base, {
73
+ uri: thumbnailUrl,
74
+ width: 48,
75
+ height: 48,
76
+ resizeMode: "cover"
77
+ }), isVideo && !thumbnailUrl && /*#__PURE__*/_jsx(KContainer.View, {
78
+ style: [styles.videoBg, styles.videoThumbnail]
79
+ }), isImage && /*#__PURE__*/_jsx(KImage.Base, {
80
+ uri: `file://${metadata.path}`,
81
+ width: 48,
82
+ height: 48
83
+ }), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
84
+ style: styles.iconOverlay,
85
+ center: true,
86
+ background: KColors.palette.gray.w100,
87
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
88
+ name: getAttachmentIcon(type),
89
+ provider: "MaterialCommunityIcons",
90
+ size: 24,
91
+ color: KColors.palette.primary.w400
92
+ })
93
+ }), isVideo && metadata.duration && /*#__PURE__*/_jsx(KContainer.View, {
94
+ style: styles.durationBadge,
95
+ center: true,
96
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
97
+ typo: "TextXsNormal",
98
+ color: KColors.white,
99
+ style: styles.durationText,
100
+ children: formatDuration(metadata.duration / 1000)
101
+ })
102
+ }), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
103
+ style: styles.typeIcon,
104
+ center: true,
105
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
106
+ name: getAttachmentIcon(type),
107
+ provider: "MaterialCommunityIcons",
108
+ size: 14,
109
+ color: KColors.white
110
+ })
111
+ }), error && /*#__PURE__*/_jsx(KContainer.View, {
112
+ style: styles.errorOverlay,
113
+ center: true,
114
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
115
+ name: "close-circle",
116
+ provider: "MaterialCommunityIcons",
117
+ size: 28,
118
+ color: KColors.white
119
+ })
120
+ }), isUploading && /*#__PURE__*/_jsx(KContainer.View, {
121
+ style: styles.progressOverlay,
122
+ center: true,
123
+ children: /*#__PURE__*/_jsxs(KLabel.Text, {
124
+ typo: "TextSmNormal",
125
+ color: KColors.white,
126
+ children: [uploadProgress, "%"]
127
+ })
128
+ })]
129
+ }), /*#__PURE__*/_jsx(KContainer.Touchable, {
130
+ style: styles.removeButton,
131
+ center: true,
132
+ br: "round",
133
+ background: KColors.black,
134
+ onPress: () => onRemove(type, index),
135
+ disabled: isUploading,
136
+ hitSlop: {
137
+ top: 10,
138
+ bottom: 10,
139
+ left: 10,
140
+ right: 10
141
+ },
142
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
143
+ name: "close",
144
+ provider: "MaterialCommunityIcons",
145
+ size: 14,
146
+ color: KColors.white
147
+ })
148
+ })]
149
+ }, `${type}-${index}`);
150
+ })
151
+ })
152
+ })
153
+ })
154
+ });
155
+ });
156
+ AttachmentPreview.displayName = 'AttachmentPreview';
157
+ const styles = StyleSheet.create({
158
+ container: {
159
+ // minHeight: 80,
160
+ },
161
+ thumbnail: {
162
+ position: 'relative',
163
+ width: 48,
164
+ height: 48,
165
+ borderRadius: 4,
166
+ overflow: 'hidden',
167
+ marginRight: 8,
168
+ backgroundColor: KColors.palette.gray.w50
169
+ },
170
+ durationBadge: {
171
+ position: 'absolute',
172
+ bottom: 4,
173
+ right: 4,
174
+ backgroundColor: 'rgba(0, 0, 0, 0.8)',
175
+ borderRadius: 3,
176
+ paddingVertical: 2,
177
+ paddingHorizontal: 4
178
+ },
179
+ durationText: {
180
+ fontSize: 11,
181
+ fontWeight: '600'
182
+ },
183
+ iconOverlay: {
184
+ width: 48,
185
+ height: 48,
186
+ borderRadius: 4
187
+ },
188
+ videoIcon: {
189
+ position: 'absolute',
190
+ top: 2,
191
+ right: 2,
192
+ backgroundColor: 'rgba(0, 0, 0, 0.6)',
193
+ borderRadius: 8,
194
+ width: 20,
195
+ height: 20
196
+ },
197
+ typeIcon: {
198
+ position: 'absolute',
199
+ bottom: 2,
200
+ right: 2,
201
+ backgroundColor: 'rgba(0, 0, 0, 0.7)',
202
+ borderRadius: 6,
203
+ width: 16,
204
+ height: 16
205
+ },
206
+ videoBg: {
207
+ width: 48,
208
+ height: 48,
209
+ borderRadius: 4
210
+ },
211
+ videoThumbnail: {
212
+ backgroundColor: KColors.black
213
+ },
214
+ progressOverlay: {
215
+ position: 'absolute',
216
+ top: 0,
217
+ left: 0,
218
+ right: 0,
219
+ bottom: 0,
220
+ backgroundColor: 'rgba(0, 0, 0, 0.6)'
221
+ },
222
+ errorOverlay: {
223
+ position: 'absolute',
224
+ top: 0,
225
+ left: 0,
226
+ right: 0,
227
+ bottom: 0,
228
+ backgroundColor: 'rgba(255, 59, 48, 0.8)'
229
+ },
230
+ removeButton: {
231
+ position: 'absolute',
232
+ top: -8,
233
+ right: 2,
234
+ width: 22,
235
+ height: 22,
236
+ shadowColor: '#000',
237
+ shadowOffset: {
238
+ width: 0,
239
+ height: 1
240
+ },
241
+ shadowOpacity: 0.2,
242
+ shadowRadius: 2,
243
+ elevation: 3
244
+ },
245
+ sendButton: {
246
+ width: 48,
247
+ height: 48
248
+ }
249
+ });
250
+ //# sourceMappingURL=AttachmentPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","ScrollView","StyleSheet","KContainer","KImage","KColors","KLabel","jsx","_jsx","jsxs","_jsxs","formatDuration","seconds","mins","Math","floor","secs","toString","padStart","getAttachmentIcon","type","AttachmentPreview","visible","attachments","onRemove","length","View","paddingH","brW","brC","palette","gray","w100","background","white","style","styles","container","children","row","alignItems","minH","flex","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","contentContainerStyle","map","item","index","metadata","uploadProgress","error","isUploading","thumbnailUrl","isImage","isVideo","hasPreview","thumbnail","center","Base","uri","width","height","resizeMode","videoBg","videoThumbnail","path","iconOverlay","VectorIcons","name","provider","size","color","primary","w400","duration","durationBadge","Text","typo","durationText","typeIcon","errorOverlay","progressOverlay","Touchable","removeButton","br","black","onPress","disabled","hitSlop","top","bottom","left","right","displayName","create","position","borderRadius","overflow","marginRight","backgroundColor","w50","paddingVertical","paddingHorizontal","fontSize","fontWeight","videoIcon","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sendButton"],"sourceRoot":"../../../src","sources":["components/AttachmentPreview.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/MediaViewer/index.tsx"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import { forwardRef, useImperativeHandle } from 'react';
4
+ import { Modal, StyleSheet } from 'react-native';
5
+ import MediaViewerScreen from "../screens/MediaView/index.js";
6
+ import { useMediaViewer } from "../hooks/useMediaViewer.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export const MediaViewerModal = /*#__PURE__*/forwardRef(({
9
+ onDismiss
10
+ }, ref) => {
11
+ const {
12
+ visible,
13
+ mediaList,
14
+ initIndex,
15
+ show,
16
+ hide
17
+ } = useMediaViewer();
18
+
19
+ // Expose show method to parent via ref
20
+ useImperativeHandle(ref, () => ({
21
+ show
22
+ }), [show]);
23
+ const handleDismiss = () => {
24
+ hide();
25
+ onDismiss?.();
26
+ };
27
+ if (!visible || mediaList.length === 0) {
28
+ return null;
29
+ }
30
+ const images = mediaList.map(item => ({
31
+ url: item.url,
32
+ isVideo: item.isVideo || false
33
+ }));
34
+ return /*#__PURE__*/_jsx(Modal, {
35
+ visible: visible,
36
+ transparent: false,
37
+ statusBarTranslucent: true,
38
+ style: styles.modal,
39
+ presentationStyle: "overFullScreen",
40
+ animationType: "fade",
41
+ onRequestClose: handleDismiss,
42
+ children: /*#__PURE__*/_jsx(MediaViewerScreen, {
43
+ images: images,
44
+ initIndex: initIndex,
45
+ pagination: images.length > 1,
46
+ onDismiss: handleDismiss,
47
+ download: true
48
+ })
49
+ });
50
+ });
51
+ MediaViewerModal.displayName = 'MediaViewerModal';
52
+ const styles = StyleSheet.create({
53
+ modal: {
54
+ flex: 1
55
+ }
56
+ });
57
+ //# sourceMappingURL=MediaViewerModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","useImperativeHandle","Modal","StyleSheet","MediaViewerScreen","useMediaViewer","jsx","_jsx","MediaViewerModal","onDismiss","ref","visible","mediaList","initIndex","show","hide","handleDismiss","length","images","map","item","url","isVideo","transparent","statusBarTranslucent","style","styles","modal","presentationStyle","animationType","onRequestClose","children","pagination","download","displayName","create","flex"],"sourceRoot":"../../../src","sources":["components/MediaViewerModal.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,mBAAmB,QAAQ,OAAO;AACvD,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,OAAOC,iBAAiB,MAAM,+BAAsB;AACpD,SAASC,cAAc,QAAwB,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUzE,OAAO,MAAMC,gBAAgB,gBAAGR,UAAU,CAGxC,CAAC;EAAES;AAAU,CAAC,EAAEC,GAAG,KAAK;EACxB,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAEC,SAAS;IAAEC,IAAI;IAAEC;EAAK,CAAC,GAAGV,cAAc,CAAC,CAAC;;EAEtE;EACAJ,mBAAmB,CACjBS,GAAG,EACH,OAAO;IACLI;EACF,CAAC,CAAC,EACF,CAACA,IAAI,CACP,CAAC;EAED,MAAME,aAAa,GAAGA,CAAA,KAAM;IAC1BD,IAAI,CAAC,CAAC;IACNN,SAAS,GAAG,CAAC;EACf,CAAC;EAED,IAAI,CAACE,OAAO,IAAIC,SAAS,CAACK,MAAM,KAAK,CAAC,EAAE;IACtC,OAAO,IAAI;EACb;EAEA,MAAMC,MAAM,GAAGN,SAAS,CAACO,GAAG,CAAEC,IAAI,KAAM;IACtCC,GAAG,EAAED,IAAI,CAACC,GAAG;IACbC,OAAO,EAAEF,IAAI,CAACE,OAAO,IAAI;EAC3B,CAAC,CAAC,CAAC;EAEH,oBACEf,IAAA,CAACL,KAAK;IACJS,OAAO,EAAEA,OAAQ;IACjBY,WAAW,EAAE,KAAM;IACnBC,oBAAoB,EAAE,IAAK;IAC3BC,KAAK,EAAEC,MAAM,CAACC,KAAM;IACpBC,iBAAiB,EAAC,gBAAgB;IAClCC,aAAa,EAAC,MAAM;IACpBC,cAAc,EAAEd,aAAc;IAAAe,QAAA,eAE9BxB,IAAA,CAACH,iBAAiB;MAChBc,MAAM,EAAEA,MAAO;MACfL,SAAS,EAAEA,SAAU;MACrBmB,UAAU,EAAEd,MAAM,CAACD,MAAM,GAAG,CAAE;MAC9BR,SAAS,EAAEO,aAAc;MACzBiB,QAAQ;IAAA,CACT;EAAC,CACG,CAAC;AAEZ,CAAC,CAAC;AAEFzB,gBAAgB,CAAC0B,WAAW,GAAG,kBAAkB;AAEjD,MAAMR,MAAM,GAAGvB,UAAU,CAACgC,MAAM,CAAC;EAC/BR,KAAK,EAAE;IACLS,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo, useState, useCallback } from 'react';
4
+ import { StyleSheet, useWindowDimensions } from 'react-native';
5
+ import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
6
+ import ChatImageDimens from "../utils/chatImageDimens.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ /**
9
+ * Generic image grid for merged messages
10
+ * Layout: 1 image (1x1), 2 images (1x2), 3 images (1x3), 4+ images (2x2)
11
+ * Shows "+N more" overlay on last cell if images exceed limit
12
+ */
13
+ export const MergedImageGrid = /*#__PURE__*/memo(({
14
+ images,
15
+ maxDisplay = 4,
16
+ onMediaPress
17
+ }) => {
18
+ const windowWidth = useWindowDimensions().width;
19
+ const [loadingState, setLoadingState] = useState({});
20
+ const displayedImages = useMemo(() => images.slice(0, maxDisplay), [images, maxDisplay]);
21
+ const hiddenCount = Math.max(0, images.length - maxDisplay);
22
+
23
+ // Calculate single image dimensions respecting aspect ratio and 80% width limit
24
+ const singleImageSize = useMemo(() => {
25
+ if (displayedImages.length !== 1) return null;
26
+ const image = displayedImages[0];
27
+ const pictureElem = image?.pictureElem;
28
+ const imgWidth = pictureElem?.width || pictureElem?.bigPicture?.width || 0;
29
+ const imgHeight = pictureElem?.height || pictureElem?.bigPicture?.height || 0;
30
+ const maxWidth = Math.floor(windowWidth * 0.8);
31
+ const aspectRatio = imgWidth && imgHeight ? imgWidth / imgHeight : 1;
32
+
33
+ // Calculate dimensions respecting aspect ratio and max width
34
+ let finalWidth = maxWidth;
35
+ let finalHeight = maxWidth / aspectRatio;
36
+
37
+ // If height exceeds reasonable limit, scale down
38
+ const maxHeight = 400;
39
+ if (finalHeight > maxHeight) {
40
+ finalHeight = maxHeight;
41
+ finalWidth = finalHeight * aspectRatio;
42
+ }
43
+ return {
44
+ width: Math.round(finalWidth),
45
+ height: Math.round(finalHeight)
46
+ };
47
+ }, [displayedImages, windowWidth]);
48
+ const mediaItems = useMemo(() => images.map(image => {
49
+ const pictureElem = image.pictureElem;
50
+ const imageUrl = pictureElem?.snapshotPicture?.url || pictureElem?.bigPicture?.url || pictureElem?.sourcePicture?.url;
51
+ return {
52
+ url: imageUrl
53
+ };
54
+ }).filter(item => Boolean(item.url)), [images]);
55
+ const handleImageLoadEnd = useCallback(index => {
56
+ setLoadingState(prev => ({
57
+ ...prev,
58
+ [index]: false
59
+ }));
60
+ }, []);
61
+ const handleImagePress = useCallback(index => {
62
+ onMediaPress?.(mediaItems, index);
63
+ }, [onMediaPress, mediaItems]);
64
+ const initializeLoading = useMemo(() => {
65
+ const initial = {};
66
+ displayedImages.forEach((_, index) => {
67
+ initial[index] = true;
68
+ });
69
+ return initial;
70
+ }, [displayedImages]);
71
+ useMemo(() => {
72
+ setLoadingState(initializeLoading);
73
+ }, [initializeLoading]);
74
+ if (displayedImages.length === 0) {
75
+ return null;
76
+ }
77
+
78
+ // Calculate columns based on image count
79
+ let columns = 1;
80
+ if (displayedImages.length === 2) {
81
+ columns = 2; // 2 images: horizontal layout (1x2)
82
+ } else if (displayedImages.length === 3) {
83
+ columns = 3; // 3 images: horizontal layout (1x3)
84
+ } else if (displayedImages.length >= 4) {
85
+ columns = 2; // 4+ images: grid layout (2x2)
86
+ }
87
+
88
+ // Use calculated aspect ratio for single image, 100x100 for multiple images
89
+ const cellSize = displayedImages.length === 1 && singleImageSize ? singleImageSize.width : 100;
90
+ const cellHeight = displayedImages.length === 1 && singleImageSize ? singleImageSize.height : cellSize;
91
+ const gap = 4;
92
+ const totalWidth = cellSize * columns + gap * (columns - 1);
93
+ return /*#__PURE__*/_jsx(KContainer.View, {
94
+ style: [styles.grid, {
95
+ width: totalWidth
96
+ }],
97
+ children: displayedImages.map((image, index) => {
98
+ const pictureElem = image.pictureElem;
99
+ const imageUrl = pictureElem?.snapshotPicture?.url || pictureElem?.bigPicture?.url || pictureElem?.sourcePicture?.url;
100
+ if (!imageUrl) {
101
+ return null;
102
+ }
103
+
104
+ // Use dynamic optimization based on calculated dimensions
105
+ const optimizedUrl = ChatImageDimens.getOptimizedImageUrlWithDimensions(imageUrl, cellSize, cellHeight);
106
+ const isLastCell = index === displayedImages.length - 1;
107
+ const showHiddenCount = isLastCell && hiddenCount > 0;
108
+ const isImageLoading = loadingState[index] ?? true;
109
+ return /*#__PURE__*/_jsxs(KContainer.Touchable, {
110
+ onPress: () => handleImagePress(index),
111
+ style: [styles.imageCell, {
112
+ width: cellSize,
113
+ height: cellHeight
114
+ }],
115
+ children: [/*#__PURE__*/_jsx(KImage.Base, {
116
+ uri: optimizedUrl,
117
+ width: cellSize,
118
+ height: cellHeight,
119
+ style: styles.image,
120
+ onLoadEnd: () => handleImageLoadEnd(index)
121
+ }), isImageLoading && /*#__PURE__*/_jsx(KContainer.View, {
122
+ style: styles.skeleton
123
+ }), showHiddenCount && /*#__PURE__*/_jsx(KContainer.View, {
124
+ style: styles.hiddenOverlay,
125
+ center: true,
126
+ children: /*#__PURE__*/_jsxs(KLabel.Text, {
127
+ typo: "TextMdBold",
128
+ color: KColors.white,
129
+ children: ["+", hiddenCount]
130
+ })
131
+ })]
132
+ }, `merged-image-${index}`);
133
+ })
134
+ });
135
+ });
136
+ MergedImageGrid.displayName = 'MergedImageGrid';
137
+ const styles = StyleSheet.create({
138
+ grid: {
139
+ flexDirection: 'row',
140
+ flexWrap: 'wrap',
141
+ gap: 4,
142
+ justifyContent: 'flex-start',
143
+ alignItems: 'flex-start'
144
+ },
145
+ imageCell: {
146
+ position: 'relative',
147
+ overflow: 'hidden',
148
+ borderRadius: 8,
149
+ backgroundColor: '#f0f0f0'
150
+ },
151
+ image: {
152
+ width: '100%',
153
+ height: '100%'
154
+ },
155
+ skeleton: {
156
+ position: 'absolute',
157
+ top: 0,
158
+ left: 0,
159
+ right: 0,
160
+ bottom: 0,
161
+ backgroundColor: '#f0f0f0',
162
+ borderRadius: 8
163
+ },
164
+ hiddenOverlay: {
165
+ position: 'absolute',
166
+ top: 0,
167
+ left: 0,
168
+ right: 0,
169
+ bottom: 0,
170
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
171
+ }
172
+ });
173
+ //# sourceMappingURL=MergedImageGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","useState","useCallback","StyleSheet","useWindowDimensions","KContainer","KImage","KLabel","KColors","ChatImageDimens","jsx","_jsx","jsxs","_jsxs","MergedImageGrid","images","maxDisplay","onMediaPress","windowWidth","width","loadingState","setLoadingState","displayedImages","slice","hiddenCount","Math","max","length","singleImageSize","image","pictureElem","imgWidth","bigPicture","imgHeight","height","maxWidth","floor","aspectRatio","finalWidth","finalHeight","maxHeight","round","mediaItems","map","imageUrl","snapshotPicture","url","sourcePicture","filter","item","Boolean","handleImageLoadEnd","index","prev","handleImagePress","initializeLoading","initial","forEach","_","columns","cellSize","cellHeight","gap","totalWidth","View","style","styles","grid","children","optimizedUrl","getOptimizedImageUrlWithDimensions","isLastCell","showHiddenCount","isImageLoading","Touchable","onPress","imageCell","Base","uri","onLoadEnd","skeleton","hiddenOverlay","center","Text","typo","color","white","displayName","create","flexDirection","flexWrap","justifyContent","alignItems","position","overflow","borderRadius","backgroundColor","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["components/MergedImageGrid.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,15 +2,15 @@
2
2
 
3
3
  import { memo } from 'react';
4
4
  import { Avatar } from "../Avatar/index.js";
5
- import { DChatCategory } from "../../types/chat.js";
5
+ import { PeerType } from '@droppii/openim-rn-client-sdk';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  export const AvatarSection = /*#__PURE__*/memo(({
8
8
  avatar,
9
9
  fullName,
10
- chatCategory,
10
+ peerType,
11
11
  applicationType
12
12
  }) => {
13
- if (chatCategory === DChatCategory.BIZ_BOT_CRM || chatCategory === DChatCategory.BIZ_BOT_PDP) {
13
+ if (peerType === PeerType.Bot) {
14
14
  return /*#__PURE__*/_jsx(Avatar, {
15
15
  source: avatar,
16
16
  fullName: fullName,
@@ -19,7 +19,7 @@ export const AvatarSection = /*#__PURE__*/memo(({
19
19
  }
20
20
  });
21
21
  }
22
- if (applicationType === 'MALL') {
22
+ if (peerType === PeerType.Customer || applicationType === 'MALL') {
23
23
  return /*#__PURE__*/_jsx(Avatar, {
24
24
  source: avatar,
25
25
  fullName: fullName,
@@ -1 +1 @@
1
- {"version":3,"names":["memo","Avatar","DChatCategory","jsx","_jsx","AvatarSection","avatar","fullName","chatCategory","applicationType","BIZ_BOT_CRM","BIZ_BOT_PDP","source","badge","variant","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/AvatarSection.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,MAAM,QAAQ,oBAAW;AAClC,SAASC,aAAa,QAAQ,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUjD,OAAO,MAAMC,aAAa,gBAAGL,IAAI,CAC/B,CAAC;EAAEM,MAAM;EAAEC,QAAQ;EAAEC,YAAY;EAAEC;AAAoC,CAAC,KAAK;EAC3E,IACED,YAAY,KAAKN,aAAa,CAACQ,WAAW,IAC1CF,YAAY,KAAKN,aAAa,CAACS,WAAW,EAC1C;IACA,oBACEP,IAAA,CAACH,MAAM;MACLW,MAAM,EAAEN,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBM,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAM;IAAE,CAC3B,CAAC;EAEN;EAEA,IAAIL,eAAe,KAAK,MAAM,EAAE;IAC9B,oBACEL,IAAA,CAACH,MAAM;MACLW,MAAM,EAAEN,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBM,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO;IAAE,CAC5B,CAAC;EAEN;EAEA,oBAAOV,IAAA,CAACH,MAAM;IAACW,MAAM,EAAEN,MAAO;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AACvD,CACF,CAAC;AAEDF,aAAa,CAACU,WAAW,GAAG,eAAe","ignoreList":[]}
1
+ {"version":3,"names":["memo","Avatar","PeerType","jsx","_jsx","AvatarSection","avatar","fullName","peerType","applicationType","Bot","source","badge","variant","Customer","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/AvatarSection.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,MAAM,QAAQ,oBAAW;AAElC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASzD,OAAO,MAAMC,aAAa,gBAAGL,IAAI,CAC/B,CAAC;EAAEM,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAoC,CAAC,KAAK;EACvE,IAAID,QAAQ,KAAKN,QAAQ,CAACQ,GAAG,EAAE;IAC7B,oBACEN,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAM;IAAE,CAC3B,CAAC;EAEN;EAEA,IAAIL,QAAQ,KAAKN,QAAQ,CAACY,QAAQ,IAAIL,eAAe,KAAK,MAAM,EAAE;IAChE,oBACEL,IAAA,CAACH,MAAM;MACLU,MAAM,EAAEL,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBK,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO;IAAE,CAC5B,CAAC;EAEN;EAEA,oBAAOT,IAAA,CAACH,MAAM;IAACU,MAAM,EAAEL,MAAO;IAACC,QAAQ,EAAEA;EAAS,CAAE,CAAC;AACvD,CACF,CAAC;AAEDF,aAAa,CAACU,WAAW,GAAG,eAAe","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  import { memo } from 'react';
4
4
  import { Image, StyleSheet } from 'react-native';
5
5
  import { KContainer, KImage, KColors } from '@droppii/libs';
6
- import { DChatCategory, DChatType } from "../../types/chat.js";
7
6
  import Images from "../../assets/images/index.js";
7
+ import { PeerType } from '@droppii/openim-rn-client-sdk';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  const styles = StyleSheet.create({
10
10
  icon: {
@@ -13,10 +13,9 @@ const styles = StyleSheet.create({
13
13
  }
14
14
  });
15
15
  export const NamePrefixIcon = /*#__PURE__*/memo(({
16
- chatCategory,
17
- chatType
16
+ peerType
18
17
  }) => {
19
- if (chatCategory === DChatCategory.BIZ_BOT_CRM) {
18
+ if (peerType === PeerType.Bot) {
20
19
  return /*#__PURE__*/_jsx(KContainer.View, {
21
20
  marginR: "0.25rem",
22
21
  children: /*#__PURE__*/_jsx(Image, {
@@ -25,18 +24,7 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
25
24
  })
26
25
  });
27
26
  }
28
- if (chatCategory === DChatCategory.BIZ_BOT_PDP) {
29
- return /*#__PURE__*/_jsx(KContainer.View, {
30
- marginR: "0.25rem",
31
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
32
- name: "robot-outline",
33
- provider: "MaterialCommunityIcons",
34
- size: 14,
35
- color: KColors.palette.primary.w400
36
- })
37
- });
38
- }
39
- if (chatType === DChatType.GROUP) {
27
+ if (peerType === PeerType.Group) {
40
28
  return /*#__PURE__*/_jsx(KContainer.View, {
41
29
  marginR: "0.25rem",
42
30
  children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
@@ -46,6 +34,15 @@ export const NamePrefixIcon = /*#__PURE__*/memo(({
46
34
  })
47
35
  });
48
36
  }
37
+
38
+ // if (peerType === DChatPeerType.CUSTOMER) {
39
+ // return (
40
+ // <KContainer.View marginR="0.25rem">
41
+ // <Image source={Images.ICON_DROPPII} style={styles.icon} />
42
+ // </KContainer.View>
43
+ // );
44
+ // }
45
+
49
46
  return null;
50
47
  });
51
48
  NamePrefixIcon.displayName = 'NamePrefixIcon';
@@ -1 +1 @@
1
- {"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","DChatCategory","DChatType","Images","jsx","_jsx","styles","create","icon","width","height","NamePrefixIcon","chatCategory","chatType","BIZ_BOT_CRM","View","marginR","children","source","ICON_DROPPII","style","BIZ_BOT_PDP","VectorIcons","name","provider","size","color","palette","primary","w400","GROUP","black","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/NamePrefixIcon.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAC3D,SAASC,aAAa,EAAEC,SAAS,QAAQ,qBAAkB;AAC3D,OAAOC,MAAM,MAAM,8BAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzC,MAAMC,MAAM,GAAGT,UAAU,CAACU,MAAM,CAAC;EAC/BC,IAAI,EAAE;IACJC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAOF,OAAO,MAAMC,cAAc,gBAAGhB,IAAI,CAChC,CAAC;EAAEiB,YAAY;EAAEC;AAA8B,CAAC,KAAK;EACnD,IAAID,YAAY,KAAKX,aAAa,CAACa,WAAW,EAAE;IAC9C,oBACET,IAAA,CAACP,UAAU,CAACiB,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCZ,IAAA,CAACT,KAAK;QAACsB,MAAM,EAAEf,MAAM,CAACgB,YAAa;QAACC,KAAK,EAAEd,MAAM,CAACE;MAAK,CAAE;IAAC,CAC3C,CAAC;EAEtB;EACA,IAAII,YAAY,KAAKX,aAAa,CAACoB,WAAW,EAAE;IAC9C,oBACEhB,IAAA,CAACP,UAAU,CAACiB,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCZ,IAAA,CAACN,MAAM,CAACuB,WAAW;QACjBC,IAAI,EAAC,eAAe;QACpBC,QAAQ,EAAC,wBAAwB;QACjCC,IAAI,EAAE,EAAG;QACTC,KAAK,EAAE1B,OAAO,CAAC2B,OAAO,CAACC,OAAO,CAACC;MAAK,CACrC;IAAC,CACa,CAAC;EAEtB;EAEA,IAAIhB,QAAQ,KAAKX,SAAS,CAAC4B,KAAK,EAAE;IAChC,oBACEzB,IAAA,CAACP,UAAU,CAACiB,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCZ,IAAA,CAACN,MAAM,CAACuB,WAAW;QACjBC,IAAI,EAAC,YAAY;QACjBE,IAAI,EAAE,EAAG;QACTC,KAAK,EAAE1B,OAAO,CAAC+B;MAAM,CACtB;IAAC,CACa,CAAC;EAEtB;EAEA,OAAO,IAAI;AACb,CACF,CAAC;AAEDpB,cAAc,CAACqB,WAAW,GAAG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["memo","Image","StyleSheet","KContainer","KImage","KColors","Images","PeerType","jsx","_jsx","styles","create","icon","width","height","NamePrefixIcon","peerType","Bot","View","marginR","children","source","ICON_DROPPII","style","Group","VectorIcons","name","size","color","black","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/NamePrefixIcon.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,KAAK,EAAEC,UAAU,QAAQ,cAAc;AAChD,SAASC,UAAU,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAC3D,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,QAAQ,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEzD,MAAMC,MAAM,GAAGR,UAAU,CAACS,MAAM,CAAC;EAC/BC,IAAI,EAAE;IACJC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAMF,OAAO,MAAMC,cAAc,gBAAGf,IAAI,CAAC,CAAC;EAAEgB;AAA8B,CAAC,KAAK;EACxE,IAAIA,QAAQ,KAAKT,QAAQ,CAACU,GAAG,EAAE;IAC7B,oBACER,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACR,KAAK;QAACoB,MAAM,EAAEf,MAAM,CAACgB,YAAa;QAACC,KAAK,EAAEb,MAAM,CAACE;MAAK,CAAE;IAAC,CAC3C,CAAC;EAEtB;EAEA,IAAII,QAAQ,KAAKT,QAAQ,CAACiB,KAAK,EAAE;IAC/B,oBACEf,IAAA,CAACN,UAAU,CAACe,IAAI;MAACC,OAAO,EAAC,SAAS;MAAAC,QAAA,eAChCX,IAAA,CAACL,MAAM,CAACqB,WAAW;QAACC,IAAI,EAAC,YAAY;QAACC,IAAI,EAAE,EAAG;QAACC,KAAK,EAAEvB,OAAO,CAACwB;MAAM,CAAE;IAAC,CACzD,CAAC;EAEtB;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAO,IAAI;AACb,CAAC,CAAC;AAEFd,cAAc,CAACe,WAAW,GAAG,gBAAgB","ignoreList":[]}