@droppii-org/chat-mobile 0.2.7 → 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 (323) 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/thread-card.utils.js +80 -4
  10. package/lib/module/components/ThreadCard/thread-card.utils.js.map +1 -1
  11. package/lib/module/components/messages/fileMessage/index.js +26 -0
  12. package/lib/module/components/messages/fileMessage/index.js.map +1 -0
  13. package/lib/module/components/messages/imageMessage/index.js +118 -0
  14. package/lib/module/components/messages/imageMessage/index.js.map +1 -0
  15. package/lib/module/components/messages/linkMessage/index.js +122 -0
  16. package/lib/module/components/messages/linkMessage/index.js.map +1 -0
  17. package/lib/module/components/messages/mergedMessage/index.js +37 -0
  18. package/lib/module/components/messages/mergedMessage/index.js.map +1 -0
  19. package/lib/module/components/messages/styles.js +41 -0
  20. package/lib/module/components/messages/styles.js.map +1 -0
  21. package/lib/module/components/messages/textMessage/index.js +38 -0
  22. package/lib/module/components/messages/textMessage/index.js.map +1 -0
  23. package/lib/module/components/messages/types.js +14 -0
  24. package/lib/module/components/messages/types.js.map +1 -0
  25. package/lib/module/components/messages/videoMessage/index.js +110 -0
  26. package/lib/module/components/messages/videoMessage/index.js.map +1 -0
  27. package/lib/module/config/api-endpoints.js +66 -0
  28. package/lib/module/config/api-endpoints.js.map +1 -0
  29. package/lib/module/config/attachment-priority.js +81 -0
  30. package/lib/module/config/attachment-priority.js.map +1 -0
  31. package/lib/module/config/configuration.js +50 -0
  32. package/lib/module/config/configuration.js.map +1 -0
  33. package/lib/module/config/index.js +22 -0
  34. package/lib/module/config/index.js.map +1 -0
  35. package/lib/module/core/index.js +19 -1
  36. package/lib/module/core/index.js.map +1 -1
  37. package/lib/module/core/useChatListener.js +0 -14
  38. package/lib/module/core/useChatListener.js.map +1 -1
  39. package/lib/module/hooks/message/useSendMessage.js +10 -5
  40. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  41. package/lib/module/hooks/useChatMessages.js +0 -3
  42. package/lib/module/hooks/useChatMessages.js.map +1 -1
  43. package/lib/module/hooks/useImageAttachment.js +263 -0
  44. package/lib/module/hooks/useImageAttachment.js.map +1 -0
  45. package/lib/module/hooks/useMediaViewer.js +24 -0
  46. package/lib/module/hooks/useMediaViewer.js.map +1 -0
  47. package/lib/module/hooks/useSendAttachment.js +182 -0
  48. package/lib/module/hooks/useSendAttachment.js.map +1 -0
  49. package/lib/module/hooks/useVideoAttachment.js +251 -0
  50. package/lib/module/hooks/useVideoAttachment.js.map +1 -0
  51. package/lib/module/index.js +13 -1
  52. package/lib/module/index.js.map +1 -1
  53. package/lib/module/screens/MediaView/VideoPlayer.js +177 -0
  54. package/lib/module/screens/MediaView/VideoPlayer.js.map +1 -0
  55. package/lib/module/screens/MediaView/index.js +264 -0
  56. package/lib/module/screens/MediaView/index.js.map +1 -0
  57. package/lib/module/screens/chat-detail/ChatComposer.js +190 -196
  58. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  59. package/lib/module/screens/chat-detail/ChatDetail.js +94 -63
  60. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  61. package/lib/module/screens/chat-detail/ChatListLegend.js +5 -13
  62. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  63. package/lib/module/screens/chat-detail/components/ChatInputActions.js +51 -0
  64. package/lib/module/screens/chat-detail/components/ChatInputActions.js.map +1 -0
  65. package/lib/module/screens/chat-detail/components/ChatMessageInput.js +93 -0
  66. package/lib/module/screens/chat-detail/components/ChatMessageInput.js.map +1 -0
  67. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +221 -0
  68. package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -0
  69. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +114 -0
  70. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -0
  71. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js +26 -0
  72. package/lib/module/screens/chat-detail/hooks/useChatComposerState.js.map +1 -0
  73. package/lib/module/screens/chat-detail/index.js +0 -1
  74. package/lib/module/screens/chat-detail/index.js.map +1 -1
  75. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +33 -13
  76. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  77. package/lib/module/screens/chat-detail/legend/messageTypes.js +15 -0
  78. package/lib/module/screens/chat-detail/legend/messageTypes.js.map +1 -0
  79. package/lib/module/screens/inbox/MessagesTab.js.map +1 -1
  80. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +61 -0
  81. package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -0
  82. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +54 -0
  83. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -0
  84. package/lib/module/services/attachmentHandlers/index.js +12 -0
  85. package/lib/module/services/attachmentHandlers/index.js.map +1 -0
  86. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +85 -0
  87. package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js.map +1 -0
  88. package/lib/module/services/attachmentOrchestrator.js +225 -0
  89. package/lib/module/services/attachmentOrchestrator.js.map +1 -0
  90. package/lib/module/services/auth.js +35 -0
  91. package/lib/module/services/auth.js.map +1 -0
  92. package/lib/module/services/endpoints.js +20 -1
  93. package/lib/module/services/endpoints.js.map +1 -1
  94. package/lib/module/services/imageUpload.js +126 -0
  95. package/lib/module/services/imageUpload.js.map +1 -0
  96. package/lib/module/translation/resources/i18n.js +22 -8
  97. package/lib/module/translation/resources/i18n.js.map +1 -1
  98. package/lib/module/types/attachment.js +2 -0
  99. package/lib/module/types/attachment.js.map +1 -0
  100. package/lib/module/types/attachmentHandler.js +20 -0
  101. package/lib/module/types/attachmentHandler.js.map +1 -0
  102. package/lib/module/types/imageUpload.js +2 -0
  103. package/lib/module/types/imageUpload.js.map +1 -0
  104. package/lib/module/types/message.js +1 -0
  105. package/lib/module/types/message.js.map +1 -1
  106. package/lib/module/utils/chatImageDimens.js +148 -0
  107. package/lib/module/utils/chatImageDimens.js.map +1 -0
  108. package/lib/module/utils/device.js +65 -0
  109. package/lib/module/utils/device.js.map +1 -0
  110. package/lib/module/utils/imageUrlOptimizer.js +41 -0
  111. package/lib/module/utils/imageUrlOptimizer.js.map +1 -0
  112. package/lib/module/utils/imageUtils.js +69 -0
  113. package/lib/module/utils/imageUtils.js.map +1 -0
  114. package/lib/module/utils/resolveMessageType.js +3 -0
  115. package/lib/module/utils/resolveMessageType.js.map +1 -1
  116. package/lib/module/utils/ui.js +17 -0
  117. package/lib/module/utils/ui.js.map +1 -0
  118. package/lib/module/utils/url.js +1 -1
  119. package/lib/module/utils/url.js.map +1 -1
  120. package/lib/module/utils/videoThumbnail.js +62 -0
  121. package/lib/module/utils/videoThumbnail.js.map +1 -0
  122. package/lib/typescript/src/components/AttachmentPreview.d.ts +28 -0
  123. package/lib/typescript/src/components/AttachmentPreview.d.ts.map +1 -0
  124. package/lib/typescript/src/components/MediaViewer/index.d.ts +1 -0
  125. package/lib/typescript/src/components/MediaViewer/index.d.ts.map +1 -0
  126. package/lib/typescript/src/components/MediaViewerModal.d.ts +10 -0
  127. package/lib/typescript/src/components/MediaViewerModal.d.ts.map +1 -0
  128. package/lib/typescript/src/components/MergedImageGrid.d.ts +16 -0
  129. package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -0
  130. package/lib/typescript/src/components/ThreadCard/thread-card.utils.d.ts.map +1 -1
  131. package/lib/typescript/src/components/messages/fileMessage/index.d.ts +3 -0
  132. package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -0
  133. package/lib/typescript/src/components/messages/imageMessage/index.d.ts +3 -0
  134. package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -0
  135. package/lib/typescript/src/components/messages/linkMessage/index.d.ts +9 -0
  136. package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -0
  137. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts +3 -0
  138. package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -0
  139. package/lib/typescript/src/components/messages/styles.d.ts +36 -0
  140. package/lib/typescript/src/components/messages/styles.d.ts.map +1 -0
  141. package/lib/typescript/src/components/messages/textMessage/index.d.ts +9 -0
  142. package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -0
  143. package/lib/typescript/src/components/messages/types.d.ts +10 -0
  144. package/lib/typescript/src/components/messages/types.d.ts.map +1 -0
  145. package/lib/typescript/src/components/messages/videoMessage/index.d.ts +3 -0
  146. package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -0
  147. package/lib/typescript/src/config/api-endpoints.d.ts +40 -0
  148. package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -0
  149. package/lib/typescript/src/config/attachment-priority.d.ts +31 -0
  150. package/lib/typescript/src/config/attachment-priority.d.ts.map +1 -0
  151. package/lib/typescript/src/config/configuration.d.ts +30 -0
  152. package/lib/typescript/src/config/configuration.d.ts.map +1 -0
  153. package/lib/typescript/src/config/index.d.ts +15 -0
  154. package/lib/typescript/src/config/index.d.ts.map +1 -0
  155. package/lib/typescript/src/core/index.d.ts +13 -1
  156. package/lib/typescript/src/core/index.d.ts.map +1 -1
  157. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  158. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  159. package/lib/typescript/src/hooks/useChatMessages.d.ts.map +1 -1
  160. package/lib/typescript/src/hooks/useImageAttachment.d.ts +20 -0
  161. package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -0
  162. package/lib/typescript/src/hooks/useMediaViewer.d.ts +13 -0
  163. package/lib/typescript/src/hooks/useMediaViewer.d.ts.map +1 -0
  164. package/lib/typescript/src/hooks/useSendAttachment.d.ts +59 -0
  165. package/lib/typescript/src/hooks/useSendAttachment.d.ts.map +1 -0
  166. package/lib/typescript/src/hooks/useVideoAttachment.d.ts +29 -0
  167. package/lib/typescript/src/hooks/useVideoAttachment.d.ts.map +1 -0
  168. package/lib/typescript/src/index.d.ts +14 -1
  169. package/lib/typescript/src/index.d.ts.map +1 -1
  170. package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts +12 -0
  171. package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts.map +1 -0
  172. package/lib/typescript/src/screens/MediaView/index.d.ts +11 -0
  173. package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -0
  174. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +1 -1
  175. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  176. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
  177. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  178. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +1 -1
  179. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  180. package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts +8 -0
  181. package/lib/typescript/src/screens/chat-detail/components/ChatInputActions.d.ts.map +1 -0
  182. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts +15 -0
  183. package/lib/typescript/src/screens/chat-detail/components/ChatMessageInput.d.ts.map +1 -0
  184. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +23 -0
  185. package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -0
  186. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +15 -0
  187. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -0
  188. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts +13 -0
  189. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerState.d.ts.map +1 -0
  190. package/lib/typescript/src/screens/chat-detail/index.d.ts +0 -2
  191. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
  192. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +3 -1
  193. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  194. package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts +13 -0
  195. package/lib/typescript/src/screens/chat-detail/legend/messageTypes.d.ts.map +1 -0
  196. package/lib/typescript/src/screens/chat-detail/types.d.ts +4 -1
  197. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  198. package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +22 -0
  199. package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -0
  200. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts +3 -0
  201. package/lib/typescript/src/services/attachmentHandlers/imageAttachmentHandler.d.ts.map +1 -0
  202. package/lib/typescript/src/services/attachmentHandlers/index.d.ts +5 -0
  203. package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -0
  204. package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts +31 -0
  205. package/lib/typescript/src/services/attachmentHandlers/videoAttachmentHandler.d.ts.map +1 -0
  206. package/lib/typescript/src/services/attachmentOrchestrator.d.ts +5 -0
  207. package/lib/typescript/src/services/attachmentOrchestrator.d.ts.map +1 -0
  208. package/lib/typescript/src/services/auth.d.ts +19 -0
  209. package/lib/typescript/src/services/auth.d.ts.map +1 -0
  210. package/lib/typescript/src/services/endpoints.d.ts +11 -1
  211. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  212. package/lib/typescript/src/services/imageUpload.d.ts +7 -0
  213. package/lib/typescript/src/services/imageUpload.d.ts.map +1 -0
  214. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  215. package/lib/typescript/src/types/attachment.d.ts +72 -0
  216. package/lib/typescript/src/types/attachment.d.ts.map +1 -0
  217. package/lib/typescript/src/types/attachmentHandler.d.ts +13 -0
  218. package/lib/typescript/src/types/attachmentHandler.d.ts.map +1 -0
  219. package/lib/typescript/src/types/imageUpload.d.ts +26 -0
  220. package/lib/typescript/src/types/imageUpload.d.ts.map +1 -0
  221. package/lib/typescript/src/types/message.d.ts +1 -0
  222. package/lib/typescript/src/types/message.d.ts.map +1 -1
  223. package/lib/typescript/src/utils/chatImageDimens.d.ts +34 -0
  224. package/lib/typescript/src/utils/chatImageDimens.d.ts.map +1 -0
  225. package/lib/typescript/src/utils/device.d.ts +7 -0
  226. package/lib/typescript/src/utils/device.d.ts.map +1 -0
  227. package/lib/typescript/src/utils/imageUrlOptimizer.d.ts +12 -0
  228. package/lib/typescript/src/utils/imageUrlOptimizer.d.ts.map +1 -0
  229. package/lib/typescript/src/utils/imageUtils.d.ts +9 -0
  230. package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -0
  231. package/lib/typescript/src/utils/resolveMessageType.d.ts.map +1 -1
  232. package/lib/typescript/src/utils/ui.d.ts +13 -0
  233. package/lib/typescript/src/utils/ui.d.ts.map +1 -0
  234. package/lib/typescript/src/utils/videoThumbnail.d.ts +16 -0
  235. package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -0
  236. package/package.json +15 -3
  237. package/src/components/AttachmentPreview.tsx +304 -0
  238. package/src/components/MediaViewer/index.tsx +0 -0
  239. package/src/components/MediaViewerModal.tsx +70 -0
  240. package/src/components/MergedImageGrid.tsx +238 -0
  241. package/src/components/ThreadCard/thread-card.utils.ts +95 -4
  242. package/src/components/messages/fileMessage/index.tsx +30 -0
  243. package/src/components/messages/imageMessage/index.tsx +137 -0
  244. package/src/components/messages/linkMessage/index.tsx +162 -0
  245. package/src/components/messages/mergedMessage/index.tsx +45 -0
  246. package/src/components/messages/styles.ts +39 -0
  247. package/src/components/messages/textMessage/index.tsx +53 -0
  248. package/src/components/messages/types.ts +22 -0
  249. package/src/components/messages/videoMessage/index.tsx +120 -0
  250. package/src/config/api-endpoints.ts +72 -0
  251. package/src/config/attachment-priority.ts +93 -0
  252. package/src/config/configuration.ts +50 -0
  253. package/src/config/index.ts +19 -0
  254. package/src/core/index.ts +25 -1
  255. package/src/core/useChatListener.ts +0 -21
  256. package/src/hooks/message/useSendMessage.ts +12 -5
  257. package/src/hooks/useChatMessages.ts +0 -4
  258. package/src/hooks/useImageAttachment.ts +348 -0
  259. package/src/hooks/useMediaViewer.ts +32 -0
  260. package/src/hooks/useSendAttachment.ts +295 -0
  261. package/src/hooks/useVideoAttachment.ts +334 -0
  262. package/src/index.tsx +13 -1
  263. package/src/screens/MediaView/VideoPlayer.tsx +211 -0
  264. package/src/screens/MediaView/index.tsx +327 -0
  265. package/src/screens/chat-detail/ChatComposer.tsx +206 -271
  266. package/src/screens/chat-detail/ChatDetail.tsx +142 -89
  267. package/src/screens/chat-detail/ChatListLegend.tsx +9 -11
  268. package/src/screens/chat-detail/components/ChatInputActions.tsx +71 -0
  269. package/src/screens/chat-detail/components/ChatMessageInput.tsx +127 -0
  270. package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +291 -0
  271. package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +184 -0
  272. package/src/screens/chat-detail/hooks/useChatComposerState.ts +40 -0
  273. package/src/screens/chat-detail/index.ts +0 -2
  274. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +47 -24
  275. package/src/screens/chat-detail/legend/messageTypes.tsx +13 -0
  276. package/src/screens/chat-detail/types.ts +5 -1
  277. package/src/screens/inbox/MessagesTab.tsx +1 -1
  278. package/src/services/attachmentHandlers/fileAttachmentHandler.ts +78 -0
  279. package/src/services/attachmentHandlers/imageAttachmentHandler.ts +54 -0
  280. package/src/services/attachmentHandlers/index.ts +10 -0
  281. package/src/services/attachmentHandlers/videoAttachmentHandler.ts +114 -0
  282. package/src/services/attachmentOrchestrator.ts +300 -0
  283. package/src/services/auth.ts +34 -0
  284. package/src/services/endpoints.ts +24 -1
  285. package/src/services/imageUpload.ts +162 -0
  286. package/src/translation/resources/i18n.ts +22 -8
  287. package/src/types/attachment.ts +85 -0
  288. package/src/types/attachmentHandler.ts +31 -0
  289. package/src/types/imageUpload.ts +28 -0
  290. package/src/types/message.ts +1 -0
  291. package/src/utils/chatImageDimens.ts +178 -0
  292. package/src/utils/device.ts +73 -0
  293. package/src/utils/imageUrlOptimizer.ts +56 -0
  294. package/src/utils/imageUtils.ts +76 -0
  295. package/src/utils/resolveMessageType.ts +2 -0
  296. package/src/utils/ui.ts +19 -0
  297. package/src/utils/url.ts +1 -1
  298. package/src/utils/videoThumbnail.ts +85 -0
  299. package/lib/module/screens/chat-detail/ChatList.js +0 -147
  300. package/lib/module/screens/chat-detail/ChatList.js.map +0 -1
  301. package/lib/module/screens/chat-detail/ChatTextBubble.js +0 -62
  302. package/lib/module/screens/chat-detail/ChatTextBubble.js.map +0 -1
  303. package/lib/module/screens/chat-detail/legend/message-types.js +0 -244
  304. package/lib/module/screens/chat-detail/legend/message-types.js.map +0 -1
  305. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js +0 -24
  306. package/lib/module/screens/chat-detail/messages/ChatMessageBubble.js.map +0 -1
  307. package/lib/module/screens/chat-detail/messages/types.js +0 -4
  308. package/lib/module/screens/chat-detail/messages/types.js.map +0 -1
  309. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts +0 -3
  310. package/lib/typescript/src/screens/chat-detail/ChatList.d.ts.map +0 -1
  311. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts +0 -3
  312. package/lib/typescript/src/screens/chat-detail/ChatTextBubble.d.ts.map +0 -1
  313. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts +0 -13
  314. package/lib/typescript/src/screens/chat-detail/legend/message-types.d.ts.map +0 -1
  315. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts +0 -3
  316. package/lib/typescript/src/screens/chat-detail/messages/ChatMessageBubble.d.ts.map +0 -1
  317. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts +0 -13
  318. package/lib/typescript/src/screens/chat-detail/messages/types.d.ts.map +0 -1
  319. package/src/screens/chat-detail/ChatList.tsx +0 -190
  320. package/src/screens/chat-detail/ChatTextBubble.tsx +0 -73
  321. package/src/screens/chat-detail/legend/message-types.tsx +0 -304
  322. package/src/screens/chat-detail/messages/ChatMessageBubble.tsx +0 -23
  323. package/src/screens/chat-detail/messages/types.ts +0 -14
