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
@@ -1 +1 @@
1
- {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","cancel","fontSize","fontWeight","paddingVertical","cancelContainer","alignItems","borderRightWidth","flex","justifyContent","container","overflow","width","giphy","borderTopLeftRadius","borderTopRightRadius","height","giphyContainer","borderRadius","flexDirection","giphyMask","bottom","left","position","giphyText","margin","row","selectionContainer","borderWidth","selector","borderBottomWidth","paddingBottom","paddingHorizontal","send","sendContainer","shuffleButton","title","fontStyle","GiphyWithContext","props","additionalTouchableProps","attachment","handleAction","onLongPress","onPress","onPressIn","preventPress","actions","image_url","thumb_url","type","theme","colors","accent_blue","black","border","grey","overlay_dark","white","messageSimple","titleStyle","uri","backgroundColor","borderColor","color","toUpperCase","borderBottomColor","name","value","borderRightColor","text","event","emitter","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","nextActions","nextImageUrl","nextThumbUrl","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","MemoizedGiphy","React","memo","Giphy","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Left } from '../../icons/Left';\nimport { Lightning } from '../../icons/Lightning';\nimport { Right } from '../../icons/Right';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n cancelContainer: {\n alignItems: 'center',\n borderRightWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n giphy: {\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n height: 140,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyText: { fontSize: 11, fontWeight: '600' },\n margin: {\n margin: 8,\n },\n row: { flexDirection: 'row' },\n selectionContainer: {\n borderRadius: 8,\n borderWidth: 1,\n overflow: 'hidden',\n width: 250,\n },\n selector: {\n alignItems: 'center',\n borderBottomWidth: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingBottom: 8,\n paddingHorizontal: 8,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n sendContainer: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n title: {\n fontSize: 14,\n fontStyle: 'italic',\n fontWeight: '500',\n },\n});\n\nexport type GiphyPropsWithContext<\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> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'handleAction' | 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'additionalTouchableProps'> & {\n attachment: Attachment<At>;\n };\n\nconst GiphyWithContext = <\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 props: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n } = props;\n\n const { actions, image_url, thumb_url, title, type } = attachment;\n\n const {\n theme: {\n colors: { accent_blue, black, border, grey, overlay_dark, white },\n messageSimple: {\n giphy: {\n cancel,\n cancelContainer,\n container,\n giphy,\n giphyContainer,\n giphyMask,\n giphyText,\n selectionContainer,\n selector,\n send,\n sendContainer,\n shuffleButton,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n >\n <View style={styles.margin}>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View style={[styles.giphyContainer, { backgroundColor: overlay_dark }, giphyContainer]}>\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyText, { color: white }, giphyText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n <View>\n <View style={[styles.selector, { borderBottomColor: border }, selector]}>\n <TouchableOpacity\n onPress={() => handleAction('image_action', 'shuffle')}\n style={[styles.shuffleButton, { borderColor: border }, shuffleButton]}\n >\n <Left />\n </TouchableOpacity>\n <Text style={[styles.title, { color: black }, titleStyle]}>{`\"${title}\"`}</Text>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[styles.shuffleButton, shuffleButton]}\n >\n <Right />\n </TouchableOpacity>\n </View>\n <View style={styles.row}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[styles.cancelContainer, { borderRightColor: border }, cancelContainer]}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.sendContainer, sendContainer]}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n style={[styles.container, container]}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View style={[styles.giphyContainer, { backgroundColor: overlay_dark }, giphyContainer]}>\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyText, { color: white }, giphyText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <\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 prevProps: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\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> = Partial<\n Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'onLongPress' | 'onPressIn'> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'additionalTouchableProps'>\n> & {\n attachment: Attachment<At>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\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 props: GiphyProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { handleAction, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { additionalTouchableProps } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
1
+ {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","cancel","fontSize","fontWeight","paddingVertical","cancelContainer","alignItems","borderRightWidth","flex","justifyContent","container","overflow","width","giphy","borderTopLeftRadius","borderTopRightRadius","height","giphyContainer","borderRadius","flexDirection","giphyMask","bottom","left","position","giphyText","margin","row","selectionContainer","borderWidth","selector","borderBottomWidth","paddingBottom","paddingHorizontal","send","sendContainer","shuffleButton","title","fontStyle","GiphyWithContext","props","additionalTouchableProps","attachment","handleAction","onLongPress","onPress","onPressIn","preventPress","actions","image_url","thumb_url","type","theme","colors","accent_blue","black","border","grey","overlay","white","messageSimple","titleStyle","uri","backgroundColor","borderColor","color","toUpperCase","borderBottomColor","name","value","borderRightColor","text","event","emitter","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","nextActions","nextImageUrl","nextThumbUrl","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","MemoizedGiphy","React","memo","Giphy","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAIA;;AAIA;;AACA;;AACA;;AACA;;AACA;;;;;AAeA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,EADJ;AAENC,IAAAA,UAAU,EAAE,KAFN;AAGNC,IAAAA,eAAe,EAAE;AAHX,GADuB;AAM/BC,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,QADG;AAEfC,IAAAA,gBAAgB,EAAE,CAFH;AAGfC,IAAAA,IAAI,EAAE,CAHS;AAIfC,IAAAA,cAAc,EAAE;AAJD,GANc;AAY/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,QADD;AAETC,IAAAA,KAAK,EAAE;AAFE,GAZoB;AAgB/BC,EAAAA,KAAK,EAAE;AACLC,IAAAA,mBAAmB,EAAE,CADhB;AAELC,IAAAA,oBAAoB,EAAE,CAFjB;AAGLC,IAAAA,MAAM,EAAE;AAHH,GAhBwB;AAqB/BC,EAAAA,cAAc,EAAE;AACdX,IAAAA,UAAU,EAAE,QADE;AAEdY,IAAAA,YAAY,EAAE,EAFA;AAGdC,IAAAA,aAAa,EAAE,KAHD;AAIdH,IAAAA,MAAM,EAAE,EAJM;AAKdP,IAAAA,cAAc,EAAE,QALF;AAMdG,IAAAA,KAAK,EAAE;AANO,GArBe;AA6B/BQ,EAAAA,SAAS,EAAE;AACTC,IAAAA,MAAM,EAAE,CADC;AAETC,IAAAA,IAAI,EAAE,CAFG;AAGTC,IAAAA,QAAQ,EAAE;AAHD,GA7BoB;AAkC/BC,EAAAA,SAAS,EAAE;AAAEtB,IAAAA,QAAQ,EAAE,EAAZ;AAAgBC,IAAAA,UAAU,EAAE;AAA5B,GAlCoB;AAmC/BsB,EAAAA,MAAM,EAAE;AACNA,IAAAA,MAAM,EAAE;AADF,GAnCuB;AAsC/BC,EAAAA,GAAG,EAAE;AAAEP,IAAAA,aAAa,EAAE;AAAjB,GAtC0B;AAuC/BQ,EAAAA,kBAAkB,EAAE;AAClBT,IAAAA,YAAY,EAAE,CADI;AAElBU,IAAAA,WAAW,EAAE,CAFK;AAGlBjB,IAAAA,QAAQ,EAAE,QAHQ;AAIlBC,IAAAA,KAAK,EAAE;AAJW,GAvCW;AA6C/BiB,EAAAA,QAAQ,EAAE;AACRvB,IAAAA,UAAU,EAAE,QADJ;AAERwB,IAAAA,iBAAiB,EAAE,CAFX;AAGRX,IAAAA,aAAa,EAAE,KAHP;AAIRV,IAAAA,cAAc,EAAE,eAJR;AAKRsB,IAAAA,aAAa,EAAE,CALP;AAMRC,IAAAA,iBAAiB,EAAE;AANX,GA7CqB;AAqD/BC,EAAAA,IAAI,EAAE;AACJ/B,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,UAAU,EAAE,KAFR;AAGJC,IAAAA,eAAe,EAAE;AAHb,GArDyB;AA0D/B8B,EAAAA,aAAa,EAAE;AAAE5B,IAAAA,UAAU,EAAE,QAAd;AAAwBE,IAAAA,IAAI,EAAE,CAA9B;AAAiCC,IAAAA,cAAc,EAAE;AAAjD,GA1DgB;AA2D/B0B,EAAAA,aAAa,EAAE;AACb7B,IAAAA,UAAU,EAAE,QADC;AAEbY,IAAAA,YAAY,EAAE,EAFD;AAGbU,IAAAA,WAAW,EAAE,CAHA;AAIbZ,IAAAA,MAAM,EAAE,EAJK;AAKbP,IAAAA,cAAc,EAAE,QALH;AAMbG,IAAAA,KAAK,EAAE;AANM,GA3DgB;AAmE/BwB,EAAAA,KAAK,EAAE;AACLlC,IAAAA,QAAQ,EAAE,EADL;AAELmC,IAAAA,SAAS,EAAE,QAFN;AAGLlC,IAAAA,UAAU,EAAE;AAHP;AAnEwB,CAAlB,CAAf;;AA0FA,IAAMmC,gBAAgB,GAAG,SAAnBA,gBAAmB,CASvBC,KATuB,EAUpB;AACH,MACEC,wBADF,GAQID,KARJ,CACEC,wBADF;AAAA,MAEEC,UAFF,GAQIF,KARJ,CAEEE,UAFF;AAAA,MAGEC,YAHF,GAQIH,KARJ,CAGEG,YAHF;AAAA,MAIEC,YAJF,GAQIJ,KARJ,CAIEI,WAJF;AAAA,MAKEC,QALF,GAQIL,KARJ,CAKEK,OALF;AAAA,MAMEC,UANF,GAQIN,KARJ,CAMEM,SANF;AAAA,MAOEC,YAPF,GAQIP,KARJ,CAOEO,YAPF;AAUA,MAAQC,OAAR,GAAuDN,UAAvD,CAAQM,OAAR;AAAA,MAAiBC,SAAjB,GAAuDP,UAAvD,CAAiBO,SAAjB;AAAA,MAA4BC,SAA5B,GAAuDR,UAAvD,CAA4BQ,SAA5B;AAAA,MAAuCb,KAAvC,GAAuDK,UAAvD,CAAuCL,KAAvC;AAAA,MAA8Cc,IAA9C,GAAuDT,UAAvD,CAA8CS,IAA9C;;AAEA,kBAqBI,6BArBJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,KAF3B,yBAE2BA,KAF3B;AAAA,MAEkCC,MAFlC,yBAEkCA,MAFlC;AAAA,MAE0CC,IAF1C,yBAE0CA,IAF1C;AAAA,MAEgDC,OAFhD,yBAEgDA,OAFhD;AAAA,MAEyDC,KAFzD,yBAEyDA,KAFzD;AAAA,8CAGIC,aAHJ,CAIM9C,KAJN;AAAA,MAKQZ,MALR,yBAKQA,MALR;AAAA,MAMQI,eANR,yBAMQA,eANR;AAAA,MAOQK,SAPR,yBAOQA,SAPR;AAAA,MAQQG,KARR,yBAQQA,KARR;AAAA,MASQI,cATR,yBASQA,cATR;AAAA,MAUQG,SAVR,yBAUQA,SAVR;AAAA,MAWQI,SAXR,yBAWQA,SAXR;AAAA,MAYQG,kBAZR,yBAYQA,kBAZR;AAAA,MAaQE,QAbR,yBAaQA,QAbR;AAAA,MAcQI,IAdR,yBAcQA,IAdR;AAAA,MAeQC,aAfR,yBAeQA,aAfR;AAAA,MAgBQC,aAhBR,yBAgBQA,aAhBR;AAAA,MAiBeyB,UAjBf,yBAiBQxB,KAjBR;;AAuBA,MAAMyB,GAAG,GAAGb,SAAS,IAAIC,SAAzB;AAEA,MAAI,CAACY,GAAL,EAAU,OAAO,IAAP;AAEV,SAAOd,OAAO,GACZ,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLjD,MAAM,CAAC6B,kBADF,EAEL;AAAEmC,MAAAA,eAAe,EAAEJ,KAAnB;AAA0BK,MAAAA,WAAW,EAAKT,KAAL;AAArC,KAFK,EAGL3B,kBAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE7B,MAAM,CAAC2B,MAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,OADb;AAEE,IAAA,MAAM,EAAE;AAAEoC,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAAC/D,MAAM,CAACe,KAAR,EAAeA,KAAf,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACf,MAAM,CAACsB,SAAR,EAAmBA,SAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACtB,MAAM,CAACmB,cAAR,EAAwB;AAAE6C,MAAAA,eAAe,EAAEL;AAAnB,KAAxB,EAAsDxC,cAAtD,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,oBAAD;AAAW,IAAA,MAAM,EAAE,EAAnB;AAAuB,IAAA,QAAQ,EAAEyC,KAAjC;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAEE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC5D,MAAM,CAAC0B,SAAR,EAAmB;AAAEwC,MAAAA,KAAK,EAAEN;AAAT,KAAnB,EAAqClC,SAArC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACG0B,IADH,oBACGA,IAAI,CAAEe,WAAN,EADH,CAFF,CADF,CANF,CAPF,EAsBE,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACnE,MAAM,CAAC+B,QAAR,EAAkB;AAAEqC,MAAAA,iBAAiB,EAAEX;AAArB,KAAlB,EAAiD1B,QAAjD,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE;AAAA,aAAMa,YAAY,CAAC,cAAD,EAAiB,SAAjB,CAAlB;AAAA,KADX;AAEE,IAAA,KAAK,EAAE,CAAC5C,MAAM,CAACqC,aAAR,EAAuB;AAAE4B,MAAAA,WAAW,EAAER;AAAf,KAAvB,EAAgDpB,aAAhD,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAIE,gCAAC,UAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAJF,CADF,EAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACrC,MAAM,CAACsC,KAAR,EAAe;AAAE4B,MAAAA,KAAK,EAAEV;AAAT,KAAf,EAAiCM,UAAjC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAgExB,KAAhE,QAPF,EAQE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIW,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAaoB,IAAb,IAAqBpB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAaqB,KAAlC,IAA2C1B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWoB,IAAZ,EAAkBpB,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CAACtE,MAAM,CAACqC,aAAR,EAAuBA,aAAvB,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,YAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IARF,CARF,CADF,EAoBE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAErC,MAAM,CAAC4B,GAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIqB,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAaoB,IAAb,IAAqBpB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAaqB,KAAlC,IAA2C1B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWoB,IAAZ,EAAkBpB,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CAACtE,MAAM,CAACO,eAAR,EAAyB;AAAEgE,MAAAA,gBAAgB,EAAEd;AAApB,KAAzB,EAAuDlD,eAAvD,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACP,MAAM,CAACG,MAAR,EAAgB;AAAE+D,MAAAA,KAAK,EAAER;AAAT,KAAhB,EAAiCvD,MAAjC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAwD8C,OAAxD,oBAAwDA,OAAO,CAAG,CAAH,CAAP,CAAauB,IAArE,CARF,CADF,EAWE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIvB,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAaoB,IAAb,IAAqBpB,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAaqB,KAAlC,IAA2C1B,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACK,OAAO,CAAC,CAAD,CAAP,CAAWoB,IAAZ,EAAkBpB,OAAO,CAAC,CAAD,CAAP,CAAWqB,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CAACtE,MAAM,CAACoC,aAAR,EAAuBA,aAAvB,CANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpC,MAAM,CAACmC,IAAR,EAAc;AAAE+B,MAAAA,KAAK,EAAEX;AAAT,KAAd,EAAsCpB,IAAtC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA2Dc,OAA3D,oBAA2DA,OAAO,CAAG,CAAH,CAAP,CAAauB,IAAxE,CARF,CAXF,CApBF,CAtBF,CADY,GAoEZ,gCAAC,6BAAD;AACE,IAAA,QAAQ,EAAExB,YADZ;AAEE,IAAA,WAAW,EAAE,qBAACyB,KAAD,EAAW;AACtB,UAAI5B,YAAJ,EAAiB;AACfA,QAAAA,YAAW,CAAC;AACV6B,UAAAA,OAAO,EAAE,OADC;AAEVD,UAAAA,KAAK,EAALA;AAFU,SAAD,CAAX;AAID;AACF,KATH;AAUE,IAAA,OAAO,EAAE,iBAACA,KAAD,EAAW;AAClB,UAAI3B,QAAJ,EAAa;AACXA,QAAAA,QAAO,CAAC;AACN4B,UAAAA,OAAO,EAAE,OADH;AAEND,UAAAA,KAAK,EAALA;AAFM,SAAD,CAAP;AAID;AACF,KAjBH;AAkBE,IAAA,SAAS,EAAE,mBAACA,KAAD,EAAW;AACpB,UAAI1B,UAAJ,EAAe;AACbA,QAAAA,UAAS,CAAC;AACR2B,UAAAA,OAAO,EAAE,OADD;AAERD,UAAAA,KAAK,EAALA;AAFQ,SAAD,CAAT;AAID;AACF,KAzBH;AA0BE,IAAA,KAAK,EAAE,CAACzE,MAAM,CAACY,SAAR,EAAmBA,SAAnB,CA1BT;AA2BE,IAAA,MAAM,EAAC;AA3BT,KA4BM8B,wBA5BN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA8BE,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,OADb;AAEE,IAAA,MAAM,EAAE;AAAEqB,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAAC/D,MAAM,CAACe,KAAR,EAAeA,KAAf,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACf,MAAM,CAACsB,SAAR,EAAmBA,SAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACtB,MAAM,CAACmB,cAAR,EAAwB;AAAE6C,MAAAA,eAAe,EAAEL;AAAnB,KAAxB,EAAsDxC,cAAtD,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,oBAAD;AAAW,IAAA,MAAM,EAAE,EAAnB;AAAuB,IAAA,QAAQ,EAAEyC,KAAjC;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAEE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC5D,MAAM,CAAC0B,SAAR,EAAmB;AAAEwC,MAAAA,KAAK,EAAEN;AAAT,KAAnB,EAAqClC,SAArC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACG0B,IADH,oBACGA,IAAI,CAAEe,WAAN,EADH,CAFF,CADF,CANF,CA9BF,CApEF;AAmHD,CArKD;;AAuKA,IAAMQ,QAAQ,GAAG,SAAXA,QAAW,CASfC,SATe,EAUfC,SAVe,EAWZ;AACH,8BAEID,SAFJ,CACEjC,UADF;AAAA,MACyBmC,WADzB,yBACgB7B,OADhB;AAAA,MACiD8B,YADjD,yBACsC7B,SADtC;AAAA,MAC0E8B,YAD1E,yBAC+D7B,SAD/D;AAGA,8BAEI0B,SAFJ,CACElC,UADF;AAAA,MACyBsC,WADzB,yBACgBhC,OADhB;AAAA,MACiDiC,YADjD,yBACsChC,SADtC;AAAA,MAC0EiC,YAD1E,yBAC+DhC,SAD/D;AAIA,MAAMiC,aAAa,GAAGL,YAAY,KAAKG,YAAvC;AACA,MAAI,CAACE,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,aAAa,GAAGL,YAAY,KAAKG,YAAvC;AACA,MAAI,CAACE,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,YAAY,GAChBC,KAAK,CAACC,OAAN,CAAcV,WAAd,MAA+BS,KAAK,CAACC,OAAN,CAAcP,WAAd,CAA/B,KACEM,KAAK,CAACC,OAAN,CAAcV,WAAd,KACAS,KAAK,CAACC,OAAN,CAAcP,WAAd,CADA,IAEAH,WAAW,CAACW,MAAZ,KAAuBR,WAAW,CAACQ,MAFpC,IAGCX,WAAW,KAAKG,WAJlB,CADF;AAMA,MAAI,CAACK,YAAL,EAAmB,OAAO,KAAP;AAEnB,SAAO,IAAP;AACD,CAlCD;;AAoCA,IAAMI,aAAa,GAAGC,kBAAMC,IAAN,CAAWpD,gBAAX,EAA6BmC,QAA7B,CAAtB;;AAoBO,IAAMkB,KAAK,GAAG,SAARA,KAAQ,CASnBpD,KATmB,EAUhB;AACH,2BACE,wCADF;AAAA,MAAQG,YAAR,sBAAQA,YAAR;AAAA,MAAsBC,WAAtB,sBAAsBA,WAAtB;AAAA,MAAmCC,OAAnC,sBAAmCA,OAAnC;AAAA,MAA4CC,SAA5C,sBAA4CA,SAA5C;AAAA,MAAuDC,YAAvD,sBAAuDA,YAAvD;;AAEA,4BAAqC,0CAArC;AAAA,MAAQN,wBAAR,uBAAQA,wBAAR;;AAEA,SACE,gCAAC,aAAD;AAEIA,IAAAA,wBAAwB,EAAxBA,wBAFJ;AAGIE,IAAAA,YAAY,EAAZA,YAHJ;AAIIC,IAAAA,WAAW,EAAXA,WAJJ;AAKIC,IAAAA,OAAO,EAAPA,OALJ;AAMIC,IAAAA,SAAS,EAATA,SANJ;AAOIC,IAAAA,YAAY,EAAZA;AAPJ,KASMP,KATN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAaD,CA5BM;;;AA8BPoD,KAAK,CAACC,WAAN,GAAoB,6BAApB","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Left } from '../../icons/Left';\nimport { Lightning } from '../../icons/Lightning';\nimport { Right } from '../../icons/Right';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst styles = StyleSheet.create({\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n cancelContainer: {\n alignItems: 'center',\n borderRightWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n giphy: {\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n height: 140,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyText: { fontSize: 11, fontWeight: '600' },\n margin: {\n margin: 8,\n },\n row: { flexDirection: 'row' },\n selectionContainer: {\n borderRadius: 8,\n borderWidth: 1,\n overflow: 'hidden',\n width: 250,\n },\n selector: {\n alignItems: 'center',\n borderBottomWidth: 1,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingBottom: 8,\n paddingHorizontal: 8,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n sendContainer: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n title: {\n fontSize: 14,\n fontStyle: 'italic',\n fontWeight: '500',\n },\n});\n\nexport type GiphyPropsWithContext<\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> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'handleAction' | 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'additionalTouchableProps'> & {\n attachment: Attachment<At>;\n };\n\nconst GiphyWithContext = <\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 props: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n } = props;\n\n const { actions, image_url, thumb_url, title, type } = attachment;\n\n const {\n theme: {\n colors: { accent_blue, black, border, grey, overlay, white },\n messageSimple: {\n giphy: {\n cancel,\n cancelContainer,\n container,\n giphy,\n giphyContainer,\n giphyMask,\n giphyText,\n selectionContainer,\n selector,\n send,\n sendContainer,\n shuffleButton,\n title: titleStyle,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n >\n <View style={styles.margin}>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View style={[styles.giphyContainer, { backgroundColor: overlay }, giphyContainer]}>\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyText, { color: white }, giphyText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n <View>\n <View style={[styles.selector, { borderBottomColor: border }, selector]}>\n <TouchableOpacity\n onPress={() => handleAction('image_action', 'shuffle')}\n style={[styles.shuffleButton, { borderColor: border }, shuffleButton]}\n >\n <Left />\n </TouchableOpacity>\n <Text style={[styles.title, { color: black }, titleStyle]}>{`\"${title}\"`}</Text>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[styles.shuffleButton, shuffleButton]}\n >\n <Right />\n </TouchableOpacity>\n </View>\n <View style={styles.row}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[styles.cancelContainer, { borderRightColor: border }, cancelContainer]}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.sendContainer, sendContainer]}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n style={[styles.container, container]}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphy]}\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View style={[styles.giphyContainer, { backgroundColor: overlay }, giphyContainer]}>\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyText, { color: white }, giphyText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <\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 prevProps: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GiphyPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\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> = Partial<\n Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'onLongPress' | 'onPressIn'> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'additionalTouchableProps'>\n> & {\n attachment: Attachment<At>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\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 props: GiphyProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { handleAction, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { additionalTouchableProps } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n handleAction,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
@@ -21,10 +21,6 @@ var _reactNative = require("react-native");
21
21
 
22
22
  var _throttle = _interopRequireDefault(require("lodash/throttle"));
23
23
 
24
- var _CommandsHeader = require("./CommandsHeader");
25
-
26
- var _EmojisHeader = require("./EmojisHeader");
27
-
28
24
  var _ChannelContext = require("../../contexts/channelContext/ChannelContext");
29
25
 
30
26
  var _MessageInputContext = require("../../contexts/messageInputContext/MessageInputContext");
@@ -67,6 +63,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
67
63
  var additionalTextInputProps = props.additionalTextInputProps,
68
64
  autoCompleteSuggestionsLimit = props.autoCompleteSuggestionsLimit,
69
65
  closeSuggestions = props.closeSuggestions,
66
+ _props$cooldownActive = props.cooldownActive,
67
+ cooldownActive = _props$cooldownActive === void 0 ? false : _props$cooldownActive,
70
68
  giphyActive = props.giphyActive,
71
69
  giphyEnabled = props.giphyEnabled,
72
70
  maxMessageLength = props.maxMessageLength,
@@ -116,30 +114,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
116
114
 
117
115
  if (triggerSetting) {
118
116
  isTrackingStarted.current = true;
119
- var Component = triggerSetting.component;
120
- openSuggestions(typeof Component === 'string' ? Component : _react["default"].createElement(Component, {
121
- __self: _this,
122
- __source: {
123
- fileName: _jsxFileName,
124
- lineNumber: 166,
125
- columnNumber: 53
126
- }
127
- }), trigger === ':' ? _react["default"].createElement(_EmojisHeader.EmojisHeader, {
128
- title: "",
129
- __self: _this,
130
- __source: {
131
- fileName: _jsxFileName,
132
- lineNumber: 168,
133
- columnNumber: 11
134
- }
135
- }) : trigger === '/' ? _react["default"].createElement(_CommandsHeader.CommandsHeader, {
136
- __self: _this,
137
- __source: {
138
- fileName: _jsxFileName,
139
- lineNumber: 170,
140
- columnNumber: 11
141
- }
142
- }) : undefined);
117
+ var type = triggerSetting.type;
118
+ openSuggestions(type);
143
119
  }
144
120
  };
145
121
 
@@ -180,7 +156,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
180
156
  item: item,
181
157
  trigger: trigger
182
158
  });
183
- }
159
+ },
160
+ queryText: query
184
161
  });
