stream-chat-react-native-core 9.0.0-beta.30 → 9.0.0-beta.32

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 (750) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +15 -52
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/FileAttachment.js +4 -6
  4. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +4 -10
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/FilePreview.js +3 -6
  8. package/lib/commonjs/components/Attachment/FilePreview.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +9 -28
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/GalleryImage.js +3 -3
  12. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/Giphy/GiphyImage.js +7 -13
  14. package/lib/commonjs/components/Attachment/Giphy/GiphyImage.js.map +1 -1
  15. package/lib/commonjs/components/Attachment/UnsupportedAttachment.js +4 -6
  16. package/lib/commonjs/components/Attachment/UnsupportedAttachment.js.map +1 -1
  17. package/lib/commonjs/components/Attachment/UrlPreview/URLPreview.js +3 -3
  18. package/lib/commonjs/components/Attachment/UrlPreview/URLPreview.js.map +1 -1
  19. package/lib/commonjs/components/Attachment/UrlPreview/URLPreviewCompact.js +3 -3
  20. package/lib/commonjs/components/Attachment/UrlPreview/URLPreviewCompact.js.map +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +4 -2
  22. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  23. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +7 -4
  24. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  25. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +9 -13
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  27. package/lib/commonjs/components/Channel/Channel.js +9 -418
  28. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  29. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +0 -8
  30. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  31. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -77
  32. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  33. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -132
  34. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  35. package/lib/commonjs/components/ChannelList/ChannelList.js +1 -57
  36. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  37. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +4 -2
  38. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
  39. package/lib/commonjs/components/ChannelList/ChannelListView.js +11 -20
  40. package/lib/commonjs/components/ChannelList/ChannelListView.js.map +1 -1
  41. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +1 -39
  42. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  43. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -2
  44. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  45. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +4 -6
  46. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  47. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +6 -18
  48. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  49. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js +8 -28
  50. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  51. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +3 -3
  52. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  53. package/lib/commonjs/components/Chat/Chat.js +4 -6
  54. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  55. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +0 -2
  56. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  57. package/lib/commonjs/components/ImageGallery/ImageGallery.js +7 -9
  58. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  59. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +4 -2
  60. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  61. package/lib/commonjs/components/Message/Message.js +9 -13
  62. package/lib/commonjs/components/Message/Message.js.map +1 -1
  63. package/lib/commonjs/components/Message/MessageItemView/MessageBubble.js +4 -2
  64. package/lib/commonjs/components/Message/MessageItemView/MessageBubble.js.map +1 -1
  65. package/lib/commonjs/components/Message/MessageItemView/MessageContent.js +18 -39
  66. package/lib/commonjs/components/Message/MessageItemView/MessageContent.js.map +1 -1
  67. package/lib/commonjs/components/Message/MessageItemView/MessageDeleted.js +5 -7
  68. package/lib/commonjs/components/Message/MessageItemView/MessageDeleted.js.map +1 -1
  69. package/lib/commonjs/components/Message/MessageItemView/MessageFooter.js +4 -8
  70. package/lib/commonjs/components/Message/MessageItemView/MessageFooter.js.map +1 -1
  71. package/lib/commonjs/components/Message/MessageItemView/MessageHeader.js +8 -16
  72. package/lib/commonjs/components/Message/MessageItemView/MessageHeader.js.map +1 -1
  73. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js +13 -35
  74. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  75. package/lib/commonjs/components/Message/MessageItemView/MessageReplies.js +3 -5
  76. package/lib/commonjs/components/Message/MessageItemView/MessageReplies.js.map +1 -1
  77. package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js +3 -3
  78. package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
  79. package/lib/commonjs/components/Message/MessageItemView/MessageWrapper.js +6 -4
  80. package/lib/commonjs/components/Message/MessageItemView/MessageWrapper.js.map +1 -1
  81. package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListBottom.js +6 -8
  82. package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListBottom.js.map +1 -1
  83. package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListTop.js +7 -11
  84. package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListTop.js.map +1 -1
  85. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.js +3 -1
  86. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  87. package/lib/commonjs/components/MessageInput/MessageComposer.js +15 -55
  88. package/lib/commonjs/components/MessageInput/MessageComposer.js.map +1 -1
  89. package/lib/commonjs/components/MessageInput/MessageInputHeaderView.js +5 -5
  90. package/lib/commonjs/components/MessageInput/MessageInputHeaderView.js.map +1 -1
  91. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js +9 -17
  92. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js.map +1 -1
  93. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +5 -5
  94. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
  95. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +5 -5
  96. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
  97. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +5 -5
  98. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -1
  99. package/lib/commonjs/components/MessageInput/components/InputButtons/index.js +4 -4
  100. package/lib/commonjs/components/MessageInput/components/InputButtons/index.js.map +1 -1
  101. package/lib/commonjs/components/MessageInput/components/LinkPreviewList.js +3 -2
  102. package/lib/commonjs/components/MessageInput/components/LinkPreviewList.js.map +1 -1
  103. package/lib/commonjs/components/MessageInput/components/OutputButtons/index.js +7 -13
  104. package/lib/commonjs/components/MessageInput/components/OutputButtons/index.js.map +1 -1
  105. package/lib/commonjs/components/MessageList/MessageFlashList.js +14 -40
  106. package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
  107. package/lib/commonjs/components/MessageList/MessageList.js +12 -38
  108. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  109. package/lib/commonjs/components/MessageList/StickyHeader.js +3 -1
  110. package/lib/commonjs/components/MessageList/StickyHeader.js.map +1 -1
  111. package/lib/commonjs/components/MessageMenu/MessageActionList.js +4 -2
  112. package/lib/commonjs/components/MessageMenu/MessageActionList.js.map +1 -1
  113. package/lib/commonjs/components/MessageMenu/MessageMenu.js.map +1 -1
  114. package/lib/commonjs/components/MessageMenu/MessageUserReactions.js +4 -8
  115. package/lib/commonjs/components/MessageMenu/MessageUserReactions.js.map +1 -1
  116. package/lib/commonjs/components/MessageMenu/MessageUserReactionsItem.js +4 -2
  117. package/lib/commonjs/components/MessageMenu/MessageUserReactionsItem.js.map +1 -1
  118. package/lib/commonjs/components/Poll/CreatePollContent.js +8 -4
  119. package/lib/commonjs/components/Poll/CreatePollContent.js.map +1 -1
  120. package/lib/commonjs/components/Poll/Poll.js +12 -9
  121. package/lib/commonjs/components/Poll/Poll.js.map +1 -1
  122. package/lib/commonjs/components/Poll/components/MultipleAnswersField.js +5 -3
  123. package/lib/commonjs/components/Poll/components/MultipleAnswersField.js.map +1 -1
  124. package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js +5 -3
  125. package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js.map +1 -1
  126. package/lib/commonjs/components/Poll/components/PollAnswersList.js +5 -3
  127. package/lib/commonjs/components/Poll/components/PollAnswersList.js.map +1 -1
  128. package/lib/commonjs/components/Poll/components/PollInputDialog.js +2 -1
  129. package/lib/commonjs/components/Poll/components/PollInputDialog.js.map +1 -1
  130. package/lib/commonjs/components/Poll/components/PollOption.js +5 -3
  131. package/lib/commonjs/components/Poll/components/PollOption.js.map +1 -1
  132. package/lib/commonjs/components/Poll/components/PollResults/PollOptionFullResults.js +5 -5
  133. package/lib/commonjs/components/Poll/components/PollResults/PollOptionFullResults.js.map +1 -1
  134. package/lib/commonjs/components/Poll/components/PollResults/PollResults.js +5 -3
  135. package/lib/commonjs/components/Poll/components/PollResults/PollResults.js.map +1 -1
  136. package/lib/commonjs/components/Reply/Reply.js +11 -4
  137. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  138. package/lib/commonjs/components/Thread/Thread.js +4 -8
  139. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  140. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +4 -6
  141. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  142. package/lib/commonjs/components/ThreadList/ThreadList.js +12 -15
  143. package/lib/commonjs/components/ThreadList/ThreadList.js.map +1 -1
  144. package/lib/commonjs/components/ThreadList/ThreadListItem.js +8 -11
  145. package/lib/commonjs/components/ThreadList/ThreadListItem.js.map +1 -1
  146. package/lib/commonjs/components/ui/Avatar/Avatar.js +3 -3
  147. package/lib/commonjs/components/ui/Avatar/Avatar.js.map +1 -1
  148. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  149. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  150. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  151. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  152. package/lib/commonjs/contexts/componentsContext/ComponentsContext.js +37 -0
  153. package/lib/commonjs/contexts/componentsContext/ComponentsContext.js.map +1 -0
  154. package/lib/commonjs/contexts/componentsContext/PLAN.md +148 -0
  155. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +286 -0
  156. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -0
  157. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -9
  158. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  159. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContextBase.js.map +1 -1
  160. package/lib/commonjs/contexts/index.js +11 -0
  161. package/lib/commonjs/contexts/index.js.map +1 -1
  162. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  163. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -76
  164. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  165. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  166. package/lib/commonjs/contexts/overlayContext/MessageOverlayHostLayer.js +7 -5
  167. package/lib/commonjs/contexts/overlayContext/MessageOverlayHostLayer.js.map +1 -1
  168. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  169. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -4
  170. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  171. package/lib/commonjs/contexts/threadsContext/ThreadsContext.js.map +1 -1
  172. package/lib/commonjs/hooks/messagePreview/useMessagePreviewText.js +28 -13
  173. package/lib/commonjs/hooks/messagePreview/useMessagePreviewText.js.map +1 -1
  174. package/lib/commonjs/i18n/en.json +20 -0
  175. package/lib/commonjs/i18n/es.json +20 -0
  176. package/lib/commonjs/i18n/fr.json +20 -0
  177. package/lib/commonjs/i18n/he.json +20 -0
  178. package/lib/commonjs/i18n/hi.json +20 -0
  179. package/lib/commonjs/i18n/it.json +20 -0
  180. package/lib/commonjs/i18n/ja.json +20 -0
  181. package/lib/commonjs/i18n/ko.json +20 -0
  182. package/lib/commonjs/i18n/nl.json +20 -0
  183. package/lib/commonjs/i18n/pt-br.json +20 -0
  184. package/lib/commonjs/i18n/ru.json +20 -0
  185. package/lib/commonjs/i18n/tr.json +20 -0
  186. package/lib/commonjs/icons/arrow-up-right.js +10 -6
  187. package/lib/commonjs/icons/arrow-up-right.js.map +1 -1
  188. package/lib/commonjs/icons/audio.js +10 -6
  189. package/lib/commonjs/icons/audio.js.map +1 -1
  190. package/lib/commonjs/icons/chevron-left.js +10 -6
  191. package/lib/commonjs/icons/chevron-left.js.map +1 -1
  192. package/lib/commonjs/icons/leave.js +10 -6
  193. package/lib/commonjs/icons/leave.js.map +1 -1
  194. package/lib/commonjs/icons/message-bubble.js +10 -6
  195. package/lib/commonjs/icons/message-bubble.js.map +1 -1
  196. package/lib/commonjs/icons/mute.js +11 -7
  197. package/lib/commonjs/icons/mute.js.map +1 -1
  198. package/lib/commonjs/icons/reply.js +10 -6
  199. package/lib/commonjs/icons/reply.js.map +1 -1
  200. package/lib/commonjs/icons/search.js +11 -7
  201. package/lib/commonjs/icons/search.js.map +1 -1
  202. package/lib/commonjs/icons/send.js +11 -7
  203. package/lib/commonjs/icons/send.js.map +1 -1
  204. package/lib/commonjs/icons/thread.js +10 -6
  205. package/lib/commonjs/icons/thread.js.map +1 -1
  206. package/lib/commonjs/icons/video-fill.js +2 -0
  207. package/lib/commonjs/icons/video-fill.js.map +1 -1
  208. package/lib/commonjs/icons/video.js +10 -6
  209. package/lib/commonjs/icons/video.js.map +1 -1
  210. package/lib/commonjs/utils/rtlMirrorSwitchStyle.js +20 -0
  211. package/lib/commonjs/utils/rtlMirrorSwitchStyle.js.map +1 -0
  212. package/lib/commonjs/version.json +1 -1
  213. package/lib/module/components/Attachment/Attachment.js +15 -52
  214. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  215. package/lib/module/components/Attachment/FileAttachment.js +4 -6
  216. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  217. package/lib/module/components/Attachment/FileAttachmentGroup.js +4 -10
  218. package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
  219. package/lib/module/components/Attachment/FilePreview.js +3 -6
  220. package/lib/module/components/Attachment/FilePreview.js.map +1 -1
  221. package/lib/module/components/Attachment/Gallery.js +9 -28
  222. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  223. package/lib/module/components/Attachment/GalleryImage.js +3 -3
  224. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  225. package/lib/module/components/Attachment/Giphy/GiphyImage.js +7 -13
  226. package/lib/module/components/Attachment/Giphy/GiphyImage.js.map +1 -1
  227. package/lib/module/components/Attachment/UnsupportedAttachment.js +4 -6
  228. package/lib/module/components/Attachment/UnsupportedAttachment.js.map +1 -1
  229. package/lib/module/components/Attachment/UrlPreview/URLPreview.js +3 -3
  230. package/lib/module/components/Attachment/UrlPreview/URLPreview.js.map +1 -1
  231. package/lib/module/components/Attachment/UrlPreview/URLPreviewCompact.js +3 -3
  232. package/lib/module/components/Attachment/UrlPreview/URLPreviewCompact.js.map +1 -1
  233. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +4 -2
  234. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  235. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +7 -4
  236. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  237. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +9 -13
  238. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  239. package/lib/module/components/Channel/Channel.js +9 -418
  240. package/lib/module/components/Channel/Channel.js.map +1 -1
  241. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +0 -8
  242. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  243. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -77
  244. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  245. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -132
  246. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  247. package/lib/module/components/ChannelList/ChannelList.js +1 -57
  248. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  249. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +4 -2
  250. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
  251. package/lib/module/components/ChannelList/ChannelListView.js +11 -20
  252. package/lib/module/components/ChannelList/ChannelListView.js.map +1 -1
  253. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +1 -39
  254. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  255. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -2
  256. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  257. package/lib/module/components/ChannelPreview/ChannelPreview.js +4 -6
  258. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  259. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +6 -18
  260. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  261. package/lib/module/components/ChannelPreview/ChannelPreviewView.js +8 -28
  262. package/lib/module/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  263. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +3 -3
  264. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  265. package/lib/module/components/Chat/Chat.js +4 -6
  266. package/lib/module/components/Chat/Chat.js.map +1 -1
  267. package/lib/module/components/Chat/hooks/useCreateChatContext.js +0 -2
  268. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  269. package/lib/module/components/ImageGallery/ImageGallery.js +7 -9
  270. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  271. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +4 -2
  272. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  273. package/lib/module/components/Message/Message.js +9 -13
  274. package/lib/module/components/Message/Message.js.map +1 -1
  275. package/lib/module/components/Message/MessageItemView/MessageBubble.js +4 -2
  276. package/lib/module/components/Message/MessageItemView/MessageBubble.js.map +1 -1
  277. package/lib/module/components/Message/MessageItemView/MessageContent.js +18 -39
  278. package/lib/module/components/Message/MessageItemView/MessageContent.js.map +1 -1
  279. package/lib/module/components/Message/MessageItemView/MessageDeleted.js +5 -7
  280. package/lib/module/components/Message/MessageItemView/MessageDeleted.js.map +1 -1
  281. package/lib/module/components/Message/MessageItemView/MessageFooter.js +4 -8
  282. package/lib/module/components/Message/MessageItemView/MessageFooter.js.map +1 -1
  283. package/lib/module/components/Message/MessageItemView/MessageHeader.js +8 -16
  284. package/lib/module/components/Message/MessageItemView/MessageHeader.js.map +1 -1
  285. package/lib/module/components/Message/MessageItemView/MessageItemView.js +13 -35
  286. package/lib/module/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  287. package/lib/module/components/Message/MessageItemView/MessageReplies.js +3 -5
  288. package/lib/module/components/Message/MessageItemView/MessageReplies.js.map +1 -1
  289. package/lib/module/components/Message/MessageItemView/MessageTextContainer.js +3 -3
  290. package/lib/module/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
  291. package/lib/module/components/Message/MessageItemView/MessageWrapper.js +6 -4
  292. package/lib/module/components/Message/MessageItemView/MessageWrapper.js.map +1 -1
  293. package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListBottom.js +6 -8
  294. package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListBottom.js.map +1 -1
  295. package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListTop.js +7 -11
  296. package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListTop.js.map +1 -1
  297. package/lib/module/components/Message/MessageItemView/utils/renderText.js +3 -1
  298. package/lib/module/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  299. package/lib/module/components/MessageInput/MessageComposer.js +15 -55
  300. package/lib/module/components/MessageInput/MessageComposer.js.map +1 -1
  301. package/lib/module/components/MessageInput/MessageInputHeaderView.js +5 -5
  302. package/lib/module/components/MessageInput/MessageInputHeaderView.js.map +1 -1
  303. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js +9 -17
  304. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js.map +1 -1
  305. package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +5 -5
  306. package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
  307. package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +5 -5
  308. package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
  309. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +5 -5
  310. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -1
  311. package/lib/module/components/MessageInput/components/InputButtons/index.js +4 -4
  312. package/lib/module/components/MessageInput/components/InputButtons/index.js.map +1 -1
  313. package/lib/module/components/MessageInput/components/LinkPreviewList.js +3 -2
  314. package/lib/module/components/MessageInput/components/LinkPreviewList.js.map +1 -1
  315. package/lib/module/components/MessageInput/components/OutputButtons/index.js +7 -13
  316. package/lib/module/components/MessageInput/components/OutputButtons/index.js.map +1 -1
  317. package/lib/module/components/MessageList/MessageFlashList.js +14 -40
  318. package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
  319. package/lib/module/components/MessageList/MessageList.js +12 -38
  320. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  321. package/lib/module/components/MessageList/StickyHeader.js +3 -1
  322. package/lib/module/components/MessageList/StickyHeader.js.map +1 -1
  323. package/lib/module/components/MessageMenu/MessageActionList.js +4 -2
  324. package/lib/module/components/MessageMenu/MessageActionList.js.map +1 -1
  325. package/lib/module/components/MessageMenu/MessageMenu.js.map +1 -1
  326. package/lib/module/components/MessageMenu/MessageUserReactions.js +4 -8
  327. package/lib/module/components/MessageMenu/MessageUserReactions.js.map +1 -1
  328. package/lib/module/components/MessageMenu/MessageUserReactionsItem.js +4 -2
  329. package/lib/module/components/MessageMenu/MessageUserReactionsItem.js.map +1 -1
  330. package/lib/module/components/Poll/CreatePollContent.js +8 -4
  331. package/lib/module/components/Poll/CreatePollContent.js.map +1 -1
  332. package/lib/module/components/Poll/Poll.js +12 -9
  333. package/lib/module/components/Poll/Poll.js.map +1 -1
  334. package/lib/module/components/Poll/components/MultipleAnswersField.js +5 -3
  335. package/lib/module/components/Poll/components/MultipleAnswersField.js.map +1 -1
  336. package/lib/module/components/Poll/components/MultipleVotesSettings.js +5 -3
  337. package/lib/module/components/Poll/components/MultipleVotesSettings.js.map +1 -1
  338. package/lib/module/components/Poll/components/PollAnswersList.js +5 -3
  339. package/lib/module/components/Poll/components/PollAnswersList.js.map +1 -1
  340. package/lib/module/components/Poll/components/PollInputDialog.js +2 -1
  341. package/lib/module/components/Poll/components/PollInputDialog.js.map +1 -1
  342. package/lib/module/components/Poll/components/PollOption.js +5 -3
  343. package/lib/module/components/Poll/components/PollOption.js.map +1 -1
  344. package/lib/module/components/Poll/components/PollResults/PollOptionFullResults.js +5 -5
  345. package/lib/module/components/Poll/components/PollResults/PollOptionFullResults.js.map +1 -1
  346. package/lib/module/components/Poll/components/PollResults/PollResults.js +5 -3
  347. package/lib/module/components/Poll/components/PollResults/PollResults.js.map +1 -1
  348. package/lib/module/components/Reply/Reply.js +11 -4
  349. package/lib/module/components/Reply/Reply.js.map +1 -1
  350. package/lib/module/components/Thread/Thread.js +4 -8
  351. package/lib/module/components/Thread/Thread.js.map +1 -1
  352. package/lib/module/components/Thread/components/ThreadFooterComponent.js +4 -6
  353. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  354. package/lib/module/components/ThreadList/ThreadList.js +12 -15
  355. package/lib/module/components/ThreadList/ThreadList.js.map +1 -1
  356. package/lib/module/components/ThreadList/ThreadListItem.js +8 -11
  357. package/lib/module/components/ThreadList/ThreadListItem.js.map +1 -1
  358. package/lib/module/components/ui/Avatar/Avatar.js +3 -3
  359. package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
  360. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  361. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  362. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  363. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  364. package/lib/module/contexts/componentsContext/ComponentsContext.js +37 -0
  365. package/lib/module/contexts/componentsContext/ComponentsContext.js.map +1 -0
  366. package/lib/module/contexts/componentsContext/PLAN.md +148 -0
  367. package/lib/module/contexts/componentsContext/defaultComponents.js +286 -0
  368. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -0
  369. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -9
  370. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  371. package/lib/module/contexts/imageGalleryContext/ImageGalleryContextBase.js.map +1 -1
  372. package/lib/module/contexts/index.js +11 -0
  373. package/lib/module/contexts/index.js.map +1 -1
  374. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  375. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -76
  376. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  377. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  378. package/lib/module/contexts/overlayContext/MessageOverlayHostLayer.js +7 -5
  379. package/lib/module/contexts/overlayContext/MessageOverlayHostLayer.js.map +1 -1
  380. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  381. package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -4
  382. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  383. package/lib/module/contexts/threadsContext/ThreadsContext.js.map +1 -1
  384. package/lib/module/hooks/messagePreview/useMessagePreviewText.js +28 -13
  385. package/lib/module/hooks/messagePreview/useMessagePreviewText.js.map +1 -1
  386. package/lib/module/i18n/en.json +20 -0
  387. package/lib/module/i18n/es.json +20 -0
  388. package/lib/module/i18n/fr.json +20 -0
  389. package/lib/module/i18n/he.json +20 -0
  390. package/lib/module/i18n/hi.json +20 -0
  391. package/lib/module/i18n/it.json +20 -0
  392. package/lib/module/i18n/ja.json +20 -0
  393. package/lib/module/i18n/ko.json +20 -0
  394. package/lib/module/i18n/nl.json +20 -0
  395. package/lib/module/i18n/pt-br.json +20 -0
  396. package/lib/module/i18n/ru.json +20 -0
  397. package/lib/module/i18n/tr.json +20 -0
  398. package/lib/module/icons/arrow-up-right.js +10 -6
  399. package/lib/module/icons/arrow-up-right.js.map +1 -1
  400. package/lib/module/icons/audio.js +10 -6
  401. package/lib/module/icons/audio.js.map +1 -1
  402. package/lib/module/icons/chevron-left.js +10 -6
  403. package/lib/module/icons/chevron-left.js.map +1 -1
  404. package/lib/module/icons/leave.js +10 -6
  405. package/lib/module/icons/leave.js.map +1 -1
  406. package/lib/module/icons/message-bubble.js +10 -6
  407. package/lib/module/icons/message-bubble.js.map +1 -1
  408. package/lib/module/icons/mute.js +11 -7
  409. package/lib/module/icons/mute.js.map +1 -1
  410. package/lib/module/icons/reply.js +10 -6
  411. package/lib/module/icons/reply.js.map +1 -1
  412. package/lib/module/icons/search.js +11 -7
  413. package/lib/module/icons/search.js.map +1 -1
  414. package/lib/module/icons/send.js +11 -7
  415. package/lib/module/icons/send.js.map +1 -1
  416. package/lib/module/icons/thread.js +10 -6
  417. package/lib/module/icons/thread.js.map +1 -1
  418. package/lib/module/icons/video-fill.js +2 -0
  419. package/lib/module/icons/video-fill.js.map +1 -1
  420. package/lib/module/icons/video.js +10 -6
  421. package/lib/module/icons/video.js.map +1 -1
  422. package/lib/module/utils/rtlMirrorSwitchStyle.js +20 -0
  423. package/lib/module/utils/rtlMirrorSwitchStyle.js.map +1 -0
  424. package/lib/module/version.json +1 -1
  425. package/lib/typescript/components/Attachment/Attachment.d.ts +1 -1
  426. package/lib/typescript/components/Attachment/Attachment.d.ts.map +1 -1
  427. package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -1
  428. package/lib/typescript/components/Attachment/FileAttachment.d.ts.map +1 -1
  429. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +1 -2
  430. package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
  431. package/lib/typescript/components/Attachment/FilePreview.d.ts +2 -3
  432. package/lib/typescript/components/Attachment/FilePreview.d.ts.map +1 -1
  433. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  434. package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
  435. package/lib/typescript/components/Attachment/GalleryImage.d.ts +3 -2
  436. package/lib/typescript/components/Attachment/GalleryImage.d.ts.map +1 -1
  437. package/lib/typescript/components/Attachment/Giphy/GiphyImage.d.ts +4 -2
  438. package/lib/typescript/components/Attachment/Giphy/GiphyImage.d.ts.map +1 -1
  439. package/lib/typescript/components/Attachment/UnsupportedAttachment.d.ts +2 -3
  440. package/lib/typescript/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
  441. package/lib/typescript/components/Attachment/UrlPreview/URLPreview.d.ts +4 -3
  442. package/lib/typescript/components/Attachment/UrlPreview/URLPreview.d.ts.map +1 -1
  443. package/lib/typescript/components/Attachment/UrlPreview/URLPreviewCompact.d.ts +4 -3
  444. package/lib/typescript/components/Attachment/UrlPreview/URLPreviewCompact.d.ts.map +1 -1
  445. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
  446. package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
  447. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +2 -3
  448. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts.map +1 -1
  449. package/lib/typescript/components/Channel/Channel.d.ts +3 -28
  450. package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
  451. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  452. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts.map +1 -1
  453. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
  454. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
  455. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  456. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
  457. package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
  458. package/lib/typescript/components/ChannelList/ChannelList.d.ts +2 -10
  459. package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
  460. package/lib/typescript/components/ChannelList/ChannelListLoadingIndicator.d.ts.map +1 -1
  461. package/lib/typescript/components/ChannelList/ChannelListView.d.ts +1 -1
  462. package/lib/typescript/components/ChannelList/ChannelListView.d.ts.map +1 -1
  463. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +1 -1
  464. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
  465. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts +1 -2
  466. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts.map +1 -1
  467. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +1 -1
  468. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  469. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +1 -2
  470. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts.map +1 -1
  471. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts +1 -1
  472. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts.map +1 -1
  473. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts +1 -3
  474. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
  475. package/lib/typescript/components/Chat/Chat.d.ts +1 -7
  476. package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
  477. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  478. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
  479. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +6 -1
  480. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts.map +1 -1
  481. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts.map +1 -1
  482. package/lib/typescript/components/ImageGallery/components/types.d.ts +0 -2
  483. package/lib/typescript/components/ImageGallery/components/types.d.ts.map +1 -1
  484. package/lib/typescript/components/Message/Message.d.ts +1 -1
  485. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  486. package/lib/typescript/components/Message/MessageItemView/MessageBubble.d.ts +1 -2
  487. package/lib/typescript/components/Message/MessageItemView/MessageBubble.d.ts.map +1 -1
  488. package/lib/typescript/components/Message/MessageItemView/MessageContent.d.ts +1 -1
  489. package/lib/typescript/components/Message/MessageItemView/MessageContent.d.ts.map +1 -1
  490. package/lib/typescript/components/Message/MessageItemView/MessageDeleted.d.ts +1 -2
  491. package/lib/typescript/components/Message/MessageItemView/MessageDeleted.d.ts.map +1 -1
  492. package/lib/typescript/components/Message/MessageItemView/MessageFooter.d.ts +0 -2
  493. package/lib/typescript/components/Message/MessageItemView/MessageFooter.d.ts.map +1 -1
  494. package/lib/typescript/components/Message/MessageItemView/MessageHeader.d.ts.map +1 -1
  495. package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts +1 -1
  496. package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts.map +1 -1
  497. package/lib/typescript/components/Message/MessageItemView/MessageReplies.d.ts +1 -2
  498. package/lib/typescript/components/Message/MessageItemView/MessageReplies.d.ts.map +1 -1
  499. package/lib/typescript/components/Message/MessageItemView/MessageTextContainer.d.ts +1 -1
  500. package/lib/typescript/components/Message/MessageItemView/MessageTextContainer.d.ts.map +1 -1
  501. package/lib/typescript/components/Message/MessageItemView/MessageWrapper.d.ts.map +1 -1
  502. package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListBottom.d.ts +1 -1
  503. package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListBottom.d.ts.map +1 -1
  504. package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListTop.d.ts +1 -1
  505. package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListTop.d.ts.map +1 -1
  506. package/lib/typescript/components/Message/MessageItemView/utils/renderText.d.ts.map +1 -1
  507. package/lib/typescript/components/MessageInput/MessageComposer.d.ts +1 -2
  508. package/lib/typescript/components/MessageInput/MessageComposer.d.ts.map +1 -1
  509. package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.d.ts +3 -4
  510. package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.d.ts.map +1 -1
  511. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts +1 -1
  512. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -1
  513. package/lib/typescript/components/MessageInput/components/InputButtons/index.d.ts +1 -1
  514. package/lib/typescript/components/MessageInput/components/InputButtons/index.d.ts.map +1 -1
  515. package/lib/typescript/components/MessageInput/components/LinkPreviewList.d.ts.map +1 -1
  516. package/lib/typescript/components/MessageInput/components/OutputButtons/index.d.ts +1 -1
  517. package/lib/typescript/components/MessageInput/components/OutputButtons/index.d.ts.map +1 -1
  518. package/lib/typescript/components/MessageList/MessageFlashList.d.ts +1 -1
  519. package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
  520. package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
  521. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  522. package/lib/typescript/components/MessageList/StickyHeader.d.ts +2 -3
  523. package/lib/typescript/components/MessageList/StickyHeader.d.ts.map +1 -1
  524. package/lib/typescript/components/MessageMenu/MessageActionList.d.ts +1 -2
  525. package/lib/typescript/components/MessageMenu/MessageActionList.d.ts.map +1 -1
  526. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts +1 -2
  527. package/lib/typescript/components/MessageMenu/MessageMenu.d.ts.map +1 -1
  528. package/lib/typescript/components/MessageMenu/MessageUserReactions.d.ts +1 -1
  529. package/lib/typescript/components/MessageMenu/MessageUserReactions.d.ts.map +1 -1
  530. package/lib/typescript/components/MessageMenu/MessageUserReactionsItem.d.ts +2 -3
  531. package/lib/typescript/components/MessageMenu/MessageUserReactionsItem.d.ts.map +1 -1
  532. package/lib/typescript/components/Poll/CreatePollContent.d.ts +2 -2
  533. package/lib/typescript/components/Poll/CreatePollContent.d.ts.map +1 -1
  534. package/lib/typescript/components/Poll/Poll.d.ts +5 -8
  535. package/lib/typescript/components/Poll/Poll.d.ts.map +1 -1
  536. package/lib/typescript/components/Poll/components/MultipleVotesSettings.d.ts.map +1 -1
  537. package/lib/typescript/components/Poll/components/PollAnswersList.d.ts +1 -2
  538. package/lib/typescript/components/Poll/components/PollAnswersList.d.ts.map +1 -1
  539. package/lib/typescript/components/Poll/components/PollOption.d.ts +1 -2
  540. package/lib/typescript/components/Poll/components/PollOption.d.ts.map +1 -1
  541. package/lib/typescript/components/Poll/components/PollResults/PollOptionFullResults.d.ts +1 -4
  542. package/lib/typescript/components/Poll/components/PollResults/PollOptionFullResults.d.ts.map +1 -1
  543. package/lib/typescript/components/Poll/components/PollResults/PollResults.d.ts +1 -2
  544. package/lib/typescript/components/Poll/components/PollResults/PollResults.d.ts.map +1 -1
  545. package/lib/typescript/components/Reply/Reply.d.ts +4 -3
  546. package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
  547. package/lib/typescript/components/Thread/Thread.d.ts +2 -8
  548. package/lib/typescript/components/Thread/Thread.d.ts.map +1 -1
  549. package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts +1 -2
  550. package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts.map +1 -1
  551. package/lib/typescript/components/ThreadList/ThreadList.d.ts +2 -3
  552. package/lib/typescript/components/ThreadList/ThreadList.d.ts.map +1 -1
  553. package/lib/typescript/components/ThreadList/ThreadListItem.d.ts.map +1 -1
  554. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +0 -17
  555. package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts.map +1 -1
  556. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +0 -23
  557. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts.map +1 -1
  558. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +0 -112
  559. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts.map +1 -1
  560. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +0 -5
  561. package/lib/typescript/contexts/chatContext/ChatContext.d.ts.map +1 -1
  562. package/lib/typescript/contexts/componentsContext/ComponentsContext.d.ts +321 -0
  563. package/lib/typescript/contexts/componentsContext/ComponentsContext.d.ts.map +1 -0
  564. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +296 -0
  565. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -0
  566. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts.map +1 -1
  567. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContextBase.d.ts +0 -5
  568. package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContextBase.d.ts.map +1 -1
  569. package/lib/typescript/contexts/index.d.ts +1 -0
  570. package/lib/typescript/contexts/index.d.ts.map +1 -1
  571. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -169
  572. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
  573. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  574. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
  575. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -332
  576. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
  577. package/lib/typescript/contexts/overlayContext/MessageOverlayHostLayer.d.ts +2 -5
  578. package/lib/typescript/contexts/overlayContext/MessageOverlayHostLayer.d.ts.map +1 -1
  579. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +0 -4
  580. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts.map +1 -1
  581. package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts.map +1 -1
  582. package/lib/typescript/contexts/threadsContext/ThreadsContext.d.ts +0 -9
  583. package/lib/typescript/contexts/threadsContext/ThreadsContext.d.ts.map +1 -1
  584. package/lib/typescript/hooks/messagePreview/useMessagePreviewText.d.ts.map +1 -1
  585. package/lib/typescript/i18n/en.json +20 -0
  586. package/lib/typescript/i18n/es.json +20 -0
  587. package/lib/typescript/i18n/fr.json +20 -0
  588. package/lib/typescript/i18n/he.json +20 -0
  589. package/lib/typescript/i18n/hi.json +20 -0
  590. package/lib/typescript/i18n/it.json +20 -0
  591. package/lib/typescript/i18n/ja.json +20 -0
  592. package/lib/typescript/i18n/ko.json +20 -0
  593. package/lib/typescript/i18n/nl.json +20 -0
  594. package/lib/typescript/i18n/pt-br.json +20 -0
  595. package/lib/typescript/i18n/ru.json +20 -0
  596. package/lib/typescript/i18n/tr.json +20 -0
  597. package/lib/typescript/icons/arrow-up-right.d.ts.map +1 -1
  598. package/lib/typescript/icons/audio.d.ts.map +1 -1
  599. package/lib/typescript/icons/chevron-left.d.ts.map +1 -1
  600. package/lib/typescript/icons/leave.d.ts.map +1 -1
  601. package/lib/typescript/icons/message-bubble.d.ts.map +1 -1
  602. package/lib/typescript/icons/mute.d.ts.map +1 -1
  603. package/lib/typescript/icons/reply.d.ts.map +1 -1
  604. package/lib/typescript/icons/search.d.ts.map +1 -1
  605. package/lib/typescript/icons/send.d.ts.map +1 -1
  606. package/lib/typescript/icons/thread.d.ts.map +1 -1
  607. package/lib/typescript/icons/video-fill.d.ts.map +1 -1
  608. package/lib/typescript/icons/video.d.ts.map +1 -1
  609. package/lib/typescript/utils/i18n/Streami18n.d.ts +20 -0
  610. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  611. package/lib/typescript/utils/rtlMirrorSwitchStyle.d.ts +9 -0
  612. package/lib/typescript/utils/rtlMirrorSwitchStyle.d.ts.map +1 -0
  613. package/package.json +1 -1
  614. package/src/__tests__/offline-support/offline-feature.js +64 -67
  615. package/src/components/Attachment/Attachment.tsx +7 -69
  616. package/src/components/Attachment/FileAttachment.tsx +4 -7
  617. package/src/components/Attachment/FileAttachmentGroup.tsx +9 -19
  618. package/src/components/Attachment/FilePreview.tsx +4 -9
  619. package/src/components/Attachment/Gallery.tsx +6 -83
  620. package/src/components/Attachment/GalleryImage.tsx +5 -4
  621. package/src/components/Attachment/Giphy/GiphyImage.tsx +15 -37
  622. package/src/components/Attachment/UnsupportedAttachment.tsx +5 -10
  623. package/src/components/Attachment/UrlPreview/URLPreview.tsx +6 -4
  624. package/src/components/Attachment/UrlPreview/URLPreviewCompact.tsx +6 -4
  625. package/src/components/AttachmentPicker/AttachmentPicker.tsx +2 -2
  626. package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +5 -4
  627. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +4 -20
  628. package/src/components/Channel/Channel.tsx +31 -438
  629. package/src/components/Channel/__tests__/isAttachmentEqualHandler.test.js +12 -9
  630. package/src/components/Channel/hooks/useCreateChannelContext.ts +0 -8
  631. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +1 -81
  632. package/src/components/Channel/hooks/useCreateMessagesContext.ts +0 -130
  633. package/src/components/ChannelList/ChannelList.tsx +3 -76
  634. package/src/components/ChannelList/ChannelListLoadingIndicator.tsx +3 -1
  635. package/src/components/ChannelList/ChannelListView.tsx +12 -33
  636. package/src/components/ChannelList/__tests__/ChannelList.test.js +173 -116
  637. package/src/components/ChannelList/__tests__/ChannelListView.test.js +64 -41
  638. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +0 -39
  639. package/src/components/ChannelPreview/ChannelDetailsBottomSheet.tsx +2 -2
  640. package/src/components/ChannelPreview/ChannelPreview.tsx +6 -14
  641. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +7 -33
  642. package/src/components/ChannelPreview/ChannelPreviewView.tsx +11 -40
  643. package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +2 -4
  644. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +16 -12
  645. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +25 -24
  646. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +11 -6
  647. package/src/components/Chat/Chat.tsx +5 -12
  648. package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
  649. package/src/components/ImageGallery/ImageGallery.tsx +14 -16
  650. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +0 -8
  651. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +25 -21
  652. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +3 -1
  653. package/src/components/ImageGallery/components/types.ts +0 -3
  654. package/src/components/Message/Message.tsx +11 -32
  655. package/src/components/Message/MessageItemView/MessageBubble.tsx +11 -7
  656. package/src/components/Message/MessageItemView/MessageContent.tsx +14 -47
  657. package/src/components/Message/MessageItemView/MessageDeleted.tsx +3 -9
  658. package/src/components/Message/MessageItemView/MessageFooter.tsx +2 -14
  659. package/src/components/Message/MessageItemView/MessageHeader.tsx +11 -29
  660. package/src/components/Message/MessageItemView/MessageItemView.tsx +10 -42
  661. package/src/components/Message/MessageItemView/MessageReplies.tsx +2 -8
  662. package/src/components/Message/MessageItemView/MessageTextContainer.tsx +4 -8
  663. package/src/components/Message/MessageItemView/MessageWrapper.tsx +4 -9
  664. package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx +4 -12
  665. package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx +4 -20
  666. package/src/components/Message/MessageItemView/__tests__/MessageContent.test.js +47 -30
  667. package/src/components/Message/MessageItemView/__tests__/MessageItemView.test.js +16 -7
  668. package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -4
  669. package/src/components/Message/MessageItemView/__tests__/__snapshots__/MessageTextContainer.test.tsx.snap +1 -0
  670. package/src/components/Message/MessageItemView/utils/renderText.tsx +2 -0
  671. package/src/components/MessageInput/MessageComposer.tsx +16 -76
  672. package/src/components/MessageInput/MessageInputHeaderView.tsx +3 -3
  673. package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.js.snap +54 -36
  674. package/src/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.tsx +7 -35
  675. package/src/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.tsx +2 -2
  676. package/src/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.tsx +2 -2
  677. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.tsx +6 -4
  678. package/src/components/MessageInput/components/InputButtons/index.tsx +4 -5
  679. package/src/components/MessageInput/components/LinkPreviewList.tsx +3 -2
  680. package/src/components/MessageInput/components/OutputButtons/index.tsx +4 -23
  681. package/src/components/MessageList/MessageFlashList.tsx +13 -57
  682. package/src/components/MessageList/MessageList.tsx +15 -57
  683. package/src/components/MessageList/StickyHeader.tsx +4 -3
  684. package/src/components/MessageMenu/MessageActionList.tsx +4 -3
  685. package/src/components/MessageMenu/MessageMenu.tsx +35 -47
  686. package/src/components/MessageMenu/MessageUserReactions.tsx +7 -27
  687. package/src/components/MessageMenu/MessageUserReactionsItem.tsx +3 -6
  688. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +12 -11
  689. package/src/components/Poll/CreatePollContent.tsx +7 -6
  690. package/src/components/Poll/Poll.tsx +22 -24
  691. package/src/components/Poll/components/MultipleAnswersField.tsx +4 -3
  692. package/src/components/Poll/components/MultipleVotesSettings.tsx +4 -2
  693. package/src/components/Poll/components/PollAnswersList.tsx +9 -11
  694. package/src/components/Poll/components/PollInputDialog.tsx +1 -0
  695. package/src/components/Poll/components/PollOption.tsx +9 -11
  696. package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx +10 -11
  697. package/src/components/Poll/components/PollResults/PollResults.tsx +9 -15
  698. package/src/components/Reply/Reply.tsx +25 -10
  699. package/src/components/Thread/Thread.tsx +3 -18
  700. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +31 -18
  701. package/src/components/Thread/components/ThreadFooterComponent.tsx +10 -11
  702. package/src/components/ThreadList/ThreadList.tsx +14 -22
  703. package/src/components/ThreadList/ThreadListItem.tsx +6 -11
  704. package/src/components/ui/Avatar/Avatar.tsx +2 -2
  705. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +0 -15
  706. package/src/contexts/channelContext/ChannelContext.tsx +0 -24
  707. package/src/contexts/channelsContext/ChannelsContext.tsx +0 -113
  708. package/src/contexts/chatContext/ChatContext.tsx +0 -5
  709. package/src/contexts/componentsContext/ComponentsContext.tsx +62 -0
  710. package/src/contexts/componentsContext/PLAN.md +148 -0
  711. package/src/contexts/componentsContext/__tests__/defaultComponents.test.ts +44 -0
  712. package/src/contexts/componentsContext/defaultComponents.ts +332 -0
  713. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +0 -8
  714. package/src/contexts/imageGalleryContext/ImageGalleryContextBase.tsx +0 -10
  715. package/src/contexts/index.ts +1 -0
  716. package/src/contexts/messageInputContext/MessageInputContext.tsx +0 -185
  717. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +1 -75
  718. package/src/contexts/messagesContext/MessagesContext.tsx +3 -358
  719. package/src/contexts/overlayContext/MessageOverlayHostLayer.tsx +5 -7
  720. package/src/contexts/overlayContext/OverlayContext.tsx +0 -4
  721. package/src/contexts/overlayContext/OverlayProvider.tsx +1 -2
  722. package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +21 -6
  723. package/src/contexts/threadsContext/ThreadsContext.tsx +0 -9
  724. package/src/hooks/messagePreview/useMessagePreviewText.tsx +17 -13
  725. package/src/i18n/en.json +20 -0
  726. package/src/i18n/es.json +20 -0
  727. package/src/i18n/fr.json +20 -0
  728. package/src/i18n/he.json +20 -0
  729. package/src/i18n/hi.json +20 -0
  730. package/src/i18n/it.json +20 -0
  731. package/src/i18n/ja.json +20 -0
  732. package/src/i18n/ko.json +20 -0
  733. package/src/i18n/nl.json +20 -0
  734. package/src/i18n/pt-br.json +20 -0
  735. package/src/i18n/ru.json +20 -0
  736. package/src/i18n/tr.json +20 -0
  737. package/src/icons/arrow-up-right.tsx +11 -8
  738. package/src/icons/audio.tsx +11 -8
  739. package/src/icons/chevron-left.tsx +11 -8
  740. package/src/icons/leave.tsx +11 -8
  741. package/src/icons/message-bubble.tsx +11 -8
  742. package/src/icons/mute.tsx +12 -9
  743. package/src/icons/reply.tsx +11 -8
  744. package/src/icons/search.tsx +12 -9
  745. package/src/icons/send.tsx +12 -9
  746. package/src/icons/thread.tsx +11 -8
  747. package/src/icons/video-fill.tsx +5 -1
  748. package/src/icons/video.tsx +11 -8
  749. package/src/utils/rtlMirrorSwitchStyle.ts +20 -0
  750. package/src/version.json +1 -1