@@ -1,32 +1,34 @@
1
1
  "use strict";
2
2
 
3
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
- import { Keyboard, Platform, StyleSheet, TextInput } from 'react-native';
5
- import Reanimated, { runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
6
- import { useKeyboardState, useReanimatedKeyboardAnimation } from 'react-native-keyboard-controller';
3
+ import { memo, useCallback, useEffect, useMemo } from 'react';
4
+ import { Platform, StyleSheet } from 'react-native';
5
+ import Reanimated from 'react-native-reanimated';
7
6
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
8
- import { KContainer, KImage, KColors, KSpacingValue } from '@droppii/libs';
7
+ import { KContainer, KColors, KImage } from '@droppii/libs';
8
+ const IS_IOS = Platform.OS === 'ios';
9
+ const INPUT_LINE_HEIGHT = 22.4;
10
+ const WRAPPED_HEIGHT_THRESHOLD = IS_IOS ? INPUT_LINE_HEIGHT + 4 : INPUT_LINE_HEIGHT + 12;
9
11
  import { ChatQuickActions } from "./ChatQuickActions.js";
10
12
  import { ChatAttachmentPanel } from "./ChatAttachmentPanel.js";
11
13
  import { ChatLinkPreview } from "./ChatLinkPreview.js";
14
+ import { ChatMessageInput } from "./components/ChatMessageInput.js";
15
+ import { AttachmentPreview } from "../../components/AttachmentPreview.js";
12
16
  import { getAttachmentPanelHeight } from "./constants.js";
13
17
  import { useLinkPreview } from "../../hooks/useLinkPreview/useLinkPreview.js";
18
+ import { useImageAttachment } from "../../hooks/useImageAttachment.js";
19
+ import { useSendAttachment } from "../../hooks/useSendAttachment.js";
20
+ import { useChatComposerState } from "./hooks/useChatComposerState.js";
21
+ import { useChatComposerAnimation } from "./hooks/useChatComposerAnimation.js";
22
+ import { useAttachmentSendHandler } from "./hooks/useAttachmentSendHandler.js";
23
+ import { isVideoFromPicker } from "../../utils/imageUtils.js";
14
24
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- const ACCESSORY_ANIMATION_MS = 250;
16
- const ACCESSORY_SETTLE_MS = 150;
17
- const IS_IOS = Platform.OS === 'ios';
18
- const INPUT_FONT_SIZE = 16;
19
- const INPUT_LINE_HEIGHT = 22.4;
20
- const INPUT_MAX_HEIGHT = INPUT_LINE_HEIGHT * 5;
21
- // Android's onContentSizeChange includes paddingVertical (4*2=8) in reported height
22
- const WRAPPED_HEIGHT_THRESHOLD = IS_IOS ? INPUT_LINE_HEIGHT + 4 : INPUT_LINE_HEIGHT + 12;
23
25
  export const ChatComposer = /*#__PURE__*/memo(({
24
26
  value,
25
27
  placeholder = 'Nhập tin nhắn...',
26
28
  onChangeText,
27
29
  onSend,
28
- onPressAttach,
29
- onPressEmoji,
30
+ onMessageSent,
31
+ onPressEmoji: _onPressEmoji,
30
32
  showQuickActions = true,
31
33
  quickActions,
32
34
  attachmentActions,
@@ -37,153 +39,159 @@ export const ChatComposer = /*#__PURE__*/memo(({
37
39
  renderAttachmentAction,
38
40
  attachmentColumns
39
41
  }) => {
40
- const hasAttachmentActions = !!attachmentActions?.length;
41
- const inputRef = useRef(null);
42
- const isSwitchingToAttachmentRef = useRef(false);
43
- const [isAttachmentOpen, setIsAttachmentOpen] = useState(false);
44
- const [isInputFocused, setIsInputFocused] = useState(false);
45
- const [isInputWrapped, setIsInputWrapped] = useState(false);
46
42
  const insets = useSafeAreaInsets();
43
+ const hasAttachmentActions = !!attachmentActions?.length;
44
+
45
+ // Link preview
47
46
  const {
48
47
  isVisible: showLinkPreview,
49
48
  metadata: urlMetadata,
50
49
  isLoading: isMetadataLoading,
51
50
  dismiss: handleDismissPreview
52
51
  } = useLinkPreview(value);
53
- const isKeyboardVisible = useKeyboardState(state => state.isVisible);
54
- const keyboardHeight = useKeyboardState(state => state.height);
52
+
53
+ // Image attachment
55
54
  const {
56
- progress: keyboardProgress
57
- } = useReanimatedKeyboardAnimation();
55
+ selectedImages,
56
+ isImagePreviewVisible,
57
+ handleImageAttach,
58
+ handleImageRemove,
59
+ clearAllImages
60
+ } = useImageAttachment();
61
+
62
+ // Send attachment
63
+ const {
64
+ send: sendAttachments
65
+ } = useSendAttachment();
66
+
67
+ // Callback to send text message (with optional preview link)
68
+ // This is used when sending text after attachments
69
+ const handleSendText = useCallback((text, previewMetadata) => {
70
+ // Send with the captured text and preview metadata
71
+ // Note: ChatDetail's handleSend will read currentInput, but for text sent
72
+ // after attachments, we want to use the captured text instead
73
+ // So we pass it via a special handling in the metadata
74
+ const metadataWithText = previewMetadata ? {
75
+ ...previewMetadata,
76
+ _capturedText: text
77
+ } : undefined;
78
+ onSend?.(metadataWithText);
79
+ }, [onSend]);
80
+
81
+ // Attachment send handler
82
+ const {
83
+ handleSend: handleAttachmentSend
84
+ } = useAttachmentSendHandler({
85
+ selectedImages,
86
+ sendAttachments,
87
+ clearAllImages,
88
+ onSend,
89
+ onMessageSent,
90
+ textMessage: (value ?? '').trim(),
91
+ urlMetadata: showLinkPreview ? urlMetadata : undefined,
92
+ onSendText: handleSendText
93
+ });
94
+
95
+ // Composer state
96
+ const {
97
+ isAttachmentOpen,
98
+ setIsAttachmentOpen,
99
+ isInputFocused,
100
+ setIsInputFocused,
101
+ setIsInputWrapped,
102
+ isMultilineInput,
103
+ inputRef
104
+ } = useChatComposerState(value);
105
+
106
+ // Panel height calculation
58
107
  const panelHeight = useMemo(() => hasAttachmentActions ? getAttachmentPanelHeight(attachmentActions.length, attachmentColumns) : 0, [attachmentActions, attachmentColumns, hasAttachmentActions]);
59
- const attachmentHeightSV = useSharedValue(0);
60
- const panelHeightSV = useSharedValue(panelHeight);
61
- const switchKeyboardHeightSV = useSharedValue(0);
62
- const isKeyboardToAttachmentSwitchSV = useSharedValue(false);
63
- useEffect(() => {
64
- panelHeightSV.value = panelHeight;
65
- }, [panelHeight, panelHeightSV]);
66
- const openAttachment = useCallback(() => {
67
- attachmentHeightSV.value = withTiming(panelHeight, {
68
- duration: ACCESSORY_ANIMATION_MS
69
- });
70
- setIsAttachmentOpen(true);
71
- }, [attachmentHeightSV, panelHeight]);
72
- const closeAttachment = useCallback(() => {
73
- attachmentHeightSV.value = withTiming(0, {
74
- duration: ACCESSORY_ANIMATION_MS
75
- });
76
- setIsAttachmentOpen(false);
77
- }, [attachmentHeightSV]);
78
- const finishKeyboardToAttachmentSwitch = useCallback(() => {
79
- if (!isSwitchingToAttachmentRef.current) {
80
- return;
81
- }
82
- isSwitchingToAttachmentRef.current = false;
83
- isKeyboardToAttachmentSwitchSV.value = false;
84
- const targetHeight = panelHeightSV.value;
85
- const startHeight = switchKeyboardHeightSV.value;
86
- if (Math.abs(startHeight - targetHeight) < 1) {
87
- attachmentHeightSV.value = targetHeight;
88
- return;
89
- }
90
- attachmentHeightSV.value = withTiming(targetHeight, {
91
- duration: ACCESSORY_SETTLE_MS
92
- });
93
- }, [attachmentHeightSV, isKeyboardToAttachmentSwitchSV, panelHeightSV, switchKeyboardHeightSV]);
94
- useEffect(() => {
95
- if (!isKeyboardVisible && isSwitchingToAttachmentRef.current) {
96
- finishKeyboardToAttachmentSwitch();
97
- }
98
- }, [finishKeyboardToAttachmentSwitch, isKeyboardVisible]);
99
- useAnimatedReaction(() => ({
100
- switching: isKeyboardToAttachmentSwitchSV.value,
101
- progress: keyboardProgress.value
102
- }), (current, previous) => {
103
- if (current.switching && current.progress === 0 && (previous?.progress ?? 1) > 0) {
104
- runOnJS(finishKeyboardToAttachmentSwitch)();
105
- }
106
- }, [finishKeyboardToAttachmentSwitch]);
107
- useEffect(() => {
108
- if (isSwitchingToAttachmentRef.current) {
109
- return;
110
- }
111
- if (isKeyboardVisible && isAttachmentOpen) {
112
- closeAttachment();
113
- }
114
- }, [closeAttachment, isAttachmentOpen, isKeyboardVisible]);
115
- const accessorySlotStyle = useAnimatedStyle(() => {
116
- if (isKeyboardToAttachmentSwitchSV.value) {
117
- return {
118
- height: switchKeyboardHeightSV.value * (1 - keyboardProgress.value)
119
- };
120
- }
121
- return {
122
- height: attachmentHeightSV.value
123
- };
108
+
109
+ // Animation
110
+ const {
111
+ accessorySlotStyle,
112
+ toggleAttachmentVisibility,
113
+ closeAttachment
114
+ } = useChatComposerAnimation({
115
+ isAttachmentOpen,
116
+ panelHeight,
117
+ onAttachmentOpenChange: setIsAttachmentOpen
124
118
  });
119
+
120
+ // Check if any attachments are currently uploading
121
+ const isUploadingAttachments = useMemo(() => selectedImages.some(img => img.isUploading), [selectedImages]);
122
+
123
+ // Send handler - includes attachment and preview link features
125
124
  const handleSend = useCallback(() => {
126
- onSend?.(showLinkPreview ? urlMetadata : undefined);
127
- }, [onSend, urlMetadata, showLinkPreview]);
128
- const handleToggleAttachment = useCallback(() => {
129
- if (!hasAttachmentActions) {
125
+ const hasAttachments = selectedImages.length > 0;
126
+ const hasText = (value ?? '').trim().length > 0;
127
+ // Only send metadata if preview is CURRENTLY visible (user didn't dismiss it)
128
+ const previewMetadata = showLinkPreview ? urlMetadata : undefined;
129
+ const hasPreview = !!previewMetadata;
130
+
131
+ // Prevent sending while files are uploading
132
+ if (isUploadingAttachments) {
133
+ console.warn('[ChatComposer] Cannot send message while files are uploading');
130
134
  return;
131
135
  }
132
- if (isAttachmentOpen) {
133
- closeAttachment();
136
+
137
+ // Validate: must have at least one of: attachments, text, or preview link
138
+ if (!hasAttachments && !hasText && !hasPreview) {
139
+ console.warn('[ChatComposer] No attachments, text, or preview link to send');
134
140
  return;
135
141
  }
136
- onPressAttach?.();
137
- inputRef.current?.blur();
138
- if (isKeyboardVisible && keyboardHeight > 0) {
139
- isSwitchingToAttachmentRef.current = true;
140
- switchKeyboardHeightSV.value = keyboardHeight;
141
- isKeyboardToAttachmentSwitchSV.value = true;
142
- setIsAttachmentOpen(true);
143
- Keyboard.dismiss();
144
- return;
142
+ if (hasAttachments) {
143
+ // Send attachments (+ text if present, handled in attachment handler)
144
+ handleAttachmentSend();
145
+ } else {
146
+ // Send text/preview link only
147
+ console.log('[ChatComposer] handleSend - text message:', {
148
+ hasText,
149
+ hasPreview,
150
+ previewUrl: previewMetadata?.url
151
+ });
152
+ onSend?.(previewMetadata);
145
153
  }
146
- openAttachment();
147
- }, [closeAttachment, isAttachmentOpen, isKeyboardVisible, keyboardHeight, isKeyboardToAttachmentSwitchSV, onPressAttach, hasAttachmentActions, openAttachment, switchKeyboardHeightSV]);
154
+ }, [onSend, urlMetadata, showLinkPreview, selectedImages, handleAttachmentSend, value, isUploadingAttachments]);
148
155
  const handleInputFocus = useCallback(() => {
149
156
  setIsInputFocused(true);
150
- if (!isAttachmentOpen) {
151
- return;
157
+ // Close attachment panel with animation when input is focused
158
+ if (isAttachmentOpen) {
159
+ closeAttachment();
152
160
  }
153
- closeAttachment();
154
- }, [closeAttachment, isAttachmentOpen]);
161
+ }, [closeAttachment, isAttachmentOpen, setIsInputFocused]);
155
162
  const handleInputBlur = useCallback(() => {
156
163
  setIsInputFocused(false);
157
- }, []);
164
+ }, [setIsInputFocused]);
165
+ const handleChangeText = useCallback(text => {
166
+ onChangeText?.(text);
167
+ }, [onChangeText]);
158
168
  const handleInputContentSizeChange = useCallback(event => {
159
169
  const {
160
170
  height
161
171
  } = event.nativeEvent.contentSize;
162
172
  setIsInputWrapped(height > WRAPPED_HEIGHT_THRESHOLD);
163
- }, []);
164
- const isMultilineInput = useMemo(() => {
165
- if (!value) {
166
- return false;
167
- }
168
- return value.includes('\n') || isInputWrapped;
169
- }, [isInputWrapped, value]);
173
+ }, [setIsInputWrapped]);
174
+
175
+ // Reset wrapped state when value is cleared
170
176
  useEffect(() => {
171
177
  if (!value) {
172
178
  setIsInputWrapped(false);
173
179
  }
174
- }, [value]);
175
- const renderEmojiNode = useCallback(() => /*#__PURE__*/_jsx(KContainer.Touchable, {
176
- marginR: "0.5rem",
177
- onPress: onPressEmoji,
178
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
179
- name: "sticker-o",
180
- size: 24,
181
- color: KColors.gray.normal
182
- })
183
- }), [onPressEmoji]);
180
+ }, [value, setIsInputWrapped]);
181
+
182
+ // Attachment action handler
183
+ const handleAttachmentActionInternal = useCallback(async action => {
184
+ if (action.id === 'gallery') {
185
+ await handleImageAttach();
186
+ } else {
187
+ onAttachmentAction?.(action);
188
+ }
189
+ }, [onAttachmentAction, handleImageAttach]);
190
+
191
+ // Input row padding
184
192
  const inputRowStyle = useMemo(() => ({
185
- paddingBottom: isAttachmentOpen || isKeyboardVisible ? 8 : insets.bottom + 12
186
- }), [insets.bottom, isAttachmentOpen, isKeyboardVisible]);
193
+ paddingBottom: isAttachmentOpen ? 8 : insets.bottom + 12
194
+ }), [insets.bottom, isAttachmentOpen]);
187
195
  return /*#__PURE__*/_jsxs(KContainer.View, {
188
196
  background: 'rgba(131, 137, 157, 0.05)',
189
197
  children: [/*#__PURE__*/_jsx(ChatQuickActions, {
@@ -192,19 +200,47 @@ export const ChatComposer = /*#__PURE__*/memo(({
192
200
  onActionPress: onQuickActionPress,
193
201
  renderAction: renderQuickAction,
194
202
  renderQuickActions: renderQuickActions
195
- }), showLinkPreview ? /*#__PURE__*/_jsx(ChatLinkPreview, {
203
+ }), showLinkPreview && /*#__PURE__*/_jsx(ChatLinkPreview, {
196
204
  metadata: urlMetadata,
197
205
  isLoading: isMetadataLoading,
198
206
  onDismiss: handleDismissPreview
199
- }) : null, /*#__PURE__*/_jsxs(KContainer.View, {
207
+ }), /*#__PURE__*/_jsx(AttachmentPreview, {
208
+ visible: isImagePreviewVisible,
209
+ attachments: selectedImages.map(img => {
210
+ const isVideo = isVideoFromPicker(img.image);
211
+ return {
212
+ type: isVideo ? 'video' : 'image',
213
+ metadata: {
214
+ path: img.image.path,
215
+ filename: img.image.filename,
216
+ size: img.image.size,
217
+ width: img.image.width,
218
+ height: img.image.height,
219
+ ...(isVideo && {
220
+ duration: img.image.duration
221
+ })
222
+ },
223
+ uploadProgress: img.uploadProgress,
224
+ error: img.error,
225
+ isUploading: img.isUploading,
226
+ uploadedUrl: img.uploadedUrl,
227
+ ...(isVideo && {
228
+ thumbnailUrl: img.thumbnailUrl
229
+ })
230
+ };
231
+ }),
232
+ onRemove: (type, index) => {
233
+ handleImageRemove(index);
234
+ }
235
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
200
236
  row: true,
201
237
  alignItems: true,
202
238
  paddingH: "0.75rem",
203
239
  paddingT: "0.75rem",
204
240
  paddingB: "0.75rem",
205
241
  style: inputRowStyle,
206
- children: [hasAttachmentActions ? /*#__PURE__*/_jsx(KContainer.Touchable, {
207
- onPress: handleToggleAttachment,
242
+ children: [hasAttachmentActions && /*#__PURE__*/_jsx(KContainer.Touchable, {
243
+ onPress: toggleAttachmentVisibility,
208
244
  center: true,
209
245
  br: "round",
210
246
  children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
@@ -212,52 +248,28 @@ export const ChatComposer = /*#__PURE__*/memo(({
212
248
  size: 24,
213
249
  color: isAttachmentOpen ? KColors.palette.primary.w400 : KColors.palette.gray.w600
214
250
  })
215
- }) : null, /*#__PURE__*/_jsx(KContainer.View, {
216
- flex: true,
217
- marginL: hasAttachmentActions ? '0.75rem' : undefined,
218
- style: styles.inputWrapper,
219
- children: /*#__PURE__*/_jsxs(KContainer.View, {
220
- row: true,
221
- alignItems: isMultilineInput ? 'flex-end' : 'center',
222
- brW: 1,
223
- brC: isInputFocused ? KColors.palette.primary.w400 : KColors.palette.gray.w100,
224
- background: KColors.white,
225
- paddingL: "0.75rem",
226
- style: styles.inputContainer,
227
- children: [/*#__PURE__*/_jsx(KContainer.View, {
228
- marginR: "0.75rem",
229
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
230
- name: "chat-suggest-o",
231
- size: 24,
232
- color: KColors.gray.normal
233
- })
234
- }), /*#__PURE__*/_jsx(TextInput, {
235
- ref: inputRef,
236
- placeholder: placeholder,
237
- placeholderTextColor: KColors.palette.gray.w200,
238
- value: value,
239
- onChangeText: onChangeText,
240
- onFocus: handleInputFocus,
241
- onBlur: handleInputBlur,
242
- onContentSizeChange: handleInputContentSizeChange,
243
- multiline: true,
244
- blurOnSubmit: false,
245
- scrollEnabled: true,
246
- allowFontScaling: false,
247
- underlineColorAndroid: KColors.transparent,
248
- selectionColor: KColors.selector,
249
- textAlignVertical: isMultilineInput ? 'top' : 'center',
250
- style: [styles.textInput]
251
- }), renderEmojiNode()]
252
- })
251
+ }), /*#__PURE__*/_jsx(ChatMessageInput, {
252
+ value: value,
253
+ placeholder: placeholder,
254
+ onChangeText: handleChangeText,
255
+ onFocus: handleInputFocus,
256
+ onBlur: handleInputBlur,
257
+ onContentSizeChange: handleInputContentSizeChange,
258
+ isInputFocused: isInputFocused,
259
+ isMultilineInput: isMultilineInput
260
+ // onEmojiPress={onPressEmoji}
261
+ ,
262
+ inputRef: inputRef
253
263
  }), /*#__PURE__*/_jsx(KContainer.Touchable, {
254
- onPress: handleSend,
264
+ onPress: isUploadingAttachments ? undefined : handleSend,
265
+ pointerEvents: isUploadingAttachments ? 'none' : 'auto',
255
266
  width: 40,
256
267
  height: 40,
257
268
  center: true,
258
269
  br: "round",
259
- background: KColors.palette.primary.w400,
270
+ background: isUploadingAttachments ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
260
271
  marginL: "0.75rem",
272
+ opacity: isUploadingAttachments ? 0.6 : 1,
261
273
  children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
262
274
  name: "send",
263
275
  provider: "MaterialCommunityIcons",
@@ -265,16 +277,16 @@ export const ChatComposer = /*#__PURE__*/memo(({
265
277
  color: KColors.white
266
278
  })
267
279
  })]
268
- }), hasAttachmentActions ? /*#__PURE__*/_jsx(Reanimated.View, {
280
+ }), hasAttachmentActions && /*#__PURE__*/_jsx(Reanimated.View, {
269
281
  style: [styles.accessorySlot, accessorySlotStyle],
270
282
  pointerEvents: isAttachmentOpen ? 'auto' : 'none',
271
283
  children: /*#__PURE__*/_jsx(ChatAttachmentPanel, {
272
284
  actions: attachmentActions,
273
285
  columns: attachmentColumns,
274
- onActionPress: onAttachmentAction,
286
+ onActionPress: handleAttachmentActionInternal,
275
287
  renderAction: renderAttachmentAction
276
288
  })
277
- }) : null]
289
+ })]
278
290
  });
279
291
  });
280
292
  ChatComposer.displayName = 'ChatComposer';
@@ -282,24 +294,6 @@ const styles = StyleSheet.create({
282
294
  accessorySlot: {
283
295
  overflow: 'hidden',
284
296
  backgroundColor: KColors.palette.gray.w25
285
- },
286
- inputWrapper: {
287
- overflow: 'hidden'
288
- },
289
- inputContainer: {
290
- borderRadius: KSpacingValue['1.25rem'],
291
- minHeight: 48,
292
- paddingVertical: KSpacingValue['0.25rem']
293
- },
294
- textInput: {
295
- flex: 1,
296
- maxHeight: INPUT_MAX_HEIGHT,
297
- fontSize: INPUT_FONT_SIZE,
298
- lineHeight: INPUT_LINE_HEIGHT,
299
- color: KColors.palette.gray.w900,
300
- paddingVertical: IS_IOS ? 0 : 4,
301
- paddingHorizontal: IS_IOS ? 2 : 0,
302
- includeFontPadding: false
303
297
  }
304
298
  });
305
299
  //# sourceMappingURL=ChatComposer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","useState","Keyboard","Platform","StyleSheet","TextInput","Reanimated","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","useKeyboardState","useReanimatedKeyboardAnimation","useSafeAreaInsets","KContainer","KImage","KColors","KSpacingValue","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","getAttachmentPanelHeight","useLinkPreview","jsx","_jsx","jsxs","_jsxs","ACCESSORY_ANIMATION_MS","ACCESSORY_SETTLE_MS","IS_IOS","OS","INPUT_FONT_SIZE","INPUT_LINE_HEIGHT","INPUT_MAX_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatComposer","value","placeholder","onChangeText","onSend","onPressAttach","onPressEmoji","showQuickActions","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderQuickActions","renderAttachmentAction","attachmentColumns","hasAttachmentActions","length","inputRef","isSwitchingToAttachmentRef","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","isInputWrapped","setIsInputWrapped","insets","isVisible","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","dismiss","handleDismissPreview","isKeyboardVisible","state","keyboardHeight","height","progress","keyboardProgress","panelHeight","attachmentHeightSV","panelHeightSV","switchKeyboardHeightSV","isKeyboardToAttachmentSwitchSV","openAttachment","duration","closeAttachment","finishKeyboardToAttachmentSwitch","current","targetHeight","startHeight","Math","abs","switching","previous","accessorySlotStyle","handleSend","undefined","handleToggleAttachment","blur","handleInputFocus","handleInputBlur","handleInputContentSizeChange","event","nativeEvent","contentSize","isMultilineInput","includes","renderEmojiNode","Touchable","marginR","onPress","children","VectorIcons","name","size","color","gray","normal","inputRowStyle","paddingBottom","bottom","View","background","visible","actions","onActionPress","renderAction","onDismiss","row","alignItems","paddingH","paddingT","paddingB","style","center","br","palette","primary","w400","w600","flex","marginL","styles","inputWrapper","brW","brC","w100","white","paddingL","inputContainer","ref","placeholderTextColor","w200","onFocus","onBlur","onContentSizeChange","multiline","blurOnSubmit","scrollEnabled","allowFontScaling","underlineColorAndroid","transparent","selectionColor","selector","textAlignVertical","textInput","width","provider","accessorySlot","pointerEvents","columns","displayName","create","overflow","backgroundColor","w25","borderRadius","minHeight","paddingVertical","maxHeight","fontSize","lineHeight","w900","paddingHorizontal","includeFontPadding"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","Platform","StyleSheet","Reanimated","useSafeAreaInsets","KContainer","KColors","KImage","IS_IOS","OS","INPUT_LINE_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","ChatMessageInput","AttachmentPreview","getAttachmentPanelHeight","useLinkPreview","useImageAttachment","useSendAttachment","useChatComposerState","useChatComposerAnimation","useAttachmentSendHandler","isVideoFromPicker","jsx","_jsx","jsxs","_jsxs","ChatComposer","value","placeholder","onChangeText","onSend","onMessageSent","onPressEmoji","_onPressEmoji","showQuickActions","quickActions","attachmentActions","onQuickActionPress","onAttachmentAction","renderQuickAction","renderQuickActions","renderAttachmentAction","attachmentColumns","insets","hasAttachmentActions","length","isVisible","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","dismiss","handleDismissPreview","selectedImages","isImagePreviewVisible","handleImageAttach","handleImageRemove","clearAllImages","send","sendAttachments","handleSendText","text","previewMetadata","metadataWithText","_capturedText","undefined","handleSend","handleAttachmentSend","textMessage","trim","onSendText","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","setIsInputWrapped","isMultilineInput","inputRef","panelHeight","accessorySlotStyle","toggleAttachmentVisibility","closeAttachment","onAttachmentOpenChange","isUploadingAttachments","some","img","isUploading","hasAttachments","hasText","hasPreview","console","warn","log","previewUrl","url","handleInputFocus","handleInputBlur","handleChangeText","handleInputContentSizeChange","event","height","nativeEvent","contentSize","handleAttachmentActionInternal","action","id","inputRowStyle","paddingBottom","bottom","View","background","children","visible","actions","onActionPress","renderAction","onDismiss","attachments","map","isVideo","image","type","path","filename","size","width","duration","uploadProgress","error","uploadedUrl","thumbnailUrl","onRemove","index","row","alignItems","paddingH","paddingT","paddingB","style","Touchable","onPress","center","br","VectorIcons","name","color","palette","primary","w400","gray","w600","onFocus","onBlur","onContentSizeChange","pointerEvents","marginL","opacity","provider","white","styles","accessorySlot","columns","displayName","create","overflow","backgroundColor","w25"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC7D,SAASC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACnD,OAAOC,UAAU,MAAM,yBAAyB;AAChD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,UAAU,EAAEC,OAAO,EAAEC,MAAM,QAAQ,eAAe;AAE3D,MAAMC,MAAM,GAAGP,QAAQ,CAACQ,EAAE,KAAK,KAAK;AACpC,MAAMC,iBAAiB,GAAG,IAAI;AAC9B,MAAMC,wBAAwB,GAAGH,MAAM,GACnCE,iBAAiB,GAAG,CAAC,GACrBA,iBAAiB,GAAG,EAAE;AAE1B,SAASE,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,gBAAgB,QAAQ,kCAA+B;AAChE,SAASC,iBAAiB,QAAQ,uCAAoC;AAEtE,SAASC,wBAAwB,QAAQ,gBAAa;AAEtD,SAASC,cAAc,QAAQ,8CAA2C;AAC1E,SAASC,kBAAkB,QAAQ,mCAAgC;AACnE,SAASC,iBAAiB,QAAQ,kCAA+B;AACjE,SAASC,oBAAoB,QAAQ,iCAA8B;AACnE,SAASC,wBAAwB,QAAQ,qCAAkC;AAC3E,SAASC,wBAAwB,QAAQ,qCAAkC;AAC3E,SAASC,iBAAiB,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3D,OAAO,MAAMC,YAAY,gBAAGhC,IAAI,CAC9B,CAAC;EACCiC,KAAK;EACLC,WAAW,GAAG,kBAAkB;EAChCC,YAAY;EACZC,MAAM;EACNC,aAAa;EACbC,YAAY,EAAEC,aAAa;EAC3BC,gBAAgB,GAAG,IAAI;EACvBC,YAAY;EACZC,iBAAiB;EACjBC,kBAAkB;EAClBC,kBAAkB;EAClBC,iBAAiB;EACjBC,kBAAkB;EAClBC,sBAAsB;EACtBC;AACiB,CAAC,KAAK;EACvB,MAAMC,MAAM,GAAG1C,iBAAiB,CAAC,CAAC;EAClC,MAAM2C,oBAAoB,GAAG,CAAC,CAACR,iBAAiB,EAAES,MAAM;;EAExD;EACA,MAAM;IACJC,SAAS,EAAEC,eAAe;IAC1BC,QAAQ,EAAEC,WAAW;IACrBC,SAAS,EAAEC,iBAAiB;IAC5BC,OAAO,EAAEC;EACX,CAAC,GAAGtC,cAAc,CAACY,KAAK,CAAC;;EAEzB;EACA,MAAM;IACJ2B,cAAc;IACdC,qBAAqB;IACrBC,iBAAiB;IACjBC,iBAAiB;IACjBC;EACF,CAAC,GAAG1C,kBAAkB,CAAC,CAAC;;EAExB;EACA,MAAM;IAAE2C,IAAI,EAAEC;EAAgB,CAAC,GAAG3C,iBAAiB,CAAC,CAAC;;EAErD;EACA;EACA,MAAM4C,cAAc,GAAGlE,WAAW,CAChC,CAACmE,IAAY,EAAEC,eAAqB,KAAK;IACvC;IACA;IACA;IACA;IACA,MAAMC,gBAAgB,GAAGD,eAAe,GACpC;MAAE,GAAGA,eAAe;MAAEE,aAAa,EAAEH;IAAK,CAAC,GAC3CI,SAAS;IACbpC,MAAM,GAAGkC,gBAAgB,CAAC;EAC5B,CAAC,EACD,CAAClC,MAAM,CACT,CAAC;;EAED;EACA,MAAM;IAAEqC,UAAU,EAAEC;EAAqB,CAAC,GAAGhD,wBAAwB,CAAC;IACpEkC,cAAc;IACdM,eAAe;IACfF,cAAc;IACd5B,MAAM;IACNC,aAAa;IACbsC,WAAW,EAAE,CAAC1C,KAAK,IAAI,EAAE,EAAE2C,IAAI,CAAC,CAAC;IACjCrB,WAAW,EAAEF,eAAe,GAAGE,WAAW,GAAGiB,SAAS;IACtDK,UAAU,EAAEV;EACd,CAAC,CAAC;;EAEF;EACA,MAAM;IACJW,gBAAgB;IAChBC,mBAAmB;IACnBC,cAAc;IACdC,iBAAiB;IACjBC,iBAAiB;IACjBC,gBAAgB;IAChBC;EACF,CAAC,GAAG5D,oBAAoB,CAACS,KAAe,CAAC;;EAEzC;EACA,MAAMoD,WAAW,GAAGlF,OAAO,CACzB,MACE+C,oBAAoB,GAChB9B,wBAAwB,CACtBsB,iBAAiB,CAACS,MAAM,EACxBH,iBACF,CAAC,GACD,CAAC,EACP,CAACN,iBAAiB,EAAEM,iBAAiB,EAAEE,oBAAoB,CAC7D,CAAC;;EAED;EACA,MAAM;IAAEoC,kBAAkB;IAAEC,0BAA0B;IAAEC;EAAgB,CAAC,GACvE/D,wBAAwB,CAAC;IACvBqD,gBAAgB;IAChBO,WAAW;IACXI,sBAAsB,EAAEV;EAC1B,CAAC,CAAC;;EAEJ;EACA,MAAMW,sBAAsB,GAAGvF,OAAO,CACpC,MAAMyD,cAAc,CAAC+B,IAAI,CAAEC,GAAQ,IAAKA,GAAG,CAACC,WAAW,CAAC,EACxD,CAACjC,cAAc,CACjB,CAAC;;EAED;EACA,MAAMa,UAAU,GAAGxE,WAAW,CAAC,MAAM;IACnC,MAAM6F,cAAc,GAAGlC,cAAc,CAACT,MAAM,GAAG,CAAC;IAChD,MAAM4C,OAAO,GAAG,CAAC9D,KAAK,IAAI,EAAE,EAAE2C,IAAI,CAAC,CAAC,CAACzB,MAAM,GAAG,CAAC;IAC/C;IACA,MAAMkB,eAAe,GAAGhB,eAAe,GAAGE,WAAW,GAAGiB,SAAS;IACjE,MAAMwB,UAAU,GAAG,CAAC,CAAC3B,eAAe;;IAEpC;IACA,IAAIqB,sBAAsB,EAAE;MAC1BO,OAAO,CAACC,IAAI,CACV,8DACF,CAAC;MACD;IACF;;IAEA;IACA,IAAI,CAACJ,cAAc,IAAI,CAACC,OAAO,IAAI,CAACC,UAAU,EAAE;MAC9CC,OAAO,CAACC,IAAI,CACV,8DACF,CAAC;MACD;IACF;IAEA,IAAIJ,cAAc,EAAE;MAClB;MACApB,oBAAoB,CAAC,CAAC;IACxB,CAAC,MAAM;MACL;MACAuB,OAAO,CAACE,GAAG,CAAC,2CAA2C,EAAE;QACvDJ,OAAO;QACPC,UAAU;QACVI,UAAU,EAAE/B,eAAe,EAAEgC;MAC/B,CAAC,CAAC;MAEFjE,MAAM,GAAGiC,eAAe,CAAC;IAC3B;EACF,CAAC,EAAE,CACDjC,MAAM,EACNmB,WAAW,EACXF,eAAe,EACfO,cAAc,EACdc,oBAAoB,EACpBzC,KAAK,EACLyD,sBAAsB,CACvB,CAAC;EAEF,MAAMY,gBAAgB,GAAGrG,WAAW,CAAC,MAAM;IACzCgF,iBAAiB,CAAC,IAAI,CAAC;IACvB;IACA,IAAIH,gBAAgB,EAAE;MACpBU,eAAe,CAAC,CAAC;IACnB;EACF,CAAC,EAAE,CAACA,eAAe,EAAEV,gBAAgB,EAAEG,iBAAiB,CAAC,CAAC;EAE1D,MAAMsB,eAAe,GAAGtG,WAAW,CAAC,MAAM;IACxCgF,iBAAiB,CAAC,KAAK,CAAC;EAC1B,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,MAAMuB,gBAAgB,GAAGvG,WAAW,CACjCmE,IAAa,IAAK;IACjBjC,YAAY,GAAGiC,IAAI,CAAC;EACtB,CAAC,EACD,CAACjC,YAAY,CACf,CAAC;EAED,MAAMsE,4BAA4B,GAAGxG,WAAW,CAC7CyG,KAAU,IAAK;IACd,MAAM;MAAEC;IAAO,CAAC,GAAGD,KAAK,CAACE,WAAW,CAACC,WAAW;IAChD3B,iBAAiB,CAACyB,MAAM,GAAG7F,wBAAwB,CAAC;EACtD,CAAC,EACD,CAACoE,iBAAiB,CACpB,CAAC;;EAED;EACAhF,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+B,KAAK,EAAE;MACViD,iBAAiB,CAAC,KAAK,CAAC;IAC1B;EACF,CAAC,EAAE,CAACjD,KAAK,EAAEiD,iBAAiB,CAAC,CAAC;;EAE9B;EACA,MAAM4B,8BAA8B,GAAG7G,WAAW,CAChD,MAAO8G,MAAW,IAAK;IACrB,IAAIA,MAAM,CAACC,EAAE,KAAK,SAAS,EAAE;MAC3B,MAAMlD,iBAAiB,CAAC,CAAC;IAC3B,CAAC,MAAM;MACLlB,kBAAkB,GAAGmE,MAAM,CAAC;IAC9B;EACF,CAAC,EACD,CAACnE,kBAAkB,EAAEkB,iBAAiB,CACxC,CAAC;;EAED;EACA,MAAMmD,aAAa,GAAG9G,OAAO,CAC3B,OAAO;IACL+G,aAAa,EAAEpC,gBAAgB,GAAG,CAAC,GAAG7B,MAAM,CAACkE,MAAM,GAAG;EACxD,CAAC,CAAC,EACF,CAAClE,MAAM,CAACkE,MAAM,EAAErC,gBAAgB,CAClC,CAAC;EAED,oBACE/C,KAAA,CAACvB,UAAU,CAAC4G,IAAI;IAACC,UAAU,EAAE,2BAA4B;IAAAC,QAAA,gBACvDzF,IAAA,CAACd,gBAAgB;MACfwG,OAAO,EAAE/E,gBAAiB;MAC1BgF,OAAO,EAAE/E,YAAa;MACtBgF,aAAa,EAAE9E,kBAAmB;MAClC+E,YAAY,EAAE7E,iBAAkB;MAChCC,kBAAkB,EAAEA;IAAmB,CACxC,CAAC,EAEDO,eAAe,iBACdxB,IAAA,CAACZ,eAAe;MACdqC,QAAQ,EAAEC,WAAY;MACtBC,SAAS,EAAEC,iBAAkB;MAC7BkE,SAAS,EAAEhE;IAAqB,CACjC,CACF,eAED9B,IAAA,CAACV,iBAAiB;MAChBoG,OAAO,EAAE1D,qBAAsB;MAC/B+D,WAAW,EAAEhE,cAAc,CAACiE,GAAG,CAAEjC,GAAQ,IAAK;QAC5C,MAAMkC,OAAO,GAAGnG,iBAAiB,CAACiE,GAAG,CAACmC,KAAK,CAAC;QAC5C,OAAO;UACLC,IAAI,EAAEF,OAAO,GAAI,OAAO,GAAc,OAAiB;UACvDxE,QAAQ,EAAE;YACR2E,IAAI,EAAErC,GAAG,CAACmC,KAAK,CAACE,IAAI;YACpBC,QAAQ,EAAEtC,GAAG,CAACmC,KAAK,CAACG,QAAQ;YAC5BC,IAAI,EAAEvC,GAAG,CAACmC,KAAK,CAACI,IAAI;YACpBC,KAAK,EAAExC,GAAG,CAACmC,KAAK,CAACK,KAAK;YACtBzB,MAAM,EAAEf,GAAG,CAACmC,KAAK,CAACpB,MAAM;YACxB,IAAImB,OAAO,IAAI;cAAEO,QAAQ,EAAGzC,GAAG,CAACmC,KAAK,CAASM;YAAS,CAAC;UAC1D,CAAC;UACDC,cAAc,EAAE1C,GAAG,CAAC0C,cAAc;UAClCC,KAAK,EAAE3C,GAAG,CAAC2C,KAAK;UAChB1C,WAAW,EAAED,GAAG,CAACC,WAAW;UAC5B2C,WAAW,EAAE5C,GAAG,CAAC4C,WAAW;UAC5B,IAAIV,OAAO,IAAI;YAAEW,YAAY,EAAE7C,GAAG,CAAC6C;UAAa,CAAC;QACnD,CAAC;MACH,CAAC,CAAE;MACHC,QAAQ,EAAEA,CAACV,IAAI,EAAEW,KAAK,KAAK;QACzB5E,iBAAiB,CAAC4E,KAAK,CAAC;MAC1B;IAAE,CACH,CAAC,eAEF5G,KAAA,CAACvB,UAAU,CAAC4G,IAAI;MACdwB,GAAG;MACHC,UAAU;MACVC,QAAQ,EAAC,SAAS;MAClBC,QAAQ,EAAC,SAAS;MAClBC,QAAQ,EAAC,SAAS;MAClBC,KAAK,EAAEhC,aAAc;MAAAK,QAAA,GAEpBpE,oBAAoB,iBACnBrB,IAAA,CAACrB,UAAU,CAAC0I,SAAS;QACnBC,OAAO,EAAE5D,0BAA2B;QACpC6D,MAAM;QACNC,EAAE,EAAC,OAAO;QAAA/B,QAAA,eAEVzF,IAAA,CAACnB,MAAM,CAAC4I,WAAW;UACjBC,IAAI,EAAEzE,gBAAgB,GAAG,gBAAgB,GAAG,eAAgB;UAC5DqD,IAAI,EAAE,EAAG;UACTqB,KAAK,EACH1E,gBAAgB,GACZrE,OAAO,CAACgJ,OAAO,CAACC,OAAO,CAACC,IAAI,GAC5BlJ,OAAO,CAACgJ,OAAO,CAACG,IAAI,CAACC;QAC1B,CACF;MAAC,CACkB,CACvB,eAEDhI,IAAA,CAACX,gBAAgB;QACfe,KAAK,EAAEA,KAAgB;QACvBC,WAAW,EAAEA,WAAY;QACzBC,YAAY,EAAEqE,gBAAiB;QAC/BsD,OAAO,EAAExD,gBAAiB;QAC1ByD,MAAM,EAAExD,eAAgB;QACxByD,mBAAmB,EAAEvD,4BAA6B;QAClDzB,cAAc,EAAEA,cAAe;QAC/BG,gBAAgB,EAAEA;QAClB;QAAA;QACAC,QAAQ,EAAEA;MAAS,CACpB,CAAC,eAEFvD,IAAA,CAACrB,UAAU,CAAC0I,SAAS;QACnBC,OAAO,EAAEzD,sBAAsB,GAAGlB,SAAS,GAAGC,UAAW;QACzDwF,aAAa,EAAEvE,sBAAsB,GAAG,MAAM,GAAG,MAAO;QACxD0C,KAAK,EAAE,EAAG;QACVzB,MAAM,EAAE,EAAG;QACXyC,MAAM;QACNC,EAAE,EAAC,OAAO;QACVhC,UAAU,EACR3B,sBAAsB,GAClBjF,OAAO,CAACgJ,OAAO,CAACG,IAAI,CAACD,IAAI,GACzBlJ,OAAO,CAACgJ,OAAO,CAACC,OAAO,CAACC,IAC7B;QACDO,OAAO,EAAC,SAAS;QACjBC,OAAO,EAAEzE,sBAAsB,GAAG,GAAG,GAAG,CAAE;QAAA4B,QAAA,eAE1CzF,IAAA,CAACnB,MAAM,CAAC4I,WAAW;UACjBC,IAAI,EAAC,MAAM;UACXa,QAAQ,EAAC,wBAAwB;UACjCjC,IAAI,EAAE,EAAG;UACTqB,KAAK,EAAE/I,OAAO,CAAC4J;QAAM,CACtB;MAAC,CACkB,CAAC;IAAA,CACR,CAAC,EAEjBnH,oBAAoB,iBACnBrB,IAAA,CAACvB,UAAU,CAAC8G,IAAI;MACd6B,KAAK,EAAE,CAACqB,MAAM,CAACC,aAAa,EAAEjF,kBAAkB,CAAE;MAClD2E,aAAa,EAAEnF,gBAAgB,GAAG,MAAM,GAAG,MAAO;MAAAwC,QAAA,eAElDzF,IAAA,CAACb,mBAAmB;QAClBwG,OAAO,EAAE9E,iBAAkB;QAC3B8H,OAAO,EAAExH,iBAAkB;QAC3ByE,aAAa,EAAEX,8BAA+B;QAC9CY,YAAY,EAAE3E;MAAuB,CACtC;IAAC,CACa,CAClB;EAAA,CACc,CAAC;AAEtB,CACF,CAAC;AAEDf,YAAY,CAACyI,WAAW,GAAG,cAAc;AAEzC,MAAMH,MAAM,GAAGjK,UAAU,CAACqK,MAAM,CAAC;EAC/BH,aAAa,EAAE;IACbI,QAAQ,EAAE,QAAQ;IAClBC,eAAe,EAAEnK,OAAO,CAACgJ,OAAO,CAACG,IAAI,CAACiB;EACxC;AACF,CAAC,CAAC","ignoreList":[]}