185
162
  }
186
163
  }, {
@@ -219,7 +196,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
219
196
  item: item,
220
197
  trigger: trigger
221
198
  });
222
- }
199
+ },
200
+ queryText: query
223
201
  });
224
202
  }, {
225
203
  limit: autoCompleteSuggestionsLimit
@@ -250,16 +228,9 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
250
228
  item: item,
251
229
  trigger: trigger
252
230
  });
253
- }
254
- }, _react["default"].createElement(_EmojisHeader.EmojisHeader, {
255
- title: query,
256
- __self: _this,
257
- __source: {
258
- fileName: _jsxFileName,
259
- lineNumber: 243,
260
- columnNumber: 13
261
- }
262
- }));
231
+ },
232
+ queryText: query
233
+ });
263
234
  });
264
235
 
265
236
  case 19:
@@ -499,6 +470,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
499
470
  };
500
471
  }();
501
472
 
473
+ var placeholderText = giphyActive ? t('Search GIFs') : cooldownActive ? t('Slow mode ON') : t('Send a message');
502
474
  var handleSuggestionsThrottled = (0, _throttle["default"])(handleSuggestions, 100, {
503
475
  leading: false
504
476
  });
@@ -521,7 +493,7 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
521
493
  }
522
494
  },
523
495
  onSelectionChange: handleSelectionChange,
