stream-chat-react-native-core 3.10.1 → 4.0.0-beta.2

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 (623) hide show
  1. package/lib/commonjs/components/Attachment/Card.js +18 -15
  2. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Gallery.js +8 -15
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +3 -3
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  8. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  9. package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  10. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  11. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  12. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  13. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  14. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  15. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  16. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  17. package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -9
  18. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  19. package/lib/commonjs/components/Channel/Channel.js +293 -208
  20. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  21. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
  22. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  23. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  24. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  25. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  26. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  27. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  28. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  29. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  30. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  31. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  32. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  33. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  34. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  35. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  36. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  37. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  38. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  39. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  40. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  41. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
  42. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  43. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -2
  44. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  45. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  46. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  47. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  48. package/lib/commonjs/components/Message/Message.js +144 -851
  49. package/lib/commonjs/components/Message/Message.js.map +1 -1
  50. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
  51. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  52. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +4 -2
  53. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  54. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +24 -16
  55. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  56. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  57. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  58. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
  59. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  60. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
  61. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  62. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +19 -20
  63. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  64. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  65. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  66. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
  67. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  68. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +42 -14
  69. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  70. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
  71. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  72. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +294 -0
  73. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  74. package/lib/commonjs/components/Message/hooks/useMessageActions.js +559 -0
  75. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
  76. package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
  77. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  78. package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
  79. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
  80. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +2 -2
  81. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  82. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +2 -2
  83. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  84. package/lib/commonjs/components/MessageInput/InputButtons.js +16 -21
  85. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  86. package/lib/commonjs/components/MessageInput/MessageInput.js +90 -62
  87. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  88. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  89. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  90. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  91. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  92. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
  93. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
  94. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
  95. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
  96. package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
  97. package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
  98. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
  99. package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
  100. package/lib/commonjs/components/MessageList/MessageList.js +75 -42
  101. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  102. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +16 -3
  103. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  104. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
  105. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  106. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
  107. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  108. package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
  109. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
  110. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
  111. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  112. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +83 -70
  113. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  114. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
  115. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  116. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -0
  117. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  118. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  119. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  120. package/lib/commonjs/components/Thread/Thread.js +13 -4
  121. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  122. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +9 -1
  123. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  124. package/lib/commonjs/components/docs/ListProps.md +1 -1
  125. package/lib/commonjs/components/index.js +107 -55
  126. package/lib/commonjs/components/index.js.map +1 -1
  127. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  128. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  129. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  130. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  131. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  132. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  133. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  134. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
  135. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
  136. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  137. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  138. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +112 -78
  139. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  140. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  141. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  142. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  143. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  144. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  145. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  146. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  147. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +31 -24
  148. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  149. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  150. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  151. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  152. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  153. package/lib/commonjs/contexts/themeContext/utils/theme.js +25 -9
  154. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  155. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  156. package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
  157. package/lib/commonjs/emoji-data/compiled.js +0 -315
  158. package/lib/commonjs/emoji-data/compiled.js.map +1 -1
  159. package/lib/commonjs/emoji-data/emojiNames.js +0 -105
  160. package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
  161. package/lib/commonjs/emoji-data/emojis.js +0 -175
  162. package/lib/commonjs/emoji-data/emojis.js.map +1 -1
  163. package/lib/commonjs/i18n/en.json +9 -3
  164. package/lib/commonjs/i18n/fr.json +9 -3
  165. package/lib/commonjs/i18n/hi.json +9 -3
  166. package/lib/commonjs/i18n/it.json +9 -3
  167. package/lib/commonjs/i18n/ja.json +9 -0
  168. package/lib/commonjs/i18n/ko.json +9 -0
  169. package/lib/commonjs/i18n/nl.json +9 -3
  170. package/lib/commonjs/i18n/ru.json +9 -3
  171. package/lib/commonjs/i18n/tr.json +10 -4
  172. package/lib/commonjs/icons/Pin.js +42 -0
  173. package/lib/commonjs/icons/Pin.js.map +1 -0
  174. package/lib/commonjs/icons/PinHeader.js +38 -0
  175. package/lib/commonjs/icons/PinHeader.js.map +1 -0
  176. package/lib/commonjs/icons/Unpin.js +38 -0
  177. package/lib/commonjs/icons/Unpin.js.map +1 -0
  178. package/lib/commonjs/icons/index.js +39 -0
  179. package/lib/commonjs/icons/index.js.map +1 -1
  180. package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
  181. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  182. package/lib/commonjs/mock-builders/generator/channel.js +1 -0
  183. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  184. package/lib/commonjs/mock-builders/mock.js +2 -2
  185. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  186. package/lib/commonjs/native.js +1 -7
  187. package/lib/commonjs/native.js.map +1 -1
  188. package/lib/commonjs/utils/date.js +13 -0
  189. package/lib/commonjs/utils/date.js.map +1 -0
  190. package/lib/commonjs/utils/utils.js +9 -7
  191. package/lib/commonjs/utils/utils.js.map +1 -1
  192. package/lib/commonjs/version.json +1 -1
  193. package/lib/module/components/Attachment/Card.js +18 -15
  194. package/lib/module/components/Attachment/Card.js.map +1 -1
  195. package/lib/module/components/Attachment/Gallery.js +8 -15
  196. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  197. package/lib/module/components/Attachment/Giphy.js +3 -3
  198. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  199. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  200. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  201. package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  202. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  203. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  204. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  205. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  206. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  207. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  208. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  209. package/lib/module/components/Avatar/GroupAvatar.js +3 -9
  210. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  211. package/lib/module/components/Channel/Channel.js +293 -208
  212. package/lib/module/components/Channel/Channel.js.map +1 -1
  213. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
  214. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  215. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  216. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  217. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  218. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  219. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  220. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  221. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  222. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  223. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  224. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  225. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  226. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  227. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  228. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  229. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  230. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  231. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  232. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  233. package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
  234. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  235. package/lib/module/components/ImageGallery/ImageGallery.js +1 -2
  236. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  237. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  238. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  239. package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  240. package/lib/module/components/Message/Message.js +144 -851
  241. package/lib/module/components/Message/Message.js.map +1 -1
  242. package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
  243. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  244. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +4 -2
  245. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  246. package/lib/module/components/Message/MessageSimple/MessageFooter.js +24 -16
  247. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  248. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  249. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  250. package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
  251. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  252. package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
  253. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  254. package/lib/module/components/Message/MessageSimple/MessageStatus.js +19 -20
  255. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  256. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  257. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  258. package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
  259. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  260. package/lib/module/components/Message/MessageSimple/utils/renderText.js +42 -14
  261. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  262. package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
  263. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  264. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +294 -0
  265. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  266. package/lib/module/components/Message/hooks/useMessageActions.js +559 -0
  267. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
  268. package/lib/module/components/Message/utils/messageActions.js +17 -15
  269. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  270. package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
  271. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
  272. package/lib/module/components/MessageInput/FileUploadPreview.js +2 -2
  273. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  274. package/lib/module/components/MessageInput/ImageUploadPreview.js +2 -2
  275. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  276. package/lib/module/components/MessageInput/InputButtons.js +16 -21
  277. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  278. package/lib/module/components/MessageInput/MessageInput.js +90 -62
  279. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  280. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  281. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  282. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  283. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  284. package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
  285. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
  286. package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
  287. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
  288. package/lib/module/components/MessageList/DateHeader.js +2 -2
  289. package/lib/module/components/MessageList/DateHeader.js.map +1 -1
  290. package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
  291. package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
  292. package/lib/module/components/MessageList/MessageList.js +75 -42
  293. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  294. package/lib/module/components/MessageList/hooks/useMessageList.js +16 -3
  295. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  296. package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
  297. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  298. package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
  299. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  300. package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
  301. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
  302. package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
  303. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  304. package/lib/module/components/MessageOverlay/MessageOverlay.js +83 -70
  305. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  306. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
  307. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  308. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -0
  309. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  310. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  311. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  312. package/lib/module/components/Thread/Thread.js +13 -4
  313. package/lib/module/components/Thread/Thread.js.map +1 -1
  314. package/lib/module/components/Thread/components/ThreadFooterComponent.js +9 -1
  315. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  316. package/lib/module/components/docs/ListProps.md +1 -1
  317. package/lib/module/components/index.js +107 -55
  318. package/lib/module/components/index.js.map +1 -1
  319. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  320. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  321. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  322. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  323. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  324. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  325. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  326. package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
  327. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
  328. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  329. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  330. package/lib/module/contexts/messageInputContext/MessageInputContext.js +112 -78
  331. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  332. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  333. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  334. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  335. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  336. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  337. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  338. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  339. package/lib/module/contexts/overlayContext/OverlayProvider.js +31 -24
  340. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  341. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  342. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  343. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  344. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  345. package/lib/module/contexts/themeContext/utils/theme.js +25 -9
  346. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  347. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  348. package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
  349. package/lib/module/emoji-data/compiled.js +0 -315
  350. package/lib/module/emoji-data/compiled.js.map +1 -1
  351. package/lib/module/emoji-data/emojiNames.js +0 -105
  352. package/lib/module/emoji-data/emojiNames.js.map +1 -1
  353. package/lib/module/emoji-data/emojis.js +0 -175
  354. package/lib/module/emoji-data/emojis.js.map +1 -1
  355. package/lib/module/i18n/en.json +9 -3
  356. package/lib/module/i18n/fr.json +9 -3
  357. package/lib/module/i18n/hi.json +9 -3
  358. package/lib/module/i18n/it.json +9 -3
  359. package/lib/module/i18n/ja.json +9 -0
  360. package/lib/module/i18n/ko.json +9 -0
  361. package/lib/module/i18n/nl.json +9 -3
  362. package/lib/module/i18n/ru.json +9 -3
  363. package/lib/module/i18n/tr.json +10 -4
  364. package/lib/module/icons/Pin.js +42 -0
  365. package/lib/module/icons/Pin.js.map +1 -0
  366. package/lib/module/icons/PinHeader.js +38 -0
  367. package/lib/module/icons/PinHeader.js.map +1 -0
  368. package/lib/module/icons/Unpin.js +38 -0
  369. package/lib/module/icons/Unpin.js.map +1 -0
  370. package/lib/module/icons/index.js +39 -0
  371. package/lib/module/icons/index.js.map +1 -1
  372. package/lib/module/mock-builders/api/sendMessage.js +4 -1
  373. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  374. package/lib/module/mock-builders/generator/channel.js +1 -0
  375. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  376. package/lib/module/mock-builders/mock.js +2 -2
  377. package/lib/module/mock-builders/mock.js.map +1 -1
  378. package/lib/module/native.js +1 -7
  379. package/lib/module/native.js.map +1 -1
  380. package/lib/module/utils/date.js +13 -0
  381. package/lib/module/utils/date.js.map +1 -0
  382. package/lib/module/utils/utils.js +9 -7
  383. package/lib/module/utils/utils.js.map +1 -1
  384. package/lib/module/version.json +1 -1
  385. package/lib/typescript/components/Attachment/Card.d.ts +2 -0
  386. package/lib/typescript/components/Attachment/Gallery.d.ts +3 -2
  387. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
  388. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
  389. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
  390. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
  391. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +22 -0
  392. package/lib/typescript/components/Channel/Channel.d.ts +11 -10
  393. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  394. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
  395. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
  396. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
  397. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
  398. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
  399. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -0
  400. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  401. package/lib/typescript/components/Message/Message.d.ts +3 -2
  402. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  403. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
  404. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  405. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
  406. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
  407. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
  408. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +1 -0
  409. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  410. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
  411. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
  412. package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
  413. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
  414. package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
  415. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  416. package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
  417. package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
  418. package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
  419. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
  420. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
  421. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
  422. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
  423. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
  424. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
  425. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
  426. package/lib/typescript/components/index.d.ts +11 -7
  427. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
  428. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
  429. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
  430. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
  431. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
  432. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
  433. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +15 -6
  434. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  435. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +8 -11
  436. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +15 -106
  437. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +10 -3
  438. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
  439. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +15 -14
  440. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +24 -8
  441. package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
  442. package/lib/typescript/i18n/en.json +9 -3
  443. package/lib/typescript/i18n/fr.json +9 -3
  444. package/lib/typescript/i18n/hi.json +9 -3
  445. package/lib/typescript/i18n/it.json +9 -3
  446. package/lib/typescript/i18n/ja.json +9 -0
  447. package/lib/typescript/i18n/ko.json +9 -0
  448. package/lib/typescript/i18n/nl.json +9 -3
  449. package/lib/typescript/i18n/ru.json +9 -3
  450. package/lib/typescript/i18n/tr.json +10 -4
  451. package/lib/typescript/icons/Pin.d.ts +3 -0
  452. package/lib/typescript/icons/PinHeader.d.ts +3 -0
  453. package/lib/typescript/icons/Unpin.d.ts +3 -0
  454. package/lib/typescript/icons/index.d.ts +3 -0
  455. package/lib/typescript/native.d.ts +1 -9
  456. package/lib/typescript/utils/Streami18n.d.ts +9 -6
  457. package/lib/typescript/utils/date.d.ts +2 -0
  458. package/lib/typescript/utils/utils.d.ts +8 -10
  459. package/package.json +5 -3
  460. package/src/components/Attachment/Card.tsx +5 -1
  461. package/src/components/Attachment/Gallery.tsx +5 -10
  462. package/src/components/Attachment/Giphy.tsx +3 -3
  463. package/src/components/Attachment/__tests__/Attachment.test.js +13 -6
  464. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +41 -27
  465. package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +2 -56
  466. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
  467. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +154 -0
  468. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +213 -0
  469. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +0 -4
  470. package/src/components/Avatar/GroupAvatar.tsx +0 -19
  471. package/src/components/Avatar/__tests__/Avatar.test.js +0 -28
  472. package/src/components/Channel/Channel.tsx +225 -176
  473. package/src/components/Channel/__tests__/Channel.test.js +25 -20
  474. package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
  475. package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
  476. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
  477. package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
  478. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +53 -0
  479. package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +1 -1
  480. package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +4 -1
  481. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +16 -4
  482. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -1
  483. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +6 -0
  484. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -1
  485. package/src/components/Chat/__tests__/Chat.test.js +6 -2
  486. package/src/components/Chat/hooks/useIsOnline.ts +8 -5
  487. package/src/components/ImageGallery/ImageGallery.tsx +3 -2
  488. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +4 -5
  489. package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
  490. package/src/components/Message/Message.tsx +140 -579
  491. package/src/components/Message/MessageSimple/MessageContent.tsx +21 -22
  492. package/src/components/Message/MessageSimple/MessageDeleted.tsx +5 -2
  493. package/src/components/Message/MessageSimple/MessageFooter.tsx +36 -17
  494. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
  495. package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
  496. package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
  497. package/src/components/Message/MessageSimple/MessageStatus.tsx +10 -29
  498. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
  499. package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
  500. package/src/components/Message/MessageSimple/__tests__/Message.test.js +0 -1
  501. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +32 -22
  502. package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
  503. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
  504. package/src/components/Message/MessageSimple/utils/renderText.tsx +25 -3
  505. package/src/components/Message/hooks/useCreateMessageContext.ts +0 -5
  506. package/src/components/Message/hooks/useMessageActionHandlers.ts +163 -0
  507. package/src/components/Message/hooks/useMessageActions.tsx +381 -0
  508. package/src/components/Message/utils/messageActions.ts +64 -38
  509. package/src/components/MessageInput/CooldownTimer.tsx +66 -0
  510. package/src/components/MessageInput/FileUploadPreview.tsx +2 -2
  511. package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
  512. package/src/components/MessageInput/InputButtons.tsx +4 -10
  513. package/src/components/MessageInput/MessageInput.tsx +59 -31
  514. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
  515. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +1 -1
  516. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +29 -29
  517. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +12 -12
  518. package/src/components/MessageInput/__tests__/MessageInput.test.js +8 -16
  519. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +6061 -2789
  520. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
  521. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1167 -282
  522. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
  523. package/src/components/MessageInput/hooks/useCooldown.ts +60 -0
  524. package/src/components/MessageInput/hooks/useCountdown.ts +47 -0
  525. package/src/components/MessageList/DateHeader.tsx +2 -2
  526. package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
  527. package/src/components/MessageList/MessageList.tsx +60 -36
  528. package/src/components/MessageList/__tests__/MessageList.test.js +231 -106
  529. package/src/components/MessageList/hooks/useMessageList.ts +14 -2
  530. package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
  531. package/src/components/MessageList/utils/getGroupStyles.ts +13 -7
  532. package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +57 -89
  533. package/src/components/MessageOverlay/MessageActionListItem.tsx +111 -0
  534. package/src/components/MessageOverlay/MessageOverlay.tsx +242 -205
  535. package/src/components/MessageOverlay/OverlayBackdrop.tsx +17 -0
  536. package/src/components/MessageOverlay/OverlayReactionList.tsx +1 -1
  537. package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +43 -0
  538. package/src/components/Thread/Thread.tsx +8 -0
  539. package/src/components/Thread/__tests__/Thread.test.js +28 -101
  540. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
  541. package/src/components/Thread/components/ThreadFooterComponent.tsx +13 -1
  542. package/src/components/docs/ListProps.md +1 -1
  543. package/src/components/index.ts +11 -7
  544. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +33 -0
  545. package/src/contexts/channelContext/ChannelContext.tsx +27 -30
  546. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  547. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +287 -0
  548. package/src/contexts/channelsStateContext/useChannelState.ts +206 -0
  549. package/src/contexts/messageContext/MessageContext.tsx +1 -8
  550. package/src/contexts/messageInputContext/MessageInputContext.tsx +56 -18
  551. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
  552. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +12 -12
  553. package/src/contexts/messagesContext/MessagesContext.tsx +28 -129
  554. package/src/contexts/overlayContext/OverlayContext.tsx +10 -4
  555. package/src/contexts/overlayContext/OverlayProvider.tsx +21 -20
  556. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
  557. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +27 -48
  558. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +0 -1
  559. package/src/contexts/themeContext/utils/theme.ts +48 -16
  560. package/src/contexts/translationContext/TranslationContext.tsx +1 -1
  561. package/src/contexts/utils/getDisplayName.ts +2 -1
  562. package/src/emoji-data/compiled.ts +1830 -9609
  563. package/src/emoji-data/emojiNames.ts +0 -140
  564. package/src/emoji-data/emojis.ts +0 -210
  565. package/src/i18n/en.json +9 -3
  566. package/src/i18n/fr.json +9 -3
  567. package/src/i18n/hi.json +9 -3
  568. package/src/i18n/it.json +9 -3
  569. package/src/i18n/ja.json +9 -0
  570. package/src/i18n/ko.json +9 -0
  571. package/src/i18n/nl.json +9 -3
  572. package/src/i18n/ru.json +9 -3
  573. package/src/i18n/tr.json +10 -4
  574. package/src/icons/Pin.tsx +17 -0
  575. package/src/icons/PinHeader.tsx +12 -0
  576. package/src/icons/Unpin.tsx +12 -0
  577. package/src/icons/index.ts +3 -0
  578. package/src/mock-builders/api/sendMessage.js +3 -2
  579. package/src/mock-builders/generator/channel.js +18 -0
  580. package/src/mock-builders/mock.js +2 -2
  581. package/src/native.ts +1 -13
  582. package/src/utils/date.ts +4 -0
  583. package/src/utils/utils.ts +14 -12
  584. package/src/version.json +1 -1
  585. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
  586. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  587. package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  588. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
  589. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  590. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
  591. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  592. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
  593. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  594. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
  595. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  596. package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
  597. package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
  598. package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  599. package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  600. package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
  601. package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  602. package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
  603. package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  604. package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
  605. package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  606. package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
  607. package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  608. package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
  609. package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
  610. package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
  611. package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
  612. package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
  613. package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
  614. package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
  615. package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
  616. package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
  617. package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
  618. package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
  619. package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
  620. package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
  621. package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
  622. package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
  623. package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useChannelState.ts"],"names":["useStateManager","initialValue","cid","key","setState","state","memoizedInitialValue","value","setValue","useChannelState","channel","threadId","id","decreaseSubscriberCount","increaseSubscriberCount","members","setMembers","messages","setMessages","read","setRead","typing","setTyping","watcherCount","setWatcherCount","watchers","setWatchers","threads","threadMessages","setThreadMessages"],"mappings":";;;;;;;;;AAAA;;AAGA;;AAqCA,SAASA,eAAT,OAmBEC,YAnBF,EAoBE;AAAA;;AAAA,MATEC,GASF,QATEA,GASF;AAAA,MAREC,GAQF,QAREA,GAQF;AAAA,MAPEC,QAOF,QAPEA,QAOF;AAAA,MANEC,KAMF,QANEA,KAMF;AACA,MAAMC,oBAAoB,GAAG,oBAAQ;AAAA,WAAML,YAAN;AAAA,GAAR,EAA4B,EAA5B,CAA7B;AACA,MAAMM,KAAK,GACT,eAAAF,KAAK,CAACH,GAAD,CAAL,gCAAaC,GAAb,MAAsBG,oBADxB;AAGA,MAAME,QAAQ,GAAG,wBACf,UAACD,KAAD;AAAA,WAA0DH,QAAQ,CAAC;AAAEF,MAAAA,GAAG,EAAHA,GAAF;AAAOC,MAAAA,GAAG,EAAHA,GAAP;AAAYI,MAAAA,KAAK,EAALA;AAAZ,KAAD,CAAlE;AAAA,GADe,EAEf,CAACL,GAAD,EAAMC,GAAN,CAFe,CAAjB;AAKA,SAAO,CAACI,KAAD,EAAQC,QAAR,CAAP;AACD;;AA2BM,SAASC,eAAT,CASLC,OATK,EAULC,QAVK,EAW6C;AAAA;;AAClD,MAAMT,GAAG,GAAG,CAAAQ,OAAO,QAAP,YAAAA,OAAO,CAAEE,EAAT,KAAe,IAA3B;;AACA,8BACE,oDADF;AAAA,MAAQC,uBAAR,yBAAQA,uBAAR;AAAA,MAAiCC,uBAAjC,yBAAiCA,uBAAjC;AAAA,MAA0DV,QAA1D,yBAA0DA,QAA1D;AAAA,MAAoEC,KAApE,yBAAoEA,KAApE;;AAIA,wBAAU,YAAM;AACdS,IAAAA,uBAAuB,CAAC;AAAEZ,MAAAA,GAAG,EAAHA;AAAF,KAAD,CAAvB;AACA,WAAO,YAAM;AACXW,MAAAA,uBAAuB,CAAC;AAAEX,QAAAA,GAAG,EAAHA;AAAF,OAAD,CAAvB;AACD,KAFD;AAGD,GALD,EAKG,EALH;;AAOA,yBAA8BF,eAAe,CAC3C;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,SAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GAD2C,EAO3C,EAP2C,CAA7C;AAAA;AAAA,MAAOU,OAAP;AAAA,MAAgBC,UAAhB;;AAUA,0BAAgChB,eAAe,CAC7C;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,UAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GAD6C,EAO7C,CAAAK,OAAO,QAAP,8BAAAA,OAAO,CAAEL,KAAT,oCAAgBY,QAAhB,KAA4B,EAPiB,CAA/C;AAAA;AAAA,MAAOA,QAAP;AAAA,MAAiBC,WAAjB;;AAUA,0BAAwBlB,eAAe,CACrC;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,MAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GADqC,EAOrC,EAPqC,CAAvC;AAAA;AAAA,MAAOc,IAAP;AAAA,MAAaC,OAAb;;AAUA,0BAA4BpB,eAAe,CACzC;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,QAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GADyC,EAOzC,EAPyC,CAA3C;AAAA;AAAA,MAAOgB,MAAP;AAAA,MAAeC,SAAf;;AAUA,0BAAwCtB,eAAe,CAAC;AACtDE,IAAAA,GAAG,EAAHA,GADsD;AAEtDC,IAAAA,GAAG,EAAE,cAFiD;AAGtDC,IAAAA,QAAQ,EAARA,QAHsD;AAItDC,IAAAA,KAAK,EAALA;AAJsD,GAAD,CAAvD;AAAA;AAAA,MAAOkB,YAAP;AAAA,MAAqBC,eAArB;;AAOA,2BAAgCxB,eAAe,CAC7C;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,UAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GAD6C,EAO7C,EAP6C,CAA/C;AAAA;AAAA,MAAOoB,QAAP;AAAA,MAAiBC,WAAjB;;AAUA,2BAA4C1B,eAAe,CACzD;AACEE,IAAAA,GAAG,EAAHA,GADF;AAEEC,IAAAA,GAAG,EAAE,gBAFP;AAGEC,IAAAA,QAAQ,EAARA,QAHF;AAIEC,IAAAA,KAAK,EAALA;AAJF,GADyD,EAOxDM,QAAQ,KAAID,OAAJ,uCAAIA,OAAO,CAAEL,KAAb,8CAAI,gBAAgBsB,OAApB,qBAAI,sBAA0BhB,QAA1B,CAAJ,CAAT,IAAqD,EAPI,CAA3D;AAAA;AAAA,MAAOiB,cAAP;AAAA,MAAuBC,iBAAvB;;AAUA,SAAO;AACLd,IAAAA,OAAO,EAAPA,OADK;AAELE,IAAAA,QAAQ,EAARA,QAFK;AAGLE,IAAAA,IAAI,EAAJA,IAHK;AAILH,IAAAA,UAAU,EAAVA,UAJK;AAKLE,IAAAA,WAAW,EAAXA,WALK;AAMLE,IAAAA,OAAO,EAAPA,OANK;AAOLS,IAAAA,iBAAiB,EAAjBA,iBAPK;AAQLP,IAAAA,SAAS,EAATA,SARK;AASLE,IAAAA,eAAe,EAAfA,eATK;AAULE,IAAAA,WAAW,EAAXA,WAVK;AAWLE,IAAAA,cAAc,EAAdA,cAXK;AAYLP,IAAAA,MAAM,EAANA,MAZK;AAaLE,IAAAA,YAAY,EAAZA,YAbK;AAcLE,IAAAA,QAAQ,EAARA;AAdK,GAAP;AAgBD","sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport type { Channel as ChannelType } from 'stream-chat';\n\nimport { useChannelsStateContext } from './ChannelsStateContext';\n\nimport type { ChannelsStateContextValue, ChannelState, Keys } from './ChannelsStateContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\ntype StateManagerParams<\n Key extends Keys,\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Omit<\n ChannelsStateContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'increaseSubscriberCount' | 'decreaseSubscriberCount'\n> & {\n cid: string;\n key: Key;\n};\n\n/* \n This hook takes care of creating a useState-like interface which can be used later to call\n updates to the ChannelsStateContext reducer. It receives the cid and key which it wants to update\n and perform the state updates. Also supports a initialState.\n*/\nfunction useStateManager<\n Key extends Keys,\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n {\n cid,\n key,\n setState,\n state,\n }: Omit<\n StateManagerParams<Key, At, Ch, Co, Ev, Me, Re, Us>,\n 'increaseSubscriberCount' | 'decreaseSubscriberCount'\n >,\n initialValue?: ChannelState<At, Ch, Co, Ev, Me, Re, Us>[Key],\n) {\n const memoizedInitialValue = useMemo(() => initialValue, []);\n const value =\n state[cid]?.[key] || (memoizedInitialValue as ChannelState<At, Ch, Co, Ev, Me, Re, Us>[Key]);\n\n const setValue = useCallback(\n (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>[Key]) => setState({ cid, key, value }),\n [cid, key],\n );\n\n return [value, setValue] as const;\n}\n\nexport type UseChannelStateValue<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = {\n members: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['members'];\n messages: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['messages'];\n read: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['read'];\n setMembers: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['members']) => void;\n setMessages: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['messages']) => void;\n setRead: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['read']) => void;\n setThreadMessages: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['threadMessages']) => void;\n setTyping: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['typing']) => void;\n setWatcherCount: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['watcherCount']) => void;\n setWatchers: (value: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['watchers']) => void;\n threadMessages: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['threadMessages'];\n typing: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['typing'];\n watcherCount: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['watcherCount'];\n watchers: ChannelState<At, Ch, Co, Ev, Me, Re, Us>['watchers'];\n};\n\nexport function useChannelState<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n channel: ChannelType<At, Ch, Co, Ev, Me, Re, Us> | undefined,\n threadId?: string,\n): UseChannelStateValue<At, Ch, Co, Ev, Me, Re, Us> {\n const cid = channel?.id || 'id'; // in case channel is not initialized, use generic id string for indexing\n const { decreaseSubscriberCount, increaseSubscriberCount, setState, state } =\n useChannelsStateContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n // Keeps track of how many Channel components are subscribed to this Channel state (Channel vs Thread concurrency)\n useEffect(() => {\n increaseSubscriberCount({ cid });\n return () => {\n decreaseSubscriberCount({ cid });\n };\n }, []);\n\n const [members, setMembers] = useStateManager(\n {\n cid,\n key: 'members',\n setState,\n state,\n },\n {},\n );\n\n const [messages, setMessages] = useStateManager(\n {\n cid,\n key: 'messages',\n setState,\n state,\n },\n channel?.state?.messages || [],\n );\n\n const [read, setRead] = useStateManager(\n {\n cid,\n key: 'read',\n setState,\n state,\n },\n {},\n );\n\n const [typing, setTyping] = useStateManager(\n {\n cid,\n key: 'typing',\n setState,\n state,\n },\n {},\n );\n\n const [watcherCount, setWatcherCount] = useStateManager({\n cid,\n key: 'watcherCount',\n setState,\n state,\n });\n\n const [watchers, setWatchers] = useStateManager(\n {\n cid,\n key: 'watchers',\n setState,\n state,\n },\n {},\n );\n\n const [threadMessages, setThreadMessages] = useStateManager(\n {\n cid,\n key: 'threadMessages',\n setState,\n state,\n },\n (threadId && channel?.state?.threads?.[threadId]) || [],\n );\n\n return {\n members,\n messages,\n read,\n setMembers,\n setMessages,\n setRead,\n setThreadMessages,\n setTyping,\n setWatcherCount,\n setWatchers,\n threadMessages,\n typing,\n watcherCount,\n watchers,\n };\n}\n"]}