@@ -0,0 +1,62 @@
1
+ import React, { PropsWithChildren, useContext, useMemo } from 'react';
2
+
3
+ /**
4
+ * All overridable UI components in the SDK.
5
+ * Derived from the DEFAULT_COMPONENTS map in defaultComponents.ts.
6
+ * Adding a new default automatically makes it available as an override.
7
+ *
8
+ * Every key is optional — only specify the components you want to override.
9
+ */
10
+ export type ComponentOverrides = Partial<
11
+ (typeof import('./defaultComponents'))['DEFAULT_COMPONENTS']
12
+ >;
13
+
14
+ const ComponentsContext = React.createContext<ComponentOverrides>({});
15
+
16
+ /**
17
+ * Provider to override UI components at any level of the tree.
18
+ * Supports nesting — inner overrides merge over outer ones (closest wins).
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <WithComponents overrides={{ Message: MyCustomMessage, SendButton: MyCustomSendButton }}>
23
+ * <Channel channel={channel}>
24
+ * <MessageList />
25
+ * <MessageInput />
26
+ * </Channel>
27
+ * </WithComponents>
28
+ * ```
29
+ */
30
+ export const WithComponents = ({
31
+ children,
32
+ overrides,
33
+ }: PropsWithChildren<{ overrides: ComponentOverrides }>) => {
34
+ const parent = useContext(ComponentsContext);
35
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally stable: overrides are set once at mount
36
+ const merged = useMemo(() => ({ ...parent, ...overrides }), []);
37
+ return <ComponentsContext.Provider value={merged}>{children}</ComponentsContext.Provider>;
38
+ };
39
+
40
+ // Lazy-loaded to break circular dependency:
41
+ // defaultComponents.ts → imports components → components import useComponentsContext from this file
42
+ let cachedDefaults: ComponentOverrides | undefined;
43
+ const getDefaults = (): ComponentOverrides => {
44
+ if (!cachedDefaults) {
45
+ cachedDefaults = (require('./defaultComponents') as { DEFAULT_COMPONENTS: ComponentOverrides })
46
+ .DEFAULT_COMPONENTS;
47
+ }
48
+ return cachedDefaults;
49
+ };
50
+
51
+ /**
52
+ * Hook to access resolved component overrides.
53
+ * Returns all components with defaults filled in — user overrides merged over defaults.
54
+ */
55
+ export const useComponentsContext = () => {
56
+ const overrides = useContext(ComponentsContext);
57
+ return useMemo(
58
+ () => ({ ...getDefaults(), ...overrides }) as Required<ComponentOverrides>,
59
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally stable: overrides are set once at mount
60
+ [],
61
+ );
62
+ };
@@ -0,0 +1,148 @@
1
+ # WithComponents — Component Override System
2
+
3
+ ## Design Principle
4
+
5
+ **All components are read from `useComponentsContext()`. All other contexts only provide data + APIs — never components.**
6
+
7
+ ## Current State (Completed)
8
+
9
+ ### What was done
10
+
11
+ 1. **Created `ComponentsContext`** — `WithComponents` provider, `useComponentsContext()` hook, `ComponentOverrides` type
12
+ 2. **Created `defaultComponents.ts`** — centralized map of all ~130 default components
13
+ 3. **Stripped component keys** from all existing context types: `MessagesContextValue`, `InputMessageInputContextValue`, `ChannelContextValue`, `ChannelsContextValue`, `AttachmentPickerContextValue`, `ThreadsContextValue`, `ImageGalleryContextValue`
14
+ 4. **Simplified `useCreate*Context` hooks** — no longer receive or forward component params
15
+ 5. **Simplified `Channel.tsx`** — removed ~90 component imports, prop defaults, forwarding lines
16
+ 6. **Simplified `ChannelList.tsx`** — removed ~19 component props
17
+ 7. **Updated ~80 consumer files** — switched from old context hooks to `useComponentsContext()`
18
+ 8. **Removed component override props** from ALL individual components
19
+ 9. **Updated all 3 example apps** (SampleApp, ExpoMessaging, TypeScriptMessaging)
20
+ 10. **Updated ~45 documentation pages** across docs-content repo
21
+ 11. **Merged with develop** and resolved conflicts
22
+
23
+ ### Architecture
24
+
25
+ ```
26
+ User: <WithComponents overrides={{ Message: Custom }}>
27
+
28
+ ComponentsContext (merges parent + overrides, inner wins)
29
+
30
+ useComponentsContext() → { ...DEFAULT_COMPONENTS, ...overrides }
31
+
32
+ Consumer: const { Message } = useComponentsContext()
33
+ ```
34
+
35
+ ### Key Files
36
+
37
+ | File | Purpose |
38
+ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | `ComponentsContext.tsx` | ~60 lines. `ComponentOverrides` type (derived from `typeof DEFAULT_COMPONENTS`), `WithComponents` provider, `useComponentsContext()` hook |
40
+ | `defaultComponents.ts` | ~300 lines. Single source of truth for all default component mappings. Adding a new component here auto-extends `ComponentOverrides` |
41
+
42
+ ### Type System
43
+
44
+ `ComponentOverrides` is derived automatically:
45
+
46
+ ```ts
47
+ export type ComponentOverrides = Partial<(typeof import('./defaultComponents'))['DEFAULT_COMPONENTS']>;
48
+ ```
49
+
50
+ No manual type maintenance — add a component to `DEFAULT_COMPONENTS` and the type updates.
51
+
52
+ ### Circular Dependency Handling
53
+
54
+ `defaultComponents.ts` → imports components → components import `useComponentsContext` from `ComponentsContext.tsx`.
55
+
56
+ Broken by lazy-loading defaults in the hook:
57
+
58
+ ```ts
59
+ let cachedDefaults: ComponentOverrides | undefined;
60
+ const getDefaults = () => {
61
+ if (!cachedDefaults) {
62
+ cachedDefaults = require('./defaultComponents').DEFAULT_COMPONENTS;
63
+ }
64
+ return cachedDefaults;
65
+ };
66
+ ```
67
+
68
+ ### Naming Conventions
69
+
70
+ Some component keys differ from their default component names to avoid collisions:
71
+
72
+ | Override Key | Default Component | Why renamed |
73
+ | ----------------------------- | --------------------------------------- | ---------------------------------------------------------- |
74
+ | `FileAttachmentIcon` | `FileIcon` | Clarity |
75
+ | `ChannelListLoadingIndicator` | `ChannelListLoadingIndicator` | Split from shared `LoadingIndicator` — renders skeleton UI |
76
+ | `MessageListLoadingIndicator` | `LoadingIndicator` | Split from shared `LoadingIndicator` — renders text |
77
+ | `ChatLoadingIndicator` | `undefined` | Optional, no default |
78
+ | `ThreadMessageComposer` | `MessageComposer` | Avoid collision with `MessageComposer` component name |
79
+ | `ThreadListComponent` | `DefaultThreadListComponent` | Avoid collision with exported `ThreadList` |
80
+ | `StartAudioRecordingButton` | `AudioRecordingButton` | Historical naming |
81
+ | `Preview` | `ChannelPreviewView` | ChannelList preview item |
82
+ | `PreviewAvatar` | `ChannelAvatar` | ChannelList preview avatar |
83
+ | `FooterLoadingIndicator` | `ChannelListFooterLoadingIndicator` | ChannelList footer |
84
+ | `HeaderErrorIndicator` | `ChannelListHeaderErrorIndicator` | ChannelList header |
85
+ | `HeaderNetworkDownIndicator` | `ChannelListHeaderNetworkDownIndicator` | ChannelList header |
86
+
87
+ ### Optional Components (no default)
88
+
89
+ These exist in `DEFAULT_COMPONENTS` as `undefined` with `React.ComponentType<any> | undefined` type assertions:
90
+
91
+ `AttachmentPickerIOSSelectMorePhotos`, `ChatLoadingIndicator`, `CreatePollContent`, `ImageComponent`, `Input`, `ListHeaderComponent`, `MessageContentBottomView`, `MessageContentLeadingView`, `MessageContentTopView`, `MessageContentTrailingView`, `MessageLocation`, `MessageSpacer`, `MessageText`, `PollContent`
92
+
93
+ ### Shared Component Keys (audited)
94
+
95
+ Some keys were used in multiple contexts before the refactor. Audit results:
96
+
97
+ | Key | Used By | Same Default? | Resolution |
98
+ | ----------------------- | --------------------- | ----------------------------------------------------------- | --------------------------------------------------------------------------- |
99
+ | `EmptyStateIndicator` | Channel + ChannelList | Yes (differentiates via `listType` prop) | Single key ✅ |
100
+ | `LoadingErrorIndicator` | Channel + ChannelList | Yes (differentiates via `listType` prop) | Single key ✅ |
101
+ | `LoadingIndicator` | Channel + ChannelList | **No** — Channel used text-based, ChannelList used skeleton | Split into `MessageListLoadingIndicator` + `ChannelListLoadingIndicator` ✅ |
102
+
103
+ ### API Alignment with stream-chat-react
104
+
105
+ | Aspect | React Native | React Web |
106
+ | --------- | ----------------------------------- | -------------------------------------- |
107
+ | Provider | `WithComponents` | `WithComponents` |
108
+ | Prop name | `overrides` | `overrides` |
109
+ | Hook | `useComponentsContext()` | `useComponentContext()` |
110
+ | Type | `ComponentOverrides` (auto-derived) | `ComponentContextValue` (hand-written) |
111
+ | Defaults | Lazy-loaded via `require()` | Set at `Channel` level |
112
+ | Merge | `useMemo` | Plain spread (no memo) |
113
+
114
+ ## Known Issues / Future Work
115
+
116
+ ### Pre-existing Test Failures (not caused by this work)
117
+
118
+ These test suites fail on `develop` too:
119
+
120
+ - `offline-support/index.test.ts` — timeout
121
+ - `ChannelList.test.js` — filter race condition (`channel.countUnread` mock missing)
122
+ - `isAttachmentEqualHandler.test.js`, `MessageContent.test.js`, `MessageTextContainer.test.tsx`, `MessageUserReactions.test.tsx`, `ChannelPreview.test.tsx` — various pre-existing issues
123
+
124
+ ### Linter Interaction
125
+
126
+ `@typescript-eslint/no-unused-vars` (warn, max-warnings 0) aggressively strips unused type keys. When adding new keys to `ComponentOverrides`, the type and its consumer must land in the same edit — otherwise the linter removes the key between saves.
127
+
128
+ Since `ComponentOverrides` is now auto-derived from `DEFAULT_COMPONENTS`, this is no longer an issue for the type itself. But be aware when adding optional components (`undefined as React.ComponentType<any> | undefined`).
129
+
130
+ ### `contexts/index.ts` Barrel Export
131
+
132
+ The `export * from './componentsContext/ComponentsContext'` line in `contexts/index.ts` was stripped by the linter multiple times during development. If `WithComponents` becomes unexportable from the package, check this barrel file first.
133
+
134
+ ### Documentation
135
+
136
+ Docs PR: https://github.com/GetStream/docs-content/pull/1169
137
+
138
+ Updated ~45 pages across:
139
+
140
+ - Core teaching pages (custom_components, message-customization, etc.)
141
+ - Component reference pages (channel-list, message-list, message-composer, etc.)
142
+ - Context docs (stripped component keys from 7 context pages)
143
+ - Migration guide (upgrading-from-v8.md — comprehensive WithComponents section)
144
+ - Advanced guides (audio, AI, image-picker, etc.)
145
+
146
+ ### SDK PR
147
+
148
+ https://github.com/GetStream/stream-chat-react-native/pull/3542
@@ -0,0 +1,44 @@
1
+ import { DEFAULT_COMPONENTS } from '../defaultComponents';
2
+
3
+ // Optional component keys that are intentionally undefined (no default implementation)
4
+ const OPTIONAL_KEYS = new Set([
5
+ 'AttachmentPickerIOSSelectMorePhotos',
6
+ 'ChatLoadingIndicator',
7
+ 'CreatePollContent',
8
+ 'Input',
9
+ 'ListHeaderComponent',
10
+ 'MessageContentBottomView',
11
+ 'MessageContentLeadingView',
12
+ 'MessageContentTopView',
13
+ 'MessageContentTrailingView',
14
+ 'MessageLocation',
15
+ 'MessageSpacer',
16
+ 'MessageText',
17
+ 'PollContent',
18
+ ]);
19
+
20
+ describe('DEFAULT_COMPONENTS', () => {
21
+ it('should have all required values defined', () => {
22
+ const entries = Object.entries(DEFAULT_COMPONENTS);
23
+ expect(entries.length).toBeGreaterThan(50);
24
+
25
+ const unexpectedUndefined = entries.filter(
26
+ ([key, value]) => value === undefined && !OPTIONAL_KEYS.has(key),
27
+ );
28
+ if (unexpectedUndefined.length > 0) {
29
+ console.log(
30
+ 'Unexpectedly undefined keys:',
31
+ unexpectedUndefined.map(([k]) => k),
32
+ );
33
+ }
34
+ expect(unexpectedUndefined).toEqual([]);
35
+ });
36
+
37
+ it('optional keys should be explicitly listed', () => {
38
+ const entries = Object.entries(DEFAULT_COMPONENTS);
39
+ const actualUndefined = new Set(
40
+ entries.filter(([, v]) => v === undefined || v === null).map(([k]) => k),
41
+ );
42
+ expect(actualUndefined).toEqual(OPTIONAL_KEYS);
43
+ });
44
+ });
@@ -0,0 +1,332 @@
1
+ import React from 'react';
2
+ import { Image } from 'react-native';
3
+
4
+ import { Attachment } from '../../components/Attachment/Attachment';
5
+ import { AudioAttachment } from '../../components/Attachment/Audio';
6
+ import { FileAttachment } from '../../components/Attachment/FileAttachment';
7
+ import { FileAttachmentGroup } from '../../components/Attachment/FileAttachmentGroup';
8
+ import { FileIcon } from '../../components/Attachment/FileIcon';
9
+ import { FilePreview } from '../../components/Attachment/FilePreview';
10
+ import { Gallery } from '../../components/Attachment/Gallery';
11
+ import { Giphy } from '../../components/Attachment/Giphy';
12
+ import { ImageLoadingFailedIndicator } from '../../components/Attachment/ImageLoadingFailedIndicator';
13
+ import { ImageLoadingIndicator } from '../../components/Attachment/ImageLoadingIndicator';
14
+ import { UnsupportedAttachment } from '../../components/Attachment/UnsupportedAttachment';
15
+ import { URLPreview } from '../../components/Attachment/UrlPreview';
16
+ import { URLPreviewCompact } from '../../components/Attachment/UrlPreview/URLPreviewCompact';
17
+ import { VideoThumbnail } from '../../components/Attachment/VideoThumbnail';
18
+ import { AttachmentPickerContent } from '../../components/AttachmentPicker/components/AttachmentPickerContent';
19
+ import { AttachmentPickerSelectionBar } from '../../components/AttachmentPicker/components/AttachmentPickerSelectionBar';
20
+ import { ImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';
21
+ import { AutoCompleteSuggestionHeader } from '../../components/AutoCompleteInput/AutoCompleteSuggestionHeader';
22
+ import { AutoCompleteSuggestionItem } from '../../components/AutoCompleteInput/AutoCompleteSuggestionItem';
23
+ import { AutoCompleteSuggestionList } from '../../components/AutoCompleteInput/AutoCompleteSuggestionList';
24
+ import { InputView } from '../../components/AutoCompleteInput/InputView';
25
+ import { ChannelListFooterLoadingIndicator } from '../../components/ChannelList/ChannelListFooterLoadingIndicator';
26
+ import { ChannelListHeaderErrorIndicator } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';
27
+ import { ChannelListHeaderNetworkDownIndicator } from '../../components/ChannelList/ChannelListHeaderNetworkDownIndicator';
28
+ import { ChannelListLoadingIndicator } from '../../components/ChannelList/ChannelListLoadingIndicator';
29
+ import { Skeleton } from '../../components/ChannelList/Skeleton';
30
+ import { ChannelDetailsBottomSheet } from '../../components/ChannelPreview/ChannelDetailsBottomSheet';
31
+ import { ChannelDetailsHeader } from '../../components/ChannelPreview/ChannelDetailsBottomSheet';
32
+ import { ChannelLastMessagePreview } from '../../components/ChannelPreview/ChannelLastMessagePreview';
33
+ import { ChannelMessagePreviewDeliveryStatus } from '../../components/ChannelPreview/ChannelMessagePreviewDeliveryStatus';
34
+ import { ChannelPreviewMessage } from '../../components/ChannelPreview/ChannelPreviewMessage';
35
+ import { ChannelPreviewMutedStatus } from '../../components/ChannelPreview/ChannelPreviewMutedStatus';
36
+ import { ChannelPreviewStatus } from '../../components/ChannelPreview/ChannelPreviewStatus';
37
+ import { ChannelPreviewTitle } from '../../components/ChannelPreview/ChannelPreviewTitle';
38
+ import { ChannelPreviewTypingIndicator } from '../../components/ChannelPreview/ChannelPreviewTypingIndicator';
39
+ import { ChannelPreviewUnreadCount } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';
40
+ import { ChannelPreviewView } from '../../components/ChannelPreview/ChannelPreviewView';
41
+ import { ImageGalleryFooter } from '../../components/ImageGallery/components/ImageGalleryFooter';
42
+ import { ImageGalleryHeader } from '../../components/ImageGallery/components/ImageGalleryHeader';
43
+ import { ImageGalleryVideoControl } from '../../components/ImageGallery/components/ImageGalleryVideoControl';
44
+ import { ImageGalleryGrid } from '../../components/ImageGallery/components/ImageGrid';
45
+ import { EmptyStateIndicator } from '../../components/Indicators/EmptyStateIndicator';
46
+ import { LoadingErrorIndicator } from '../../components/Indicators/LoadingErrorIndicator';
47
+ import { LoadingIndicator } from '../../components/Indicators/LoadingIndicator';
48
+ import { KeyboardCompatibleView } from '../../components/KeyboardCompatibleView/KeyboardControllerAvoidingView';
49
+ import { Message } from '../../components/Message/Message';
50
+ import { MessagePinnedHeader } from '../../components/Message/MessageItemView/Headers/MessagePinnedHeader';
51
+ import { MessageReminderHeader } from '../../components/Message/MessageItemView/Headers/MessageReminderHeader';
52
+ import { MessageSavedForLaterHeader } from '../../components/Message/MessageItemView/Headers/MessageSavedForLaterHeader';
53
+ import { SentToChannelHeader } from '../../components/Message/MessageItemView/Headers/SentToChannelHeader';
54
+ import { MessageAuthor } from '../../components/Message/MessageItemView/MessageAuthor';
55
+ import { MessageBlocked } from '../../components/Message/MessageItemView/MessageBlocked';
56
+ import { MessageBounce } from '../../components/Message/MessageItemView/MessageBounce';
57
+ import { MessageContent } from '../../components/Message/MessageItemView/MessageContent';
58
+ import { MessageDeleted } from '../../components/Message/MessageItemView/MessageDeleted';
59
+ import { MessageError } from '../../components/Message/MessageItemView/MessageError';
60
+ import { MessageFooter } from '../../components/Message/MessageItemView/MessageFooter';
61
+ import { MessageHeader } from '../../components/Message/MessageItemView/MessageHeader';
62
+ import { MessageItemView } from '../../components/Message/MessageItemView/MessageItemView';
63
+ import { MessageReplies } from '../../components/Message/MessageItemView/MessageReplies';
64
+ import { MessageRepliesAvatars } from '../../components/Message/MessageItemView/MessageRepliesAvatars';
65
+ import { MessageStatus } from '../../components/Message/MessageItemView/MessageStatus';
66
+ import { MessageSwipeContent } from '../../components/Message/MessageItemView/MessageSwipeContent';
67
+ import { MessageTimestamp } from '../../components/Message/MessageItemView/MessageTimestamp';
68
+ import { ReactionListBottom } from '../../components/Message/MessageItemView/ReactionList/ReactionListBottom';
69
+ import { ReactionListClustered } from '../../components/Message/MessageItemView/ReactionList/ReactionListClustered';
70
+ import {
71
+ ReactionListCountItem,
72
+ ReactionListItem,
73
+ } from '../../components/Message/MessageItemView/ReactionList/ReactionListItem';
74
+ import { ReactionListItemWrapper } from '../../components/Message/MessageItemView/ReactionList/ReactionListItemWrapper';
75
+ import { ReactionListTop } from '../../components/Message/MessageItemView/ReactionList/ReactionListTop';
76
+ import { StreamingMessageView } from '../../components/Message/MessageItemView/StreamingMessageView';
77
+ import { AttachmentUploadPreviewList } from '../../components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList';
78
+ import {
79
+ FileUploadInProgressIndicator,
80
+ FileUploadNotSupportedIndicator,
81
+ FileUploadRetryIndicator,
82
+ ImageUploadInProgressIndicator,
83
+ ImageUploadNotSupportedIndicator,
84
+ ImageUploadRetryIndicator,
85
+ } from '../../components/MessageInput/components/AttachmentPreview/AttachmentUploadProgressIndicator';
86
+ import { AudioAttachmentUploadPreview } from '../../components/MessageInput/components/AttachmentPreview/AudioAttachmentUploadPreview';
87
+ import { FileAttachmentUploadPreview } from '../../components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview';
88
+ import { ImageAttachmentUploadPreview } from '../../components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview';
89
+ import { VideoAttachmentUploadPreview } from '../../components/MessageInput/components/AttachmentPreview/VideoAttachmentUploadPreview';
90
+ import { AudioRecorder } from '../../components/MessageInput/components/AudioRecorder/AudioRecorder';
91
+ import { AudioRecordingButton } from '../../components/MessageInput/components/AudioRecorder/AudioRecordingButton';
92
+ import { AudioRecordingInProgress } from '../../components/MessageInput/components/AudioRecorder/AudioRecordingInProgress';
93
+ import { AudioRecordingLockIndicator } from '../../components/MessageInput/components/AudioRecorder/AudioRecordingLockIndicator';
94
+ import { AudioRecordingPreview } from '../../components/MessageInput/components/AudioRecorder/AudioRecordingPreview';
95
+ import { AudioRecordingWaveform } from '../../components/MessageInput/components/AudioRecorder/AudioRecordingWaveform';
96
+ import { InputButtons } from '../../components/MessageInput/components/InputButtons';
97
+ import { AttachButton } from '../../components/MessageInput/components/InputButtons/AttachButton';
98
+ import { CooldownTimer } from '../../components/MessageInput/components/OutputButtons/CooldownTimer';
99
+ import { SendButton } from '../../components/MessageInput/components/OutputButtons/SendButton';
100
+ import { MessageComposer } from '../../components/MessageInput/MessageComposer';
101
+ import { MessageComposerLeadingView } from '../../components/MessageInput/MessageComposerLeadingView';
102
+ import { MessageComposerTrailingView } from '../../components/MessageInput/MessageComposerTrailingView';
103
+ import { MessageInputFooterView } from '../../components/MessageInput/MessageInputFooterView';
104
+ import { MessageInputHeaderView } from '../../components/MessageInput/MessageInputHeaderView';
105
+ import { MessageInputLeadingView } from '../../components/MessageInput/MessageInputLeadingView';
106
+ import { MessageInputTrailingView } from '../../components/MessageInput/MessageInputTrailingView';
107
+ import { SendMessageDisallowedIndicator } from '../../components/MessageInput/SendMessageDisallowedIndicator';
108
+ import { ShowThreadMessageInChannelButton } from '../../components/MessageInput/ShowThreadMessageInChannelButton';
109
+ import { StopMessageStreamingButton } from '../../components/MessageInput/StopMessageStreamingButton';
110
+ import { DateHeader } from '../../components/MessageList/DateHeader';
111
+ import { InlineDateSeparator } from '../../components/MessageList/InlineDateSeparator';
112
+ import { InlineUnreadIndicator } from '../../components/MessageList/InlineUnreadIndicator';
113
+ import { MessageList } from '../../components/MessageList/MessageList';
114
+ import { MessageSystem } from '../../components/MessageList/MessageSystem';
115
+ import { NetworkDownIndicator } from '../../components/MessageList/NetworkDownIndicator';
116
+ import { ScrollToBottomButton } from '../../components/MessageList/ScrollToBottomButton';
117
+ import { StickyHeader } from '../../components/MessageList/StickyHeader';
118
+ import { TypingIndicator } from '../../components/MessageList/TypingIndicator';
119
+ import { TypingIndicatorContainer } from '../../components/MessageList/TypingIndicatorContainer';
120
+ import { UnreadMessagesNotification } from '../../components/MessageList/UnreadMessagesNotification';
121
+ import { MessageActionList } from '../../components/MessageMenu/MessageActionList';
122
+ import { MessageActionListItem } from '../../components/MessageMenu/MessageActionListItem';
123
+ import { MessageMenu } from '../../components/MessageMenu/MessageMenu';
124
+ import { MessageReactionPicker } from '../../components/MessageMenu/MessageReactionPicker';
125
+ import { MessageUserReactions } from '../../components/MessageMenu/MessageUserReactions';
126
+ import { MessageUserReactionsAvatar } from '../../components/MessageMenu/MessageUserReactionsAvatar';
127
+ import { MessageUserReactionsItem } from '../../components/MessageMenu/MessageUserReactionsItem';
128
+ import { PollAnswersListContent } from '../../components/Poll/components/PollAnswersList';
129
+ import { PollButtons } from '../../components/Poll/components/PollButtons';
130
+ import { PollAllOptionsContent } from '../../components/Poll/components/PollOption';
131
+ import { PollOptionFullResultsContent } from '../../components/Poll/components/PollResults/PollOptionFullResults';
132
+ import { PollResultsContent } from '../../components/Poll/components/PollResults/PollResults';
133
+ import { PollHeader } from '../../components/Poll/Poll';
134
+ import { Reply } from '../../components/Reply/Reply';
135
+ import {
136
+ DefaultThreadListComponent as ThreadListComponent,
137
+ DefaultThreadListEmptyPlaceholder,
138
+ DefaultThreadListLoadingIndicator,
139
+ DefaultThreadListLoadingNextIndicator,
140
+ } from '../../components/ThreadList/ThreadList';
141
+ import { ThreadListItemComponent as ThreadListItem } from '../../components/ThreadList/ThreadListItem';
142
+ import { ThreadListItemMessagePreview } from '../../components/ThreadList/ThreadListItemMessagePreview';
143
+ import { ThreadListUnreadBanner } from '../../components/ThreadList/ThreadListUnreadBanner';
144
+ import { ThreadMessagePreviewDeliveryStatus } from '../../components/ThreadList/ThreadMessagePreviewDeliveryStatus';
145
+ import { ChannelAvatar } from '../../components/ui/Avatar/ChannelAvatar';
146
+ import { DefaultMessageOverlayBackground } from '../../contexts/overlayContext/MessageOverlayHostLayer';
147
+
148
+ /**
149
+ * All default component implementations used across the SDK.
150
+ * These are the components used when no overrides are provided via WithComponents.
151
+ */
152
+ export const DEFAULT_COMPONENTS = {
153
+ Attachment,
154
+ AttachButton,
155
+ AttachmentPickerContent,
156
+ AttachmentPickerSelectionBar,
157
+ AttachmentUploadPreviewList,
158
+ AudioAttachment,
159
+ AudioAttachmentUploadPreview,
160
+ AudioRecorder,
161
+ AudioRecordingInProgress,
162
+ AudioRecordingLockIndicator,
163
+ AudioRecordingPreview,
164
+ AudioRecordingWaveform,
165
+ AutoCompleteSuggestionHeader,
166
+ AutoCompleteSuggestionItem,
167
+ AutoCompleteSuggestionList,
168
+ ChannelDetailsBottomSheet,
169
+ CooldownTimer,
170
+ DateHeader,
171
+ EmptyStateIndicator,
172
+ FileAttachment,
173
+ FileAttachmentGroup,
174
+ FileAttachmentIcon: FileIcon,
175
+ FileAttachmentUploadPreview,
176
+ FileUploadInProgressIndicator,
177
+ FileUploadNotSupportedIndicator,
178
+ FileUploadRetryIndicator,
179
+ FilePreview,
180
+ FooterLoadingIndicator: ChannelListFooterLoadingIndicator,
181
+ Gallery,
182
+ Giphy,
183
+ HeaderErrorIndicator: ChannelListHeaderErrorIndicator,
184
+ HeaderNetworkDownIndicator: ChannelListHeaderNetworkDownIndicator,
185
+ ImageAttachmentUploadPreview,
186
+ ImageLoadingFailedIndicator,
187
+ ImageLoadingIndicator,
188
+ ImageOverlaySelectedComponent,
189
+ ImageUploadInProgressIndicator,
190
+ ImageUploadNotSupportedIndicator,
191
+ ImageUploadRetryIndicator,
192
+ InlineDateSeparator,
193
+ InlineUnreadIndicator,
194
+ InputButtons,
195
+ InputView,
196
+ KeyboardCompatibleView,
197
+ LoadingErrorIndicator,
198
+ ChannelListLoadingIndicator,
199
+ MessageListLoadingIndicator: LoadingIndicator,
200
+ Message,
201
+ MessageActionList,
202
+ MessageActionListItem,
203
+ MessageAuthor,
204
+ MessageBlocked,
205
+ MessageBounce,
206
+ MessageComposerLeadingView,
207
+ MessageComposerTrailingView,
208
+ MessageContent,
209
+ MessageDeleted,
210
+ MessageError,
211
+ MessageFooter,
212
+ MessageHeader,
213
+ MessageInputFooterView,
214
+ MessageInputHeaderView,
215
+ MessageInputLeadingView,
216
+ MessageInputTrailingView,
217
+ MessageItemView,
218
+ MessageList,
219
+ MessageMenu,
220
+ MessagePinnedHeader,
221
+ MessageReactionPicker,
222
+ MessageReminderHeader,
223
+ MessageReplies,
224
+ MessageRepliesAvatars,
225
+ MessageSavedForLaterHeader,
226
+ MessageStatus,
227
+ MessageSwipeContent,
228
+ MessageSystem,
229
+ MessageTimestamp,
230
+ MessageUserReactions,
231
+ MessageUserReactionsAvatar,
232
+ MessageUserReactionsItem,
233
+ NetworkDownIndicator,
234
+ Preview: ChannelPreviewView,
235
+ PreviewAvatar: ChannelAvatar,
236
+ PreviewLastMessage: ChannelLastMessagePreview,
237
+ PreviewMessage: ChannelPreviewMessage,
238
+ PreviewMessageDeliveryStatus: ChannelMessagePreviewDeliveryStatus,
239
+ PreviewMutedStatus: ChannelPreviewMutedStatus,
240
+ PreviewStatus: ChannelPreviewStatus,
241
+ PreviewTitle: ChannelPreviewTitle,
242
+ PreviewTypingIndicator: ChannelPreviewTypingIndicator,
243
+ PreviewUnreadCount: ChannelPreviewUnreadCount,
244
+ ReactionListBottom,
245
+ ReactionListClustered,
246
+ ReactionListCountItem,
247
+ ReactionListItem,
248
+ ReactionListItemWrapper,
249
+ ReactionListTop,
250
+ Reply,
251
+ ScrollToBottomButton,
252
+ SendButton,
253
+ SendMessageDisallowedIndicator,
254
+ SentToChannelHeader,
255
+ ShowThreadMessageInChannelButton,
256
+ Skeleton,
257
+ StartAudioRecordingButton: AudioRecordingButton,
258
+ StickyHeader,
259
+ StopMessageStreamingButton,
260
+ StreamingMessageView,
261
+ TypingIndicator,
262
+ TypingIndicatorContainer,
263
+ UnreadMessagesNotification,
264
+ UnsupportedAttachment,
265
+ UrlPreview: URLPreview,
266
+ URLPreviewCompact,
267
+ VideoAttachmentUploadPreview,
268
+ VideoThumbnail,
269
+
270
+ // Channel details
271
+ ChannelDetailsHeader,
272
+
273
+ // Thread
274
+ ThreadMessageComposer: MessageComposer,
275
+ ThreadListComponent,
276
+ ThreadListEmptyPlaceholder: DefaultThreadListEmptyPlaceholder,
277
+ ThreadListItem,
278
+ ThreadListItemMessagePreview,
279
+ ThreadListLoadingIndicator: DefaultThreadListLoadingIndicator,
280
+ ThreadListLoadingMoreIndicator: DefaultThreadListLoadingNextIndicator,
281
+ ThreadListUnreadBanner,
282
+ ThreadMessagePreviewDeliveryStatus,
283
+
284
+ // Poll
285
+ PollButtons,
286
+ PollHeader,
287
+ PollAllOptionsContent,
288
+ PollAnswersListContent,
289
+ PollResultsContent,
290
+ PollOptionFullResultsContent,
291
+
292
+ // ImageGallery
293
+ ImageGalleryFooter,
294
+ ImageGalleryGrid,
295
+ ImageGalleryHeader,
296
+ ImageGalleryVideoControls: ImageGalleryVideoControl,
297
+
298
+ // Overlay
299
+ MessageOverlayBackground: DefaultMessageOverlayBackground,
300
+
301
+ // Image
302
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
303
+ ImageComponent: Image as React.ComponentType<any>,
304
+
305
+ // Optional overrides (no defaults — undefined unless user provides via WithComponents)
306
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
307
+ AttachmentPickerIOSSelectMorePhotos: undefined as React.ComponentType<any> | undefined,
308
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
309
+ ChatLoadingIndicator: undefined as React.ComponentType<any> | null | undefined,
310
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
+ CreatePollContent: undefined as React.ComponentType<any> | undefined,
312
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
313
+ Input: undefined as React.ComponentType<any> | undefined,
314
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
+ ListHeaderComponent: undefined as React.ComponentType<any> | undefined,
316
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
317
+ MessageContentBottomView: undefined as React.ComponentType<any> | undefined,
318
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
319
+ MessageContentLeadingView: undefined as React.ComponentType<any> | undefined,
320
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
+ MessageContentTopView: undefined as React.ComponentType<any> | undefined,
322
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
323
+ MessageContentTrailingView: undefined as React.ComponentType<any> | undefined,
324
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
325
+ MessageLocation: undefined as React.ComponentType<any> | undefined,
326
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
327
+ MessageSpacer: undefined as React.ComponentType<any> | undefined,
328
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
329
+ MessageText: undefined as React.ComponentType<any> | undefined,
330
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
331
+ PollContent: undefined as React.ComponentType<any> | undefined,
332
+ };
@@ -7,10 +7,6 @@ import {
7
7
  useImageGalleryContext,
8
8
  } from './ImageGalleryContextBase';
9
9
 
10
- import { ImageGalleryFooter as ImageGalleryFooterDefault } from '../../components/ImageGallery/components/ImageGalleryFooter';
11
- import { ImageGalleryHeader as ImageGalleryHeaderDefault } from '../../components/ImageGallery/components/ImageGalleryHeader';
12
- import { ImageGalleryVideoControl as ImageGalleryVideoControlDefault } from '../../components/ImageGallery/components/ImageGalleryVideoControl';
13
- import { ImageGalleryGrid as ImageGalleryGridDefault } from '../../components/ImageGallery/components/ImageGrid';
14
10
  import { ImageGalleryStateStore } from '../../state-store/image-gallery-state-store';
15
11
 
16
12
  export const ImageGalleryProvider = ({
@@ -30,10 +26,6 @@ export const ImageGalleryProvider = ({
30
26
  () => ({
31
27
  autoPlayVideo: value?.autoPlayVideo,
32
28
  imageGalleryStateStore,
33
- ImageGalleryHeader: ImageGalleryHeaderDefault,
34
- ImageGalleryFooter: ImageGalleryFooterDefault,
35
- ImageGalleryVideoControls: ImageGalleryVideoControlDefault,
36
- ImageGalleryGrid: ImageGalleryGridDefault,
37
29
  ...value,
38
30
  }),
39
31
  [imageGalleryStateStore, value],
@@ -2,12 +2,6 @@ import React, { useContext } from 'react';
2
2
 
3
3
  import type { Attachment } from 'stream-chat';
4
4
 
5
- import type {
6
- ImageGalleryFooterProps,
7
- ImageGalleryGridProps,
8
- ImageGalleryHeaderProps,
9
- ImageGalleryVideoControlProps,
10
- } from '../../components/ImageGallery/components/types';
11
5
  import { ImageGalleryStateStore } from '../../state-store/image-gallery-state-store';
12
6
  import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
13
7
 
@@ -17,10 +11,6 @@ export type ImageGalleryProviderProps = {
17
11
  autoPlayVideo?: boolean;
18
12
  giphyVersion?: keyof NonNullable<Attachment['giphy']>;
19
13
  numberOfImageGalleryGridColumns?: number;
20
- ImageGalleryHeader?: React.ComponentType<ImageGalleryHeaderProps>;
21
- ImageGalleryFooter?: React.ComponentType<ImageGalleryFooterProps>;
22
- ImageGalleryVideoControls?: React.ComponentType<ImageGalleryVideoControlProps>;
23
- ImageGalleryGrid?: React.ComponentType<ImageGalleryGridProps>;
24
14
  };
25
15
 
26
16
  export type ImageGalleryContextValue = ImageGalleryProviderProps & {
@@ -1,4 +1,5 @@
1
1
  export * from './attachmentPickerContext/AttachmentPickerContext';
2
+ export * from './componentsContext/ComponentsContext';
2
3
  export * from './bottomSheetContext/BottomSheetContext';
3
4
  export * from './channelContext/ChannelContext';
4
5
  export * from './channelsContext/ChannelsContext';