524
- placeholder: giphyActive ? t('Search GIFs') : t('Send a message'),
496
+ placeholder: placeholderText,
525
497
  placeholderTextColor: grey,
526
498
  ref: setInputBoxRef,
527
499
  style: [styles.inputBox, {
@@ -541,17 +513,19 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
541
513
  __self: _this,
542
514
  __source: {
543
515
  fileName: _jsxFileName,
544
- lineNumber: 416,
516
+ lineNumber: 417,
545
517
  columnNumber: 5
546
518
  }
547
519
  }));
548
520
  };
549
521
 
550
522
  var areEqual = function areEqual(prevProps, nextProps) {
551
- var prevGiphyActive = prevProps.giphyActive,
523
+ var prevCooldownActive = prevProps.cooldownActive,
524
+ prevGiphyActive = prevProps.giphyActive,
552
525
  prevT = prevProps.t,
553
526
  prevText = prevProps.text;
554
- var nextGiphyActive = nextProps.giphyActive,
527
+ var nextCooldownActive = nextProps.cooldownActive,
528
+ nextGiphyActive = nextProps.giphyActive,
555
529
  nextT = nextProps.t,
556
530
  nextText = nextProps.text;
557
531
  var giphyActiveEqual = prevGiphyActive === nextGiphyActive;
@@ -560,6 +534,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
560
534
  if (!tEqual) return false;
561
535
  var textEqual = prevText === nextText;
562
536
  if (!textEqual) return false;
537
+ var cooldownActiveEqual = prevCooldownActive === nextCooldownActive;
538
+ if (!cooldownActiveEqual) return false;
563
539
  return true;
564
540
  };