@@ -32,7 +32,7 @@ var MessageProvider = function MessageProvider(_ref) {
32
32
  __self: _this,
33
33
  __source: {
34
34
  fileName: _jsxFileName,
35
- lineNumber: 139,
35
+ lineNumber: 132,
36
36
  columnNumber: 3
37
37
  }
38
38
  }, children);
@@ -53,7 +53,7 @@ var withMessageContext = function withMessageContext(Component) {
53
53
  __self: _this,
54
54
  __source: {
55
55
  fileName: _jsxFileName,
56
- lineNumber: 176,
56
+ lineNumber: 169,
57
57
  columnNumber: 12
58
58
  }
59
59
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["MessageContext.tsx"],"names":["MessageContext","React","createContext","MessageProvider","children","value","useMessageContext","withMessageContext","Component","WithMessageContextComponent","props","messageContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;;;;AAwHO,IAAMA,cAAc,GAAGC,kBAAMC,aAAN,CAAoB,EAApB,CAAvB;;;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB;AAAA,MAS7BC,QAT6B,QAS7BA,QAT6B;AAAA,MAU7BC,KAV6B,QAU7BA,KAV6B;AAAA,SAc7B,gCAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAEA,KAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAd6B;AAAA,CAAxB;;;;AAmBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAQ1B,uBAAWN,cAAX,CAR0B;AAAA,CAA1B;;;;AAeA,IAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,CAUhCC,SAVgC,EAW6C;AAC7E,MAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CAClCC,KADkC,EAE/B;AACH,QAAMC,cAAc,GAAGL,iBAAiB,EAAxC;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAiCC,cAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,2BAA2B,CAACG,WAA5B,0BAA+D,oCAAeJ,SAAf,CAA/D;AACA,SAAOC,2BAAP;AACD,CArBM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport { getDisplayName } from '../utils/getDisplayName';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { ActionHandler } from '../../components/Attachment/Attachment';\nimport type { TouchableHandlerPayload } from '../../components/Message/Message';\nimport type { GroupType, MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { ChannelContextValue } from '../../contexts/channelContext/ChannelContext';\nimport type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nexport type Alignment = 'right' | 'left';\n\nexport type Reactions = {\n own: boolean;\n type: string;\n}[];\n\nexport type MessageContextValue<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = {\n /** Whether or not actions can be performed on message */\n actionsEnabled: boolean;\n /** Position of the message, either 'right' or 'left' */\n alignment: Alignment;\n /**\n * Function that returns a boolean indicating whether or not the user can edit/delete the message.\n */\n canModifyMessage: boolean;\n /** The files attached to a message */\n files: Attachment<At>[];\n /**\n * Position of message in group - top, bottom, middle, single.\n *\n * Message group is a group of consecutive messages from same user. groupStyles can be used to style message as per their position in message group\n * e.g., user avatar (to which message belongs to) is only showed for last (bottom) message in group.\n */\n groupStyles: GroupType[];\n /** Handler for actions. Actions in combination with attachments can be used to build [commands](https://getstream.io/chat/docs/#channel_commands). */\n handleAction: ActionHandler;\n handleDeleteMessage: () => Promise<void>;\n handleEditMessage: () => void;\n handleQuotedReplyMessage: () => void;\n handleResendMessage: () => Promise<void>;\n handleToggleBanUser: () => Promise<void>;\n handleToggleMuteUser: () => Promise<void>;\n handleToggleReaction: (reactionType: string) => Promise<void>;\n /** Whether or not message has reactions */\n hasReactions: boolean;\n /** The images attached to a message */\n images: Attachment<At>[];\n /** Whether or not this is the active user's message */\n isMyMessage: boolean;\n /** Whether or not this is the last message in a group of messages */\n lastGroupMessage: boolean;\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param event Event object for onLongPress event\n */\n onLongPress: (payload: TouchableHandlerPayload) => void;\n /** Whether the message is only text and the text is only emojis */\n onlyEmojis: boolean;\n /** Handler to open a thread on a message */\n onOpenThread: () => void;\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param event Event object for onPress event\n */\n onPress: (payload: TouchableHandlerPayload) => void;\n onPressIn: ((payload: TouchableHandlerPayload) => void) | null;\n /** The images attached to a message */\n otherAttachments: Attachment<At>[];\n reactions: Reactions;\n showMessageOverlay: (messageReactions?: boolean) => void;\n showMessageStatus: boolean;\n /** Whether or not the Message is part of a Thread */\n threadList: boolean;\n goToMessage?: (messageId: string) => void;\n /** Latest message id on current channel */\n lastReceivedId?: string;\n /** Prevent message being pressed for image viewer view */\n preventPress?: boolean;\n /** Whether or not the avatar show show next to Message */\n showAvatar?: boolean;\n} & Pick<\n ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'channel' | 'disabled' | 'members' | 'readEventsEnabled'\n>;\n\nexport const MessageContext = React.createContext({} as MessageContextValue);\n\nexport const MessageProvider = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>;\n}>) => (\n <MessageContext.Provider value={value as unknown as MessageContextValue}>\n {children}\n </MessageContext.Provider>\n);\n\nexport const useMessageContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>() => useContext(MessageContext) as unknown as MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>;\n\n/**\n * Typescript currently does not support partial inference so if MessageContext\n * typing is desired while using the HOC withMessageContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageContext = <\n P extends UnknownType,\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>>> => {\n const WithMessageContextComponent = (\n props: Omit<P, keyof MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>>,\n ) => {\n const messageContext = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return <Component {...(props as P)} {...messageContext} />;\n };\n WithMessageContextComponent.displayName = `WithMessageContext${getDisplayName(Component)}`;\n return WithMessageContextComponent;\n};\n"]}
1
+ {"version":3,"sources":["MessageContext.tsx"],"names":["MessageContext","React","createContext","MessageProvider","children","value","useMessageContext","withMessageContext","Component","WithMessageContextComponent","props","messageContext","displayName"],"mappings":";;;;;;;;;;;AAAA;;AAEA;;;;;;;;;AAiHO,IAAMA,cAAc,GAAGC,kBAAMC,aAAN,CAAoB,EAApB,CAAvB;;;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB;AAAA,MAS7BC,QAT6B,QAS7BA,QAT6B;AAAA,MAU7BC,KAV6B,QAU7BA,KAV6B;AAAA,SAc7B,gCAAC,cAAD,CAAgB,QAAhB;AAAyB,IAAA,KAAK,EAAEA,KAAhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGD,QADH,CAd6B;AAAA,CAAxB;;;;AAmBA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAQ1B,uBAAWN,cAAX,CAR0B;AAAA,CAA1B;;;;AAeA,IAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,CAUhCC,SAVgC,EAW6C;AAC7E,MAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CAClCC,KADkC,EAE/B;AACH,QAAMC,cAAc,GAAGL,iBAAiB,EAAxC;AAEA,WAAO,gCAAC,SAAD,gCAAgBI,KAAhB,EAAiCC,cAAjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAAP;AACD,GAND;;AAOAF,EAAAA,2BAA2B,CAACG,WAA5B,0BAA+D,oCAAeJ,SAAf,CAA/D;AACA,SAAOC,2BAAP;AACD,CArBM","sourcesContent":["import React, { PropsWithChildren, useContext } from 'react';\n\nimport { getDisplayName } from '../utils/getDisplayName';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { ActionHandler } from '../../components/Attachment/Attachment';\nimport type { TouchableHandlerPayload } from '../../components/Message/Message';\nimport type { GroupType, MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type { ChannelContextValue } from '../../contexts/channelContext/ChannelContext';\nimport type { MessageContentType } from '../../contexts/messagesContext/MessagesContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nexport type Alignment = 'right' | 'left';\n\nexport type Reactions = {\n own: boolean;\n type: string;\n}[];\n\nexport type MessageContextValue<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = {\n /** Whether or not actions can be performed on message */\n actionsEnabled: boolean;\n /** Position of the message, either 'right' or 'left' */\n alignment: Alignment;\n /** The files attached to a message */\n files: Attachment<At>[];\n /**\n * Position of message in group - top, bottom, middle, single.\n *\n * Message group is a group of consecutive messages from same user. groupStyles can be used to style message as per their position in message group\n * e.g., user avatar (to which message belongs to) is only showed for last (bottom) message in group.\n */\n groupStyles: GroupType[];\n /** Handler for actions. Actions in combination with attachments can be used to build [commands](https://getstream.io/chat/docs/#channel_commands). */\n handleAction: ActionHandler;\n handleDeleteMessage: () => Promise<void>;\n handleEditMessage: () => void;\n handleQuotedReplyMessage: () => void;\n handleResendMessage: () => Promise<void>;\n handleToggleBanUser: () => Promise<void>;\n handleToggleMuteUser: () => Promise<void>;\n handleToggleReaction: (reactionType: string) => Promise<void>;\n /** Whether or not message has reactions */\n hasReactions: boolean;\n /** The images attached to a message */\n images: Attachment<At>[];\n /** Whether or not this is the active user's message */\n isMyMessage: boolean;\n /** Whether or not this is the last message in a group of messages */\n lastGroupMessage: boolean;\n /** Current [message object](https://getstream.io/chat/docs/#message_format) */\n message: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n /** Order to render the message content */\n messageContentOrder: MessageContentType[];\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Message/Message.tsx)\n *\n * By default, we show the overlay with all the message actions on long press.\n *\n * @param event Event object for onLongPress event\n */\n onLongPress: (payload: TouchableHandlerPayload) => void;\n /** Whether the message is only text and the text is only emojis */\n onlyEmojis: boolean;\n /** Handler to open a thread on a message */\n onOpenThread: () => void;\n /**\n * You can call methods available on the Message\n * component such as handleEdit, handleDelete, handleAction etc.\n *\n * Source - [Message](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Message/Message.tsx)\n *\n * By default, we will dismiss the keyboard on press.\n *\n * @param event Event object for onPress event\n */\n onPress: (payload: TouchableHandlerPayload) => void;\n onPressIn: ((payload: TouchableHandlerPayload) => void) | null;\n /** The images attached to a message */\n otherAttachments: Attachment<At>[];\n reactions: Reactions;\n showMessageOverlay: (messageReactions?: boolean) => void;\n showMessageStatus: boolean;\n /** Whether or not the Message is part of a Thread */\n threadList: boolean;\n goToMessage?: (messageId: string) => void;\n /** Latest message id on current channel */\n lastReceivedId?: string;\n /** Prevent message being pressed for image viewer view */\n preventPress?: boolean;\n /** Whether or not the avatar show show next to Message */\n showAvatar?: boolean;\n} & Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'channel' | 'disabled' | 'members'>;\n\nexport const MessageContext = React.createContext({} as MessageContextValue);\n\nexport const MessageProvider = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>({\n children,\n value,\n}: PropsWithChildren<{\n value?: MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>;\n}>) => (\n <MessageContext.Provider value={value as unknown as MessageContextValue}>\n {children}\n </MessageContext.Provider>\n);\n\nexport const useMessageContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>() => useContext(MessageContext) as unknown as MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>;\n\n/**\n * Typescript currently does not support partial inference so if MessageContext\n * typing is desired while using the HOC withMessageContextContext the Props for the\n * wrapped component must be provided as the first generic.\n */\nexport const withMessageContext = <\n P extends UnknownType,\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n Component: React.ComponentType<P>,\n): React.FC<Omit<P, keyof MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>>> => {\n const WithMessageContextComponent = (\n props: Omit<P, keyof MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>>,\n ) => {\n const messageContext = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return <Component {...(props as P)} {...messageContext} />;\n };\n WithMessageContextComponent.displayName = `WithMessageContext${getDisplayName(Component)}`;\n return WithMessageContextComponent;\n};\n"]}
@@ -41,10 +41,18 @@ var _ThreadContext = require("../threadContext/ThreadContext");
41
41
 
42
42
  var _getDisplayName = require("../utils/getDisplayName");
43
43
 
44
+ var _useCooldown2 = require("../../components/MessageInput/hooks/useCooldown");
45
+
44
46
  var _utils = require("../../utils/utils");
45
47
 
46
48
  var _native = require("../../native");
47
49
 
50
+ var _OwnCapabilitiesContext = require("../ownCapabilitiesContext/OwnCapabilitiesContext");
51
+
52
+ var _TranslationContext = require("../translationContext/TranslationContext");
53
+
54
+ var _mimeTypes = require("mime-types");
55
+
48
56
  var _this = this,
49
57
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/contexts/messageInputContext/MessageInputContext.tsx";
50
58
 
@@ -58,8 +66,6 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
58
66
 
59
67
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
60
68
 
61
- var MIME_TYPE_OCTET_STREAM = 'application/octet-stream';
62
-
63
69
  var MessageInputContext = _react["default"].createContext({});
64
70
 
65
71
  exports.MessageInputContext = MessageInputContext;
@@ -77,6 +83,8 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
77
83
  var _useChatContext = (0, _ChatContext.useChatContext)(),
78
84
  client = _useChatContext.client;
79
85
 
86
+ var channelCapabities = (0, _OwnCapabilitiesContext.useOwnCapabilitiesContext)();
87
+
80
88
  var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