565
541
 
@@ -615,7 +591,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
615
591
  __self: _this,
616
592
  __source: {
617
593
  fileName: _jsxFileName,
618
- lineNumber: 524,
594
+ lineNumber: 538,
619
595
  columnNumber: 5
620
596
  }
621
597
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","Component","component","undefined","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevGiphyActive","prevT","prevText","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, TextInput } from 'react-native';\nimport throttle from 'lodash/throttle';\n\nimport { CommandsHeader } from './CommandsHeader';\nimport { EmojisHeader } from './EmojisHeader';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { TextInputProps } from 'react-native';\n\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\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> = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'setShowMoreOptions'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<Co, Us>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'>;\n\nexport type AutoCompleteInputProps<\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> = Partial<AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst AutoCompleteInputWithContext = <\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 props: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { component: Component } = triggerSetting;\n openSuggestions(\n typeof Component === 'string' ? Component : <Component />,\n trigger === ':' ? (\n <EmojisHeader title='' />\n ) : trigger === '/' ? (\n <CommandsHeader />\n ) : undefined,\n );\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<Us>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<Co>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext(\n {\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n },\n <EmojisHeader title={query} />,\n );\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<Co, Us>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (giphyEnabled && !(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={giphyActive ? t('Search GIFs') : t('Send a message')}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\n />\n );\n};\n\nconst areEqual = <\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 prevProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyActive: prevGiphyActive, t: prevT, text: prevText } = prevProps;\n const { giphyActive: nextGiphyActive, t: nextT, text: nextText } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\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 props: AutoCompleteInputProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyEnabled } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n text,\n triggerSettings,\n } = useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { closeSuggestions, openSuggestions, updateSuggestions } = useSuggestionsContext<Co, Us>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
1
+ {"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, TextInput, TextInputProps } from 'react-native';\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\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> = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'setShowMoreOptions'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<Co, Us>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\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> = Partial<AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst AutoCompleteInputWithContext = <\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 props: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<Us>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<Co>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<Co, Us>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (giphyEnabled && !(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\n />\n );\n};\n\nconst areEqual = <\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 prevProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\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 props: AutoCompleteInputProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { giphyEnabled } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n text,\n triggerSettings,\n } = useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { closeSuggestions, openSuggestions, updateSuggestions } = useSuggestionsContext<Co, Us>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}