81
89
  channel = _useChannelContext.channel,
82
90
  giphyEnabled = _useChannelContext.giphyEnabled;
@@ -84,6 +92,9 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
84
92
  var _useThreadContext = (0, _ThreadContext.useThreadContext)(),
85
93
  thread = _useThreadContext.thread;
86
94
 
95
+ var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
96
+ t = _useTranslationContex.t;
97
+
87
98
  var inputBoxRef = (0, _react.useRef)(null);
88
99
  var sending = (0, _react.useRef)(false);
89
100
 
@@ -127,6 +138,10 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
127
138
  showMoreOptions = _useMessageDetailsFor.showMoreOptions,
128
139
  text = _useMessageDetailsFor.text;
129
140
 
141
+ var _useCooldown = (0, _useCooldown2.useCooldown)(),
142
+ cooldownEndsAt = _useCooldown.endsAt,
143
+ startCooldown = _useCooldown.start;
144
+
130
145
  var threadId = thread == null ? void 0 : thread.id;
131
146
  (0, _react.useEffect)(function () {
132
147
  setSendThreadMessageInChannel(false);
@@ -181,7 +196,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
181
196
 
182
197
  setText(newText);
183
198
 
184
- if (newText && channel) {
199
+ if (newText && channel && channelCapabities.sendTypingEvents) {
185
200
  (0, _streamChat.logChatPromiseExecution)(channel.keystroke(thread == null ? void 0 : thread.id), 'start typing event');
186
201
  }
187
202
 
@@ -324,7 +339,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
324
339
 
325
340
  var sendMessage = function () {
326
341
  var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() {
327
- var prevText, attachments, _loop, _iterator3, _step3, _image4, _ret, _iterator4, _step4, _file4, _file4$file$type, updatedMessage, updateMessagePromise;
342
+ var prevText, attachments, _loop, _iterator3, _step3, _image4, _ret, _iterator4, _step4, _file4, _file4$file$type, _file4$file$type2, updatedMessage, updateMessagePromise;
328
343
 
329
344
  return _regenerator["default"].wrap(function _callee2$(_context2) {
330
345
  while (1) {
@@ -338,12 +353,21 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
338
353
  return _context2.abrupt("return");
339
354
 
340
355
  case 2:
356
+ if (!(!channelCapabities.sendLinks && !!text.match(_utils.urlRegex))) {
357
+ _context2.next = 5;
358
+ break;
359
+ }
360
+
361
+ _reactNative.Alert.alert(t('Links are disabled'), t('Sending links is not allowed in this conversation'));
362
+
363
+ return _context2.abrupt("return");
364
+
365
+ case 5:
341
366
  sending.current = true;
367
+ startCooldown();
342
368
  prevText = giphyEnabled && giphyActive ? "/giphy " + text : text;
343
- _context2.next = 6;
344
- return setText('');
369
+ setText('');
345
370
 
346
- case 6:
347
371
  if (inputBoxRef.current) {
348
372
  inputBoxRef.current.clear();
349
373
  }
@@ -379,9 +403,9 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
379
403
 
380
404
  _iterator3 = _createForOfIteratorHelperLoose(imageUploads);
381
405
 
382
- case 10:
406
+ case 13:
383
407
  if ((_step3 = _iterator3()).done) {
384
- _context2.next = 19;
408
+ _context2.next = 22;
385
409
  break;
386
410
  }
387
411
 
@@ -389,52 +413,52 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
389
413
  _ret = _loop(_image4);
390
414
 
391
415
  if (!(_ret === "continue")) {
392
- _context2.next = 15;
416
+ _context2.next = 18;
393
417
  break;
394
418
  }
395
419
 
396
- return _context2.abrupt("continue", 17);
420
+ return _context2.abrupt("continue", 20);
397
421
 
398
- case 15:
422
+ case 18:
399
423
  if (!((0, _typeof2["default"])(_ret) === "object")) {
400
- _context2.next = 17;
424
+ _context2.next = 20;
401
425
  break;
402
426
  }
403
427
 
404
428
  return _context2.abrupt("return", _ret.v);
405
429
 
406
- case 17:
407
- _context2.next = 10;
430
+ case 20:
431
+ _context2.next = 13;
408
432
  break;
409
433
 
410
- case 19:
434
+ case 22:
411
435
  _iterator4 = _createForOfIteratorHelperLoose(fileUploads);
412
436
 
413
- case 20:
437
+ case 23:
414
438
  if ((_step4 = _iterator4()).done) {
415
- _context2.next = 30;
439
+ _context2.next = 33;
416
440
  break;
417
441
  }
418
442
 
419
443
  _file4 = _step4.value;
420
444
 
421
445
  if (!(!_file4 || _file4.state === _utils.FileState.UPLOAD_FAILED)) {
422
- _context2.next = 24;
446
+ _context2.next = 27;
423
447
  break;
424
448
  }
425
449
 
426
- return _context2.abrupt("continue", 28);
450
+ return _context2.abrupt("continue", 31);
427
451
 
428
- case 24:
452
+ case 27:
429
453
  if (!(_file4.state === _utils.FileState.UPLOADING)) {
430
- _context2.next = 27;
454
+ _context2.next = 30;
431
455
  break;
432
456
  }
433
457
 
434
458
  sending.current = false;
435
459
  return _context2.abrupt("return");
436
460
 
437
- case 27:
461
+ case 30:
438
462
  if (_file4.state === _utils.FileState.UPLOADED || _file4.state === _utils.FileState.FINISHED) {
439
463
  if ((_file4$file$type = _file4.file.type) != null && _file4$file$type.startsWith('image/')) {
440
464
  attachments.push({
@@ -442,6 +466,14 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
442
466
  image_url: _file4.url,
443
467
  type: 'image'
444
468
  });
469
+ } else if ((_file4$file$type2 = _file4.file.type) != null && _file4$file$type2.startsWith('video/')) {
470
+ attachments.push({
471
+ asset_url: _file4.url,
472
+ file_size: _file4.file.size,
473
+ mime_type: _file4.file.type,
474
+ title: _file4.file.name,
475
+ type: 'video'
476
+ });
445
477
  } else {
446
478
  attachments.push({
447
479
  asset_url: _file4.url,
@@ -453,20 +485,20 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
453
485
  }
454
486
  }
455
487
 
456
- case 28:
457
- _context2.next = 20;
488
+ case 31:
489
+ _context2.next = 23;
458
490
  break;
459
491
 
460
- case 30:
492
+ case 33:
461
493
  if (!(!prevText && attachments.length === 0)) {
462
- _context2.next = 33;
494
+ _context2.next = 36;
463
495
  break;
464
496
  }
465
497
 
466
498
  sending.current = false;
467
499
  return _context2.abrupt("return");
468
500
 
469
- case 33:
501
+ case 36:
470
502
  if (value.editing && !(0, _useMessageDetailsForState.isEditingBoolean)(value.editing)) {
471
503
  updatedMessage = (0, _extends2["default"])({}, value.editing, {
472
504
  attachments: attachments,
@@ -504,7 +536,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
504
536
  }
505
537
  }
506
538
 
507
- case 34:
539
+ case 37:
508
540
  case "end":
509
541
  return _context2.stop();
510
542
  }
@@ -529,6 +561,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
529
561
  image_url: image.url,
530
562
  type: 'image'
531
563
  }];
564
+ startCooldown();
532
565
 
533
566
  try {
534
567
  value.sendMessage({
@@ -634,8 +667,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
634
667
 
635
668
  case 3:
636
669
  file = newFile.file, id = newFile.id;
637
- _context4.next = 6;
638
- return setFileUploads(function (prevFileUploads) {
670
+ setFileUploads(function (prevFileUploads) {
639
671
  return prevFileUploads.map(function (fileUpload) {
640
672
  if (fileUpload.id === id) {
641
673
  return (0, _extends2["default"])({}, fileUpload, {
@@ -646,43 +678,41 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
646
678
  return fileUpload;
647
679
  });
648
680
  });
649
-
650
- case 6:
651
681
  response = {};
652
- _context4.prev = 7;
682
+ _context4.prev = 6;
653
683
 
654
684
  if (!value.doDocUploadRequest) {
655
- _context4.next = 14;
685
+ _context4.next = 13;
656
686
  break;
657
687
  }
658
688
 
659
- _context4.next = 11;
689
+ _context4.next = 10;
660
690
  return value.doDocUploadRequest(file, channel);
661
691
 
662
- case 11:
692
+ case 10:
663
693
  response = _context4.sent;
664
- _context4.next = 18;
694
+ _context4.next = 17;
665
695
  break;
666
696
 
667
- case 14:
697
+ case 13:
668
698
  if (!(channel && file.uri)) {
669
- _context4.next = 18;
699
+ _context4.next = 17;
670
700
  break;
671
701
  }
672
702
 
673
- _context4.next = 17;
674
- return channel.sendFile(file.uri, file.name, MIME_TYPE_OCTET_STREAM);
703
+ _context4.next = 16;
704
+ return channel.sendFile(file.uri, file.name, file.type);
675
705
 
676
- case 17:
706
+ case 16:
677
707
  response = _context4.sent;
678
708
 
679
- case 18:
680
- _context4.next = 25;
709
+ case 17:
710
+ _context4.next = 24;
681
711
  break;
682
712
 
683
- case 20:
684
- _context4.prev = 20;
685
- _context4.t0 = _context4["catch"](7);
713
+ case 19:
714
+ _context4.prev = 19;
715
+ _context4.t0 = _context4["catch"](6);
686
716
  console.warn(_context4.t0);
687
717
 
688
718
  if (!newFile) {
@@ -708,7 +738,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
708
738
 
709
739
  return _context4.abrupt("return");
710
740
 
711
- case 25:
741
+ case 24:
712
742
  setFileUploads(function (prevFileUploads) {
713
743
  return prevFileUploads.map(function (fileUpload) {
714
744
  if (fileUpload.id === id) {
@@ -722,12 +752,12 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
722
752
  });
723
753
  });
724
754
 
725
- case 26:
755
+ case 25:
726
756
  case "end":
727
757
  return _context4.stop();
728
758
  }
729
759
  }
730
- }, _callee4, null, [[7, 20]]);
760
+ }, _callee4, null, [[6, 19]]);
731
761
  }));
732
762
 
733
763
  return function uploadFile(_x) {
@@ -737,7 +767,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
737
767
 
738
768
  var uploadImage = function () {
739
769
  var _ref8 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(_ref7) {
740
- var newImage, _ref9, file, id, response, _file$uri, localUri, uri, compressedUri;
770
+ var newImage, _ref9, file, id, response, _file$uri, localUri, uri, compressedUri, filename, contentType;
741
771
 
742
772
  return _regenerator["default"].wrap(function _callee5$(_context5) {
743
773
  while (1) {
@@ -803,32 +833,34 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
803
833
 
804
834
  case 24:
805
835
  compressedUri = _context5.sent;
836
+ filename = uri.replace(/^(file:\/\/|content:\/\/|assets-library:\/\/)/, '');
837
+ contentType = (0, _mimeTypes.lookup)(filename) || 'multipart/form-data';
806
838
 
807
839
  if (!value.doImageUploadRequest) {
808
- _context5.next = 31;
840
+ _context5.next = 33;
809
841
  break;
810
842
  }
811
843
 
812
- _context5.next = 28;
844
+ _context5.next = 30;
813
845
  return value.doImageUploadRequest(file, channel);
814
846
 
815
- case 28:
847
+ case 30:
816
848
  response = _context5.sent;
817
- _context5.next = 39;
849
+ _context5.next = 41;
818
850
  break;
819
851
 
820
- case 31:
852
+ case 33:
821
853
  if (!(compressedUri && channel)) {
822
- _context5.next = 39;
854
+ _context5.next = 41;
823
855
  break;
824
856
  }
825
857
 
826
858
  if (!value.sendImageAsync) {
827
- _context5.next = 36;
859
+ _context5.next = 38;
828
860
  break;
829
861
  }
830
862
 
831
- channel.sendImage(compressedUri, undefined, MIME_TYPE_OCTET_STREAM).then(function (res) {
863
+ channel.sendImage(compressedUri, undefined, contentType).then(function (res) {
832
864
  if (asyncIds.includes(id)) {
833
865
  setAsyncUploads(function (prevAsyncUploads) {
834
866
  prevAsyncUploads[id] = (0, _extends2["default"])({}, prevAsyncUploads[id], {
@@ -852,17 +884,17 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
852
884
  });
853
885
  }
854
886
  });
855
- _context5.next = 39;
887
+ _context5.next = 41;
856
888
  break;
857
889
 
858
- case 36:
859
- _context5.next = 38;
860
- return channel.sendImage(compressedUri, undefined, MIME_TYPE_OCTET_STREAM);
861
-
862
890
  case 38:
891
+ _context5.next = 40;
892
+ return channel.sendImage(compressedUri, undefined, contentType);
893
+
894
+ case 40:
863
895
  response = _context5.sent;
864
896
 
865
- case 39:
897
+ case 41:
866
898
  if (Object.keys(response).length) {
867
899
  setImageUploads(function (prevImageUploads) {
868
900
  return prevImageUploads.map(function (imageUpload) {
@@ -878,11 +910,11 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
878
910
  });
879
911
  }
880
912
 
881
- _context5.next = 48;
913
+ _context5.next = 50;
882
914
  break;
883
915
 
884
- case 42:
885
- _context5.prev = 42;
916
+ case 44:
917
+ _context5.prev = 44;
886
918
  _context5.t2 = _context5["catch"](5);
887
919
  console.warn(_context5.t2);
888
920
 
@@ -905,12 +937,12 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
905
937
  });
906
938
  return _context5.abrupt("return");
907
939
 
908
- case 48:
940
+ case 50:
909
941
  case "end":
910
942
  return _context5.stop();
911
943
  }
912
944
  }
913
- }, _callee5, null, [[5, 42]]);
945
+ }, _callee5, null, [[5, 44]]);
914
946
  }));
915
947
 
916
948
  return function uploadImage(_x2) {
@@ -920,32 +952,33 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
920
952
 
921
953
  var uploadNewFile = function () {
922
954
  var _ref10 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(file) {
923
- var id, newFile;
955
+ var id, mimeType, newFile;
924
956
  return _regenerator["default"].wrap(function _callee6$(_context6) {
925
957
  while (1) {
926
958
  switch (_context6.prev = _context6.next) {
927
959
  case 0:
928
960
  id = (0, _utils.generateRandomId)();
961
+ mimeType = (0, _mimeTypes.lookup)(file.name);
929
962
  newFile = {
930
963
  file: (0, _extends2["default"])({}, file, {
931
- type: MIME_TYPE_OCTET_STREAM
964
+ type: mimeType || (file == null ? void 0 : file.type)
932
965
  }),
933
966
  id: id,
934
967
  state: _utils.FileState.UPLOADING
935
968
  };
936
- _context6.next = 4;
969
+ _context6.next = 5;
937
970
  return Promise.all([setFileUploads(function (prevFileUploads) {
938
971
  return prevFileUploads.concat([newFile]);
939
972
  }), setNumberOfUploads(function (prevNumberOfUploads) {
940
973
  return prevNumberOfUploads + 1;
941
974
  })]);
942
975
 
943
- case 4:
976
+ case 5:
944
977
  uploadFile({
945
978
  newFile: newFile
946
979
  });
947
980
 
948
- case 5:
981
+ case 6:
949
982
  case "end":
950
983
  return _context6.stop();
951
984
  }
@@ -1001,6 +1034,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
1001
1034
  asyncIds: asyncIds,
1002
1035
  asyncUploads: asyncUploads,
1003
1036
  closeAttachmentPicker: closeAttachmentPicker,
1037
+ cooldownEndsAt: cooldownEndsAt,
1004
1038
  fileUploads: fileUploads,
1005
1039
  giphyActive: giphyActive,
1006
1040
  imageUploads: imageUploads,
@@ -1051,7 +1085,7 @@ var MessageInputProvider = function MessageInputProvider(_ref) {
1051
1085
  __self: _this,
1052
1086
  __source: {
1053
1087
  fileName: _jsxFileName,
1054
- lineNumber: 1066,
1088
+ lineNumber: 1104,
1055
1089
  columnNumber: 5
1056
1090
  }
1057
1091
  }, children);
@@ -1072,7 +1106,7 @@ var withMessageInputContext = function withMessageInputContext(Component) {
1072
1106
  __self: _this,
1073
1107
  __source: {
1074
1108
  fileName: _jsxFileName,
1075
- lineNumber: 1115,
1109
+ lineNumber: 1153,
1076
1110
  columnNumber: 12
1077
1111
  }
1078
1112
  }));