stream-chat-react-native-core 9.4.0-beta.1 → 9.4.0-beta.11

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 (483) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +10 -5
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Audio/AudioAttachment.js +2 -4
  4. package/lib/commonjs/components/Attachment/Audio/AudioAttachment.js.map +1 -1
  5. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +7 -0
  6. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  7. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +2 -0
  8. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  9. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +41 -55
  10. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  11. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +27 -7
  12. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  13. package/lib/commonjs/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.js +55 -0
  14. package/lib/commonjs/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.js.map +1 -0
  15. package/lib/commonjs/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.js +47 -0
  16. package/lib/commonjs/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.js.map +1 -0
  17. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.js +39 -0
  18. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.js.map +1 -0
  19. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionItem.js +45 -0
  20. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionItem.js.map +1 -0
  21. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionRoleItem.js +33 -0
  22. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionRoleItem.js.map +1 -0
  23. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.js +26 -0
  24. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.js.map +1 -0
  25. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionUserItem.js +53 -0
  26. package/lib/commonjs/components/AutoCompleteInput/mentionItems/MentionUserItem.js.map +1 -0
  27. package/lib/commonjs/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.js +38 -0
  28. package/lib/commonjs/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.js.map +1 -0
  29. package/lib/commonjs/components/AutoCompleteInput/mentionItems/index.js +60 -0
  30. package/lib/commonjs/components/AutoCompleteInput/mentionItems/index.js.map +1 -0
  31. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +2 -1
  32. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -1
  33. package/lib/commonjs/components/ChannelList/ChannelList.js +4 -1
  34. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  35. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +5 -3
  36. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  37. package/lib/commonjs/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js +5 -3
  38. package/lib/commonjs/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js.map +1 -1
  39. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +3 -0
  40. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  41. package/lib/commonjs/components/ChannelPreview/ChannelPreviewPinnedStatus.js +30 -0
  42. package/lib/commonjs/components/ChannelPreview/ChannelPreviewPinnedStatus.js.map +1 -0
  43. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js +8 -3
  44. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  45. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +2 -1
  46. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  47. package/lib/commonjs/components/ChannelPreview/hooks/index.js +11 -0
  48. package/lib/commonjs/components/ChannelPreview/hooks/index.js.map +1 -1
  49. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js +3 -0
  50. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
  51. package/lib/commonjs/components/ChannelPreview/hooks/useIsChannelPinned.js +11 -0
  52. package/lib/commonjs/components/ChannelPreview/hooks/useIsChannelPinned.js.map +1 -0
  53. package/lib/commonjs/components/Message/Message.js +53 -16
  54. package/lib/commonjs/components/Message/Message.js.map +1 -1
  55. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js +6 -84
  56. package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  57. package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js +14 -0
  58. package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
  59. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.js +69 -11
  60. package/lib/commonjs/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  61. package/lib/commonjs/components/MessageInput/MessageComposer.js +13 -41
  62. package/lib/commonjs/components/MessageInput/MessageComposer.js.map +1 -1
  63. package/lib/commonjs/components/MessageList/MessageFlashList.js +22 -3
  64. package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
  65. package/lib/commonjs/components/MessageList/MessageList.js +23 -4
  66. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  67. package/lib/commonjs/components/MessageMenu/MessageActionList.js +1 -1
  68. package/lib/commonjs/components/Poll/components/CreatePollHeader.js +5 -5
  69. package/lib/commonjs/components/Poll/components/CreatePollHeader.js.map +1 -1
  70. package/lib/commonjs/components/Poll/components/PollButtons.js +25 -56
  71. package/lib/commonjs/components/Poll/components/PollButtons.js.map +1 -1
  72. package/lib/commonjs/components/Poll/components/PollInputDialog.js +9 -11
  73. package/lib/commonjs/components/Poll/components/PollInputDialog.js.map +1 -1
  74. package/lib/commonjs/components/Poll/components/PollModal.js +50 -0
  75. package/lib/commonjs/components/Poll/components/PollModal.js.map +1 -0
  76. package/lib/commonjs/components/Poll/components/PollModalHeader.js +4 -5
  77. package/lib/commonjs/components/Poll/components/PollModalHeader.js.map +1 -1
  78. package/lib/commonjs/components/Poll/components/PollResults/PollResultItem.js +10 -24
  79. package/lib/commonjs/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
  80. package/lib/commonjs/components/Poll/components/index.js +11 -0
  81. package/lib/commonjs/components/Poll/components/index.js.map +1 -1
  82. package/lib/commonjs/components/UIComponents/BottomSheetModal.js +4 -17
  83. package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
  84. package/lib/commonjs/components/UIComponents/ClippingFadeBottom.js +56 -0
  85. package/lib/commonjs/components/UIComponents/ClippingFadeBottom.js.map +1 -0
  86. package/lib/commonjs/components/UIComponents/PortalWhileClosingView.js +0 -3
  87. package/lib/commonjs/components/UIComponents/PortalWhileClosingView.js.map +1 -1
  88. package/lib/commonjs/components/UIComponents/index.js +11 -0
  89. package/lib/commonjs/components/UIComponents/index.js.map +1 -1
  90. package/lib/commonjs/components/index.js +22 -0
  91. package/lib/commonjs/components/index.js.map +1 -1
  92. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  93. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +3 -0
  94. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  95. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageComposer.js +2 -2
  96. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageComposer.js.map +1 -1
  97. package/lib/commonjs/contexts/themeContext/utils/theme.js +9 -2
  98. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  99. package/lib/commonjs/hooks/actions/useChannelActionItems.js +20 -1
  100. package/lib/commonjs/hooks/actions/useChannelActionItems.js.map +1 -1
  101. package/lib/commonjs/hooks/actions/useChannelActionItemsById.js +3 -1
  102. package/lib/commonjs/hooks/actions/useChannelActionItemsById.js.map +1 -1
  103. package/lib/commonjs/i18n/ar.json +12 -1
  104. package/lib/commonjs/i18n/en.json +12 -1
  105. package/lib/commonjs/i18n/es.json +12 -1
  106. package/lib/commonjs/i18n/fr.json +12 -1
  107. package/lib/commonjs/i18n/he.json +12 -1
  108. package/lib/commonjs/i18n/hi.json +12 -1
  109. package/lib/commonjs/i18n/it.json +12 -1
  110. package/lib/commonjs/i18n/ja.json +12 -1
  111. package/lib/commonjs/i18n/ko.json +12 -1
  112. package/lib/commonjs/i18n/nl.json +12 -1
  113. package/lib/commonjs/i18n/pt-br.json +12 -1
  114. package/lib/commonjs/i18n/ru.json +12 -1
  115. package/lib/commonjs/i18n/tr.json +12 -1
  116. package/lib/commonjs/icons/index.js +12 -0
  117. package/lib/commonjs/icons/index.js.map +1 -1
  118. package/lib/commonjs/icons/megaphone.js +36 -0
  119. package/lib/commonjs/icons/megaphone.js.map +1 -0
  120. package/lib/commonjs/icons/shield.js +36 -0
  121. package/lib/commonjs/icons/shield.js.map +1 -0
  122. package/lib/commonjs/store/SqliteClient.js +1 -1
  123. package/lib/commonjs/store/mappers/mapDraftMessageToStorable.js +8 -0
  124. package/lib/commonjs/store/mappers/mapDraftMessageToStorable.js.map +1 -1
  125. package/lib/commonjs/store/mappers/mapStorableToDraftMessage.js +8 -0
  126. package/lib/commonjs/store/mappers/mapStorableToDraftMessage.js.map +1 -1
  127. package/lib/commonjs/store/schema.js +4 -0
  128. package/lib/commonjs/store/schema.js.map +1 -1
  129. package/lib/commonjs/theme/generated/dark/StreamTokens.android.js +10 -1
  130. package/lib/commonjs/theme/generated/dark/StreamTokens.android.js.map +1 -1
  131. package/lib/commonjs/theme/generated/dark/StreamTokens.ios.js +10 -1
  132. package/lib/commonjs/theme/generated/dark/StreamTokens.ios.js.map +1 -1
  133. package/lib/commonjs/theme/generated/dark/StreamTokens.web.js +10 -1
  134. package/lib/commonjs/theme/generated/dark/StreamTokens.web.js.map +1 -1
  135. package/lib/commonjs/theme/generated/light/StreamTokens.android.js +10 -1
  136. package/lib/commonjs/theme/generated/light/StreamTokens.android.js.map +1 -1
  137. package/lib/commonjs/theme/generated/light/StreamTokens.ios.js +10 -1
  138. package/lib/commonjs/theme/generated/light/StreamTokens.ios.js.map +1 -1
  139. package/lib/commonjs/theme/generated/light/StreamTokens.web.js +10 -1
  140. package/lib/commonjs/theme/generated/light/StreamTokens.web.js.map +1 -1
  141. package/lib/commonjs/version.json +1 -1
  142. package/lib/module/components/Attachment/Attachment.js +10 -5
  143. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  144. package/lib/module/components/Attachment/Audio/AudioAttachment.js +2 -4
  145. package/lib/module/components/Attachment/Audio/AudioAttachment.js.map +1 -1
  146. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +7 -0
  147. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  148. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +2 -0
  149. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -1
  150. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +41 -55
  151. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  152. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +27 -7
  153. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
  154. package/lib/module/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.js +55 -0
  155. package/lib/module/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.js.map +1 -0
  156. package/lib/module/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.js +47 -0
  157. package/lib/module/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.js.map +1 -0
  158. package/lib/module/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.js +39 -0
  159. package/lib/module/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.js.map +1 -0
  160. package/lib/module/components/AutoCompleteInput/mentionItems/MentionItem.js +45 -0
  161. package/lib/module/components/AutoCompleteInput/mentionItems/MentionItem.js.map +1 -0
  162. package/lib/module/components/AutoCompleteInput/mentionItems/MentionRoleItem.js +33 -0
  163. package/lib/module/components/AutoCompleteInput/mentionItems/MentionRoleItem.js.map +1 -0
  164. package/lib/module/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.js +26 -0
  165. package/lib/module/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.js.map +1 -0
  166. package/lib/module/components/AutoCompleteInput/mentionItems/MentionUserItem.js +53 -0
  167. package/lib/module/components/AutoCompleteInput/mentionItems/MentionUserItem.js.map +1 -0
  168. package/lib/module/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.js +38 -0
  169. package/lib/module/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.js.map +1 -0
  170. package/lib/module/components/AutoCompleteInput/mentionItems/index.js +60 -0
  171. package/lib/module/components/AutoCompleteInput/mentionItems/index.js.map +1 -0
  172. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +2 -1
  173. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -1
  174. package/lib/module/components/ChannelList/ChannelList.js +4 -1
  175. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  176. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +5 -3
  177. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  178. package/lib/module/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js +5 -3
  179. package/lib/module/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js.map +1 -1
  180. package/lib/module/components/ChannelPreview/ChannelPreview.js +3 -0
  181. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  182. package/lib/module/components/ChannelPreview/ChannelPreviewPinnedStatus.js +30 -0
  183. package/lib/module/components/ChannelPreview/ChannelPreviewPinnedStatus.js.map +1 -0
  184. package/lib/module/components/ChannelPreview/ChannelPreviewView.js +8 -3
  185. package/lib/module/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  186. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +2 -1
  187. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  188. package/lib/module/components/ChannelPreview/hooks/index.js +11 -0
  189. package/lib/module/components/ChannelPreview/hooks/index.js.map +1 -1
  190. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js +3 -0
  191. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
  192. package/lib/module/components/ChannelPreview/hooks/useIsChannelPinned.js +11 -0
  193. package/lib/module/components/ChannelPreview/hooks/useIsChannelPinned.js.map +1 -0
  194. package/lib/module/components/Message/Message.js +53 -16
  195. package/lib/module/components/Message/Message.js.map +1 -1
  196. package/lib/module/components/Message/MessageItemView/MessageItemView.js +6 -84
  197. package/lib/module/components/Message/MessageItemView/MessageItemView.js.map +1 -1
  198. package/lib/module/components/Message/MessageItemView/MessageTextContainer.js +14 -0
  199. package/lib/module/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
  200. package/lib/module/components/Message/MessageItemView/utils/renderText.js +69 -11
  201. package/lib/module/components/Message/MessageItemView/utils/renderText.js.map +1 -1
  202. package/lib/module/components/MessageInput/MessageComposer.js +13 -41
  203. package/lib/module/components/MessageInput/MessageComposer.js.map +1 -1
  204. package/lib/module/components/MessageList/MessageFlashList.js +22 -3
  205. package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
  206. package/lib/module/components/MessageList/MessageList.js +23 -4
  207. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  208. package/lib/module/components/MessageMenu/MessageActionList.js +1 -1
  209. package/lib/module/components/Poll/components/CreatePollHeader.js +5 -5
  210. package/lib/module/components/Poll/components/CreatePollHeader.js.map +1 -1
  211. package/lib/module/components/Poll/components/PollButtons.js +25 -56
  212. package/lib/module/components/Poll/components/PollButtons.js.map +1 -1
  213. package/lib/module/components/Poll/components/PollInputDialog.js +9 -11
  214. package/lib/module/components/Poll/components/PollInputDialog.js.map +1 -1
  215. package/lib/module/components/Poll/components/PollModal.js +50 -0
  216. package/lib/module/components/Poll/components/PollModal.js.map +1 -0
  217. package/lib/module/components/Poll/components/PollModalHeader.js +4 -5
  218. package/lib/module/components/Poll/components/PollModalHeader.js.map +1 -1
  219. package/lib/module/components/Poll/components/PollResults/PollResultItem.js +10 -24
  220. package/lib/module/components/Poll/components/PollResults/PollResultItem.js.map +1 -1
  221. package/lib/module/components/Poll/components/index.js +11 -0
  222. package/lib/module/components/Poll/components/index.js.map +1 -1
  223. package/lib/module/components/UIComponents/BottomSheetModal.js +4 -17
  224. package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
  225. package/lib/module/components/UIComponents/ClippingFadeBottom.js +56 -0
  226. package/lib/module/components/UIComponents/ClippingFadeBottom.js.map +1 -0
  227. package/lib/module/components/UIComponents/PortalWhileClosingView.js +0 -3
  228. package/lib/module/components/UIComponents/PortalWhileClosingView.js.map +1 -1
  229. package/lib/module/components/UIComponents/index.js +11 -0
  230. package/lib/module/components/UIComponents/index.js.map +1 -1
  231. package/lib/module/components/index.js +22 -0
  232. package/lib/module/components/index.js.map +1 -1
  233. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  234. package/lib/module/contexts/componentsContext/defaultComponents.js +3 -0
  235. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  236. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageComposer.js +2 -2
  237. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageComposer.js.map +1 -1
  238. package/lib/module/contexts/themeContext/utils/theme.js +9 -2
  239. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  240. package/lib/module/hooks/actions/useChannelActionItems.js +20 -1
  241. package/lib/module/hooks/actions/useChannelActionItems.js.map +1 -1
  242. package/lib/module/hooks/actions/useChannelActionItemsById.js +3 -1
  243. package/lib/module/hooks/actions/useChannelActionItemsById.js.map +1 -1
  244. package/lib/module/i18n/ar.json +12 -1
  245. package/lib/module/i18n/en.json +12 -1
  246. package/lib/module/i18n/es.json +12 -1
  247. package/lib/module/i18n/fr.json +12 -1
  248. package/lib/module/i18n/he.json +12 -1
  249. package/lib/module/i18n/hi.json +12 -1
  250. package/lib/module/i18n/it.json +12 -1
  251. package/lib/module/i18n/ja.json +12 -1
  252. package/lib/module/i18n/ko.json +12 -1
  253. package/lib/module/i18n/nl.json +12 -1
  254. package/lib/module/i18n/pt-br.json +12 -1
  255. package/lib/module/i18n/ru.json +12 -1
  256. package/lib/module/i18n/tr.json +12 -1
  257. package/lib/module/icons/index.js +12 -0
  258. package/lib/module/icons/index.js.map +1 -1
  259. package/lib/module/icons/megaphone.js +36 -0
  260. package/lib/module/icons/megaphone.js.map +1 -0
  261. package/lib/module/icons/shield.js +36 -0
  262. package/lib/module/icons/shield.js.map +1 -0
  263. package/lib/module/store/SqliteClient.js +1 -1
  264. package/lib/module/store/mappers/mapDraftMessageToStorable.js +8 -0
  265. package/lib/module/store/mappers/mapDraftMessageToStorable.js.map +1 -1
  266. package/lib/module/store/mappers/mapStorableToDraftMessage.js +8 -0
  267. package/lib/module/store/mappers/mapStorableToDraftMessage.js.map +1 -1
  268. package/lib/module/store/schema.js +4 -0
  269. package/lib/module/store/schema.js.map +1 -1
  270. package/lib/module/theme/generated/dark/StreamTokens.android.js +10 -1
  271. package/lib/module/theme/generated/dark/StreamTokens.android.js.map +1 -1
  272. package/lib/module/theme/generated/dark/StreamTokens.ios.js +10 -1
  273. package/lib/module/theme/generated/dark/StreamTokens.ios.js.map +1 -1
  274. package/lib/module/theme/generated/dark/StreamTokens.web.js +10 -1
  275. package/lib/module/theme/generated/dark/StreamTokens.web.js.map +1 -1
  276. package/lib/module/theme/generated/light/StreamTokens.android.js +10 -1
  277. package/lib/module/theme/generated/light/StreamTokens.android.js.map +1 -1
  278. package/lib/module/theme/generated/light/StreamTokens.ios.js +10 -1
  279. package/lib/module/theme/generated/light/StreamTokens.ios.js.map +1 -1
  280. package/lib/module/theme/generated/light/StreamTokens.web.js +10 -1
  281. package/lib/module/theme/generated/light/StreamTokens.web.js.map +1 -1
  282. package/lib/module/version.json +1 -1
  283. package/lib/typescript/components/Attachment/Audio/AudioAttachment.d.ts +1 -0
  284. package/lib/typescript/components/Attachment/Audio/AudioAttachment.d.ts.map +1 -1
  285. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts.map +1 -1
  286. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts.map +1 -1
  287. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +8 -2
  288. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts.map +1 -1
  289. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +1 -1
  290. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts.map +1 -1
  291. package/lib/typescript/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.d.ts +13 -0
  292. package/lib/typescript/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.d.ts.map +1 -0
  293. package/lib/typescript/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.d.ts +26 -0
  294. package/lib/typescript/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.d.ts.map +1 -0
  295. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.d.ts +7 -0
  296. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.d.ts.map +1 -0
  297. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionItem.d.ts +17 -0
  298. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionItem.d.ts.map +1 -0
  299. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionRoleItem.d.ts +7 -0
  300. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionRoleItem.d.ts.map +1 -0
  301. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.d.ts +7 -0
  302. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.d.ts.map +1 -0
  303. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionUserItem.d.ts +7 -0
  304. package/lib/typescript/components/AutoCompleteInput/mentionItems/MentionUserItem.d.ts.map +1 -0
  305. package/lib/typescript/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.d.ts +21 -0
  306. package/lib/typescript/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.d.ts.map +1 -0
  307. package/lib/typescript/components/AutoCompleteInput/mentionItems/index.d.ts +17 -0
  308. package/lib/typescript/components/AutoCompleteInput/mentionItems/index.d.ts.map +1 -0
  309. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  310. package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
  311. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +1 -1
  312. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
  313. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  314. package/lib/typescript/components/ChannelPreview/ChannelPreviewPinnedStatus.d.ts +6 -0
  315. package/lib/typescript/components/ChannelPreview/ChannelPreviewPinnedStatus.d.ts.map +1 -0
  316. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts +3 -1
  317. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts.map +1 -1
  318. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
  319. package/lib/typescript/components/ChannelPreview/hooks/index.d.ts +1 -0
  320. package/lib/typescript/components/ChannelPreview/hooks/index.d.ts.map +1 -1
  321. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +1 -0
  322. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts.map +1 -1
  323. package/lib/typescript/components/ChannelPreview/hooks/useIsChannelPinned.d.ts +3 -0
  324. package/lib/typescript/components/ChannelPreview/hooks/useIsChannelPinned.d.ts.map +1 -0
  325. package/lib/typescript/components/Message/Message.d.ts +11 -1
  326. package/lib/typescript/components/Message/Message.d.ts.map +1 -1
  327. package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts.map +1 -1
  328. package/lib/typescript/components/Message/MessageItemView/MessageTextContainer.d.ts.map +1 -1
  329. package/lib/typescript/components/Message/MessageItemView/utils/renderText.d.ts.map +1 -1
  330. package/lib/typescript/components/MessageInput/MessageComposer.d.ts.map +1 -1
  331. package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
  332. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  333. package/lib/typescript/components/Poll/components/CreatePollHeader.d.ts.map +1 -1
  334. package/lib/typescript/components/Poll/components/PollButtons.d.ts.map +1 -1
  335. package/lib/typescript/components/Poll/components/PollModal.d.ts +9 -0
  336. package/lib/typescript/components/Poll/components/PollModal.d.ts.map +1 -0
  337. package/lib/typescript/components/Poll/components/PollResults/PollResultItem.d.ts.map +1 -1
  338. package/lib/typescript/components/Poll/components/index.d.ts +1 -0
  339. package/lib/typescript/components/Poll/components/index.d.ts.map +1 -1
  340. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
  341. package/lib/typescript/components/UIComponents/ClippingFadeBottom.d.ts +18 -0
  342. package/lib/typescript/components/UIComponents/ClippingFadeBottom.d.ts.map +1 -0
  343. package/lib/typescript/components/UIComponents/index.d.ts +1 -0
  344. package/lib/typescript/components/UIComponents/index.d.ts.map +1 -1
  345. package/lib/typescript/components/index.d.ts +2 -0
  346. package/lib/typescript/components/index.d.ts.map +1 -1
  347. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -0
  348. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts.map +1 -1
  349. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +2 -0
  350. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  351. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageComposer.d.ts.map +1 -1
  352. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +7 -0
  353. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts.map +1 -1
  354. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +7 -0
  355. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  356. package/lib/typescript/hooks/actions/useChannelActionItems.d.ts +35 -2
  357. package/lib/typescript/hooks/actions/useChannelActionItems.d.ts.map +1 -1
  358. package/lib/typescript/hooks/actions/useChannelActionItemsById.d.ts +3 -2
  359. package/lib/typescript/hooks/actions/useChannelActionItemsById.d.ts.map +1 -1
  360. package/lib/typescript/i18n/ar.json +12 -1
  361. package/lib/typescript/i18n/en.json +12 -1
  362. package/lib/typescript/i18n/es.json +12 -1
  363. package/lib/typescript/i18n/fr.json +12 -1
  364. package/lib/typescript/i18n/he.json +12 -1
  365. package/lib/typescript/i18n/hi.json +12 -1
  366. package/lib/typescript/i18n/it.json +12 -1
  367. package/lib/typescript/i18n/ja.json +12 -1
  368. package/lib/typescript/i18n/ko.json +12 -1
  369. package/lib/typescript/i18n/nl.json +12 -1
  370. package/lib/typescript/i18n/pt-br.json +12 -1
  371. package/lib/typescript/i18n/ru.json +12 -1
  372. package/lib/typescript/i18n/tr.json +12 -1
  373. package/lib/typescript/icons/index.d.ts +1 -0
  374. package/lib/typescript/icons/index.d.ts.map +1 -1
  375. package/lib/typescript/icons/megaphone.d.ts +4 -0
  376. package/lib/typescript/icons/megaphone.d.ts.map +1 -0
  377. package/lib/typescript/icons/shield.d.ts +4 -0
  378. package/lib/typescript/icons/shield.d.ts.map +1 -0
  379. package/lib/typescript/store/mappers/mapDraftMessageToStorable.d.ts.map +1 -1
  380. package/lib/typescript/store/mappers/mapStorableToDraftMessage.d.ts.map +1 -1
  381. package/lib/typescript/store/schema.d.ts +4 -0
  382. package/lib/typescript/store/schema.d.ts.map +1 -1
  383. package/lib/typescript/theme/generated/StreamTokens.types.d.ts +9 -0
  384. package/lib/typescript/theme/generated/StreamTokens.types.d.ts.map +1 -1
  385. package/lib/typescript/theme/generated/dark/StreamTokens.android.d.ts.map +1 -1
  386. package/lib/typescript/theme/generated/dark/StreamTokens.ios.d.ts.map +1 -1
  387. package/lib/typescript/theme/generated/dark/StreamTokens.web.d.ts.map +1 -1
  388. package/lib/typescript/theme/generated/light/StreamTokens.android.d.ts.map +1 -1
  389. package/lib/typescript/theme/generated/light/StreamTokens.ios.d.ts.map +1 -1
  390. package/lib/typescript/theme/generated/light/StreamTokens.web.d.ts.map +1 -1
  391. package/lib/typescript/utils/i18n/Streami18n.d.ts +11 -0
  392. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  393. package/package.json +2 -2
  394. package/src/components/Attachment/Attachment.tsx +15 -6
  395. package/src/components/Attachment/Audio/AudioAttachment.tsx +3 -4
  396. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +13 -0
  397. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +2 -1
  398. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +35 -43
  399. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +28 -3
  400. package/src/components/AutoCompleteInput/mentionItems/EnhancedMentionContent.tsx +71 -0
  401. package/src/components/AutoCompleteInput/mentionItems/EnhancedMentionIcon.tsx +71 -0
  402. package/src/components/AutoCompleteInput/mentionItems/MentionBroadcastItem.tsx +36 -0
  403. package/src/components/AutoCompleteInput/mentionItems/MentionItem.tsx +59 -0
  404. package/src/components/AutoCompleteInput/mentionItems/MentionRoleItem.tsx +27 -0
  405. package/src/components/AutoCompleteInput/mentionItems/MentionUserGroupItem.tsx +23 -0
  406. package/src/components/AutoCompleteInput/mentionItems/MentionUserItem.tsx +55 -0
  407. package/src/components/AutoCompleteInput/mentionItems/TokenizedSuggestionParts.tsx +56 -0
  408. package/src/components/AutoCompleteInput/mentionItems/__tests__/MentionItems.test.tsx +129 -0
  409. package/src/components/AutoCompleteInput/mentionItems/__tests__/TokenizedSuggestionParts.test.tsx +63 -0
  410. package/src/components/AutoCompleteInput/mentionItems/index.ts +16 -0
  411. package/src/components/ChannelDetails/__tests__/useChannelDetailsActionItems.test.tsx +6 -2
  412. package/src/components/ChannelDetails/hooks/useChannelDetailsActionItems.ts +1 -1
  413. package/src/components/ChannelList/ChannelList.tsx +3 -0
  414. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +3 -0
  415. package/src/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.tsx +3 -2
  416. package/src/components/ChannelPreview/ChannelPreview.tsx +21 -3
  417. package/src/components/ChannelPreview/ChannelPreviewPinnedStatus.tsx +25 -0
  418. package/src/components/ChannelPreview/ChannelPreviewView.tsx +18 -2
  419. package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +5 -1
  420. package/src/components/ChannelPreview/hooks/__tests__/useIsChannelPinned.test.tsx +35 -0
  421. package/src/components/ChannelPreview/hooks/index.ts +1 -0
  422. package/src/components/ChannelPreview/hooks/useChannelPreviewData.ts +3 -1
  423. package/src/components/ChannelPreview/hooks/useIsChannelPinned.ts +8 -0
  424. package/src/components/Message/Message.tsx +82 -24
  425. package/src/components/Message/MessageItemView/MessageItemView.tsx +5 -116
  426. package/src/components/Message/MessageItemView/MessageTextContainer.tsx +25 -0
  427. package/src/components/Message/MessageItemView/__tests__/MessageItemView.test.tsx +22 -13
  428. package/src/components/Message/MessageItemView/utils/renderText.tsx +97 -18
  429. package/src/components/MessageInput/MessageComposer.tsx +16 -39
  430. package/src/components/MessageList/MessageFlashList.tsx +28 -0
  431. package/src/components/MessageList/MessageList.tsx +28 -0
  432. package/src/components/MessageMenu/MessageActionList.tsx +1 -1
  433. package/src/components/Poll/components/CreatePollHeader.tsx +12 -5
  434. package/src/components/Poll/components/PollButtons.tsx +14 -38
  435. package/src/components/Poll/components/PollInputDialog.tsx +12 -12
  436. package/src/components/Poll/components/PollModal.tsx +55 -0
  437. package/src/components/Poll/components/PollModalHeader.tsx +4 -5
  438. package/src/components/Poll/components/PollResults/PollResultItem.tsx +6 -18
  439. package/src/components/Poll/components/__tests__/CreatePollHeader.test.tsx +4 -36
  440. package/src/components/Poll/components/__tests__/PollModalHeader.test.tsx +8 -45
  441. package/src/components/Poll/components/index.ts +1 -0
  442. package/src/components/Thread/__tests__/__snapshots__/Thread.test.tsx.snap +29 -20
  443. package/src/components/UIComponents/BottomSheetModal.tsx +2 -17
  444. package/src/components/UIComponents/ClippingFadeBottom.tsx +47 -0
  445. package/src/components/UIComponents/PortalWhileClosingView.tsx +0 -4
  446. package/src/components/UIComponents/index.ts +1 -0
  447. package/src/components/index.ts +2 -0
  448. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -0
  449. package/src/contexts/componentsContext/defaultComponents.ts +7 -1
  450. package/src/contexts/messageInputContext/hooks/useCreateMessageComposer.ts +10 -4
  451. package/src/contexts/themeContext/utils/theme.ts +14 -0
  452. package/src/hooks/actions/__tests__/useChannelActionItems.test.tsx +137 -14
  453. package/src/hooks/actions/__tests__/useChannelActionItemsById.test.tsx +3 -1
  454. package/src/hooks/actions/useChannelActionItems.tsx +60 -2
  455. package/src/hooks/actions/useChannelActionItemsById.ts +8 -1
  456. package/src/i18n/ar.json +12 -1
  457. package/src/i18n/en.json +12 -1
  458. package/src/i18n/es.json +12 -1
  459. package/src/i18n/fr.json +12 -1
  460. package/src/i18n/he.json +12 -1
  461. package/src/i18n/hi.json +12 -1
  462. package/src/i18n/it.json +12 -1
  463. package/src/i18n/ja.json +12 -1
  464. package/src/i18n/ko.json +12 -1
  465. package/src/i18n/nl.json +12 -1
  466. package/src/i18n/pt-br.json +12 -1
  467. package/src/i18n/ru.json +12 -1
  468. package/src/i18n/tr.json +12 -1
  469. package/src/icons/index.ts +1 -0
  470. package/src/icons/megaphone.tsx +21 -0
  471. package/src/icons/shield.tsx +21 -0
  472. package/src/store/SqliteClient.ts +1 -1
  473. package/src/store/mappers/mapDraftMessageToStorable.ts +8 -0
  474. package/src/store/mappers/mapStorableToDraftMessage.ts +8 -0
  475. package/src/store/schema.ts +8 -0
  476. package/src/theme/generated/StreamTokens.types.ts +9 -0
  477. package/src/theme/generated/dark/StreamTokens.android.ts +10 -1
  478. package/src/theme/generated/dark/StreamTokens.ios.ts +10 -1
  479. package/src/theme/generated/dark/StreamTokens.web.ts +10 -1
  480. package/src/theme/generated/light/StreamTokens.android.ts +10 -1
  481. package/src/theme/generated/light/StreamTokens.ios.ts +10 -1
  482. package/src/theme/generated/light/StreamTokens.web.ts +10 -1
  483. package/src/version.json +1 -1
@@ -72,19 +72,11 @@ export const PollInputDialog = ({
72
72
  />
73
73
  </View>
74
74
  <View style={[styles.buttonContainer, buttonContainer]}>
75
- <Button
76
- variant={'secondary'}
77
- type={'ghost'}
78
- label={t('Cancel')}
79
- size='md'
80
- onPress={closeDialog}
81
- style={styles.button}
82
- />
83
75
  <Button
84
76
  variant={'primary'}
85
77
  type={'solid'}
86
78
  label={t('Send')}
87
- size='md'
79
+ size='lg'
88
80
  onPress={() => {
89
81
  onSubmit(dialogInput);
90
82
  closeDialog();
@@ -92,6 +84,14 @@ export const PollInputDialog = ({
92
84
  style={styles.button}
93
85
  disabled={!dialogInput}
94
86
  />
87
+ <Button
88
+ variant={'secondary'}
89
+ type={'outline'}
90
+ label={t('Cancel')}
91
+ size='lg'
92
+ onPress={closeDialog}
93
+ style={styles.button}
94
+ />
95
95
  </View>
96
96
  </Animated.View>
97
97
  </KeyboardAvoidingView>
@@ -112,8 +112,8 @@ const useStyles = () => {
112
112
  return useMemo(
113
113
  () =>
114
114
  StyleSheet.create({
115
- button: { flex: 1, width: undefined, ...button },
116
- buttonContainer: { flexDirection: 'row', gap: primitives.spacingXs },
115
+ button: { width: undefined, ...button },
116
+ buttonContainer: { gap: primitives.spacingXs },
117
117
  container: {
118
118
  backgroundColor: semantics.backgroundCoreElevation1,
119
119
  borderRadius: primitives.radiusXl,
@@ -132,7 +132,7 @@ const useStyles = () => {
132
132
  input: {
133
133
  alignItems: 'center',
134
134
  borderColor: semantics.borderUtilityActive,
135
- borderRadius: primitives.radiusMd,
135
+ borderRadius: primitives.radiusLg,
136
136
  borderWidth: 1,
137
137
  fontSize: primitives.typographyFontSizeMd,
138
138
  padding: primitives.spacingSm,
@@ -0,0 +1,55 @@
1
+ import React, { PropsWithChildren, useMemo } from 'react';
2
+ import { Modal, ModalProps, StyleSheet } from 'react-native';
3
+ import { GestureHandlerRootView } from 'react-native-gesture-handler';
4
+
5
+ import { useTheme } from '../../../contexts';
6
+ import { SafeAreaViewWrapper } from '../../UIComponents/SafeAreaViewWrapper';
7
+
8
+ export type PollModalProps = PropsWithChildren<{
9
+ animationType?: ModalProps['animationType'];
10
+ onRequestClose?: () => void;
11
+ visible?: boolean;
12
+ }>;
13
+
14
+ export const PollModal = ({
15
+ animationType = 'slide',
16
+ children,
17
+ onRequestClose,
18
+ visible,
19
+ }: PollModalProps) => {
20
+ const styles = useStyles();
21
+
22
+ return (
23
+ <Modal
24
+ animationType={animationType}
25
+ navigationBarTranslucent
26
+ onRequestClose={onRequestClose}
27
+ presentationStyle='pageSheet'
28
+ statusBarTranslucent
29
+ visible={visible}
30
+ >
31
+ <GestureHandlerRootView style={styles.root}>
32
+ <SafeAreaViewWrapper style={styles.safeArea}>{children}</SafeAreaViewWrapper>
33
+ </GestureHandlerRootView>
34
+ </Modal>
35
+ );
36
+ };
37
+
38
+ const useStyles = () => {
39
+ const {
40
+ theme: { semantics },
41
+ } = useTheme();
42
+ return useMemo(
43
+ () =>
44
+ StyleSheet.create({
45
+ root: {
46
+ flex: 1,
47
+ },
48
+ safeArea: {
49
+ flex: 1,
50
+ backgroundColor: semantics.backgroundCoreElevation1,
51
+ },
52
+ }),
53
+ [semantics],
54
+ );
55
+ };
@@ -2,7 +2,7 @@ import React, { useMemo } from 'react';
2
2
  import { StyleSheet, Text, View } from 'react-native';
3
3
 
4
4
  import { useTheme } from '../../../contexts';
5
- import { ArrowLeft } from '../../../icons/arrow-left';
5
+ import { Cross } from '../../../icons/xmark-1';
6
6
  import { primitives } from '../../../theme';
7
7
  import { Button } from '../../ui';
8
8
 
@@ -27,10 +27,10 @@ export const PollModalHeader = ({ onPress, title }: PollModalHeaderProps) => {
27
27
  <Button
28
28
  accessibilityLabelKey='a11y/Close poll'
29
29
  variant='secondary'
30
- type='ghost'
30
+ type='outline'
31
31
  size='md'
32
32
  iconOnly
33
- LeadingIcon={ArrowLeft}
33
+ LeadingIcon={Cross}
34
34
  onPress={onPress}
35
35
  testID='poll-results-close-button'
36
36
  />
@@ -56,8 +56,7 @@ const useStyles = () => {
56
56
  alignItems: 'center',
57
57
  flexDirection: 'row',
58
58
  justifyContent: 'space-between',
59
- paddingHorizontal: primitives.spacingMd,
60
- paddingVertical: 10,
59
+ padding: primitives.spacingMd,
61
60
  backgroundColor: semantics.backgroundCoreElevation1,
62
61
  },
63
62
  centerContainer: {
@@ -1,6 +1,5 @@
1
1
  import React, { useCallback, useMemo, useState } from 'react';
2
- import { Modal, StyleSheet, Text, View } from 'react-native';
3
- import { GestureHandlerRootView } from 'react-native-gesture-handler';
2
+ import { StyleSheet, Text, View } from 'react-native';
4
3
 
5
4
  import { LocalMessage, Poll, PollOption, PollVote as PollVoteClass } from 'stream-chat';
6
5
 
@@ -15,9 +14,9 @@ import {
15
14
  } from '../../../../contexts';
16
15
 
17
16
  import { primitives } from '../../../../theme';
18
- import { SafeAreaViewWrapper } from '../../../UIComponents/SafeAreaViewWrapper';
19
17
  import { usePollState } from '../../hooks/usePollState';
20
18
  import { GenericPollButton } from '../Button';
19
+ import { PollModal } from '../PollModal';
21
20
  import { PollModalHeader } from '../PollModalHeader';
22
21
 
23
22
  export type ShowAllVotesButtonProps = {
@@ -62,18 +61,14 @@ export const ShowAllVotesButton = (props: ShowAllVotesButtonProps) => {
62
61
  </View>
63
62
  ) : null}
64
63
  {showAllVotes ? (
65
- <Modal
64
+ <PollModal
66
65
  animationType='fade'
67
66
  onRequestClose={() => setShowAllVotes(false)}
68
67
  visible={showAllVotes}
69
68
  >
70
- <GestureHandlerRootView style={styles.modalRoot}>
71
- <SafeAreaViewWrapper style={styles.safeArea}>
72
- <PollModalHeader onPress={() => setShowAllVotes(false)} title={t('Votes')} />
73
- <PollOptionFullResults message={message} option={option} poll={poll} />
74
- </SafeAreaViewWrapper>
75
- </GestureHandlerRootView>
76
- </Modal>
69
+ <PollModalHeader onPress={() => setShowAllVotes(false)} title={t('Votes')} />
70
+ <PollOptionFullResults message={message} option={option} poll={poll} />
71
+ </PollModal>
77
72
  ) : null}
78
73
  </>
79
74
  );
@@ -156,9 +151,6 @@ const useStyles = () => {
156
151
  alignItems: 'center',
157
152
  paddingBottom: primitives.spacingXs,
158
153
  },
159
- modalRoot: {
160
- flex: 1,
161
- },
162
154
  title: {
163
155
  flex: 1,
164
156
  fontSize: primitives.typographyFontSizeLg,
@@ -183,10 +175,6 @@ const useStyles = () => {
183
175
  marginStart: primitives.spacingMd,
184
176
  textAlign: 'left',
185
177
  },
186
- safeArea: {
187
- backgroundColor: semantics.backgroundCoreElevation1,
188
- flex: 1,
189
- },
190
178
  inlineButton: {
191
179
  borderColor: semantics.borderCoreDefault,
192
180
  borderTopWidth: 1,
@@ -43,39 +43,8 @@ const collectPathData = (node: unknown): string[] => {
43
43
  return [...(typeof props?.d === 'string' ? [props.d] : []), ...collectPathData(children)];
44
44
  };
45
45
 
46
- const collectTransforms = (node: unknown): string[] => {
47
- if (!node || typeof node !== 'object') {
48
- return [];
49
- }
50
-
51
- if (Array.isArray(node)) {
52
- return node.reduce<string[]>((acc, child) => [...acc, ...collectTransforms(child)], []);
53
- }
54
-
55
- const { children, props } = node as {
56
- children?: unknown;
57
- props?: { style?: StyleProp<ViewStyle> };
58
- };
59
- const style = StyleSheet.flatten(props?.style);
60
- const styleTransforms = Array.isArray(style?.transform)
61
- ? style.transform.flatMap((transform) => {
62
- if (
63
- transform &&
64
- typeof transform === 'object' &&
65
- 'rotate' in transform &&
66
- typeof transform.rotate === 'string'
67
- ) {
68
- return [transform.rotate];
69
- }
70
- return [];
71
- })
72
- : [];
73
-
74
- return [...styleTransforms, ...collectTransforms(children)];
75
- };
76
-
77
46
  describe('CreatePollHeader', () => {
78
- it('renders a secondary ghost arrow-left close button', () => {
47
+ it('renders a secondary outline cross close button', () => {
79
48
  render(
80
49
  <ThemeProvider>
81
50
  <CreatePollHeader onBackPressHandler={jest.fn()} onCreatePollPressHandler={jest.fn()} />
@@ -84,11 +53,10 @@ describe('CreatePollHeader', () => {
84
53
 
85
54
  const style = getCloseButtonWrapperStyle();
86
55
  expect(style.backgroundColor).toBeUndefined();
87
- expect(style.borderWidth).toBeUndefined();
88
- expect(style.borderColor).toBeUndefined();
56
+ expect(style.borderWidth).toBe(1);
57
+ expect(style.borderColor).toBeDefined();
89
58
  expect(collectPathData(screen.toJSON())).toContain(
90
- 'M10 16.875V3.125M10 3.125L4.375 8.75M10 3.125L15.625 8.75',
59
+ 'M15.625 4.375L4.375 15.625M15.625 15.625L4.375 4.375',
91
60
  );
92
- expect(collectTransforms(screen.toJSON())).toContain('-90deg');
93
61
  });
94
62
  });
@@ -47,41 +47,6 @@ const collectPathData = (node: unknown): string[] => {
47
47
  return [...(typeof props?.d === 'string' ? [props.d] : []), ...collectPathData(children)];
48
48
  };
49
49
 
50
- const collectTransforms = (node: unknown): string[] => {
51
- if (!node || typeof node !== 'object') {
52
- return [];
53
- }
54
-
55
- if (Array.isArray(node)) {
56
- return node.reduce<string[]>((acc, child) => [...acc, ...collectTransforms(child)], []);
57
- }
58
-
59
- const { children, props } = node as {
60
- children?: unknown;
61
- props?: { style?: StyleProp<ViewStyle>; transform?: unknown };
62
- };
63
- const style = StyleSheet.flatten(props?.style);
64
- const styleTransforms = Array.isArray(style?.transform)
65
- ? style.transform.flatMap((transform) => {
66
- if (
67
- transform &&
68
- typeof transform === 'object' &&
69
- 'rotate' in transform &&
70
- typeof transform.rotate === 'string'
71
- ) {
72
- return [transform.rotate];
73
- }
74
- return [];
75
- })
76
- : [];
77
-
78
- return [
79
- ...(typeof props?.transform === 'string' ? [props.transform] : []),
80
- ...styleTransforms,
81
- ...collectTransforms(children),
82
- ];
83
- };
84
-
85
50
  const renderPollModalHeader = () =>
86
51
  render(
87
52
  <ThemeProvider>
@@ -94,33 +59,31 @@ describe('PollModalHeader', () => {
94
59
  setPlatform(originalPlatform);
95
60
  });
96
61
 
97
- it('renders a secondary ghost arrow-left button outside Android', () => {
62
+ it('renders a secondary outline cross button outside Android', () => {
98
63
  setPlatform('ios');
99
64
 
100
65
  renderPollModalHeader();
101
66
 
102
67
  const style = getCloseButtonWrapperStyle();
103
68
  expect(style.backgroundColor).toBeUndefined();
104
- expect(style.borderWidth).toBeUndefined();
105
- expect(style.borderColor).toBeUndefined();
69
+ expect(style.borderWidth).toBe(1);
70
+ expect(style.borderColor).toBeDefined();
106
71
  expect(collectPathData(screen.toJSON())).toContain(
107
- 'M10 16.875V3.125M10 3.125L4.375 8.75M10 3.125L15.625 8.75',
72
+ 'M15.625 4.375L4.375 15.625M15.625 15.625L4.375 4.375',
108
73
  );
109
- expect(collectTransforms(screen.toJSON())).toContain('-90deg');
110
74
  });
111
75
 
112
- it('renders a secondary ghost arrow-left button on Android', () => {
76
+ it('renders a secondary outline cross button on Android', () => {
113
77
  setPlatform('android');
114
78
 
115
79
  renderPollModalHeader();
116
80
 
117
81
  const style = getCloseButtonWrapperStyle();
118
82
  expect(style.backgroundColor).toBeUndefined();
119
- expect(style.borderWidth).toBeUndefined();
120
- expect(style.borderColor).toBeUndefined();
83
+ expect(style.borderWidth).toBe(1);
84
+ expect(style.borderColor).toBeDefined();
121
85
  expect(collectPathData(screen.toJSON())).toContain(
122
- 'M10 16.875V3.125M10 3.125L4.375 8.75M10 3.125L15.625 8.75',
86
+ 'M15.625 4.375L4.375 15.625M15.625 15.625L4.375 4.375',
123
87
  );
124
- expect(collectTransforms(screen.toJSON())).toContain('-90deg');
125
88
  });
126
89
  });
@@ -6,4 +6,5 @@ export * from './PollInputDialog';
6
6
  export * from './MultipleVotesSettings';
7
7
  export * from './PollOption';
8
8
  export * from './PollResults';
9
+ export * from './PollModal';
9
10
  export * from './PollModalHeader';
@@ -337,6 +337,7 @@ exports[`Thread should match thread snapshot 1`] = `
337
337
  ],
338
338
  {
339
339
  "paddingHorizontal": 16,
340
+ "paddingVertical": 8,
340
341
  },
341
342
  ]
342
343
  }
@@ -370,7 +371,6 @@ exports[`Thread should match thread snapshot 1`] = `
370
371
  "alignItems": "flex-end",
371
372
  "flexDirection": "row",
372
373
  "gap": 8,
373
- "paddingVertical": 8,
374
374
  "width": "100%",
375
375
  }
376
376
  }
@@ -671,6 +671,7 @@ exports[`Thread should match thread snapshot 1`] = `
671
671
  ],
672
672
  {
673
673
  "paddingHorizontal": 16,
674
+ "paddingVertical": 8,
674
675
  },
675
676
  ]
676
677
  }
@@ -704,7 +705,6 @@ exports[`Thread should match thread snapshot 1`] = `
704
705
  "alignItems": "flex-end",
705
706
  "flexDirection": "row",
706
707
  "gap": 8,
707
- "paddingVertical": 8,
708
708
  "width": "100%",
709
709
  }
710
710
  }
@@ -1039,6 +1039,7 @@ exports[`Thread should match thread snapshot 1`] = `
1039
1039
  ],
1040
1040
  {
1041
1041
  "paddingHorizontal": 16,
1042
+ "paddingVertical": 8,
1042
1043
  },
1043
1044
  ]
1044
1045
  }
@@ -1072,7 +1073,6 @@ exports[`Thread should match thread snapshot 1`] = `
1072
1073
  "alignItems": "flex-end",
1073
1074
  "flexDirection": "row",
1074
1075
  "gap": 8,
1075
- "paddingVertical": 8,
1076
1076
  "width": "100%",
1077
1077
  }
1078
1078
  }
@@ -1365,7 +1365,9 @@ exports[`Thread should match thread snapshot 1`] = `
1365
1365
  [
1366
1366
  undefined,
1367
1367
  {
1368
+ "marginBottom": 12,
1368
1369
  "paddingHorizontal": 16,
1370
+ "paddingVertical": 8,
1369
1371
  },
1370
1372
  ]
1371
1373
  }
@@ -1399,8 +1401,6 @@ exports[`Thread should match thread snapshot 1`] = `
1399
1401
  "alignItems": "flex-end",
1400
1402
  "flexDirection": "row",
1401
1403
  "gap": 8,
1402
- "marginBottom": 12,
1403
- "paddingVertical": 8,
1404
1404
  "width": "100%",
1405
1405
  }
1406
1406
  }
@@ -1715,6 +1715,30 @@ exports[`Thread should match thread snapshot 1`] = `
1715
1715
  }
1716
1716
  }
1717
1717
  />
1718
+ <View
1719
+ layout={BaseAnimationMock {}}
1720
+ style={
1721
+ [
1722
+ {
1723
+ "bottom": 0,
1724
+ },
1725
+ {
1726
+ "backgroundColor": "transparent",
1727
+ "position": "absolute",
1728
+ "width": "100%",
1729
+ },
1730
+ ]
1731
+ }
1732
+ >
1733
+ <View
1734
+ name="autocomplete-suggestion-list"
1735
+ >
1736
+ <View
1737
+ collapsable={false}
1738
+ onLayout={[Function]}
1739
+ />
1740
+ </View>
1741
+ </View>
1718
1742
  </View>
1719
1743
  <View
1720
1744
  layout={BaseAnimationMock {}}
@@ -2327,21 +2351,6 @@ exports[`Thread should match thread snapshot 1`] = `
2327
2351
  </View>
2328
2352
  </View>
2329
2353
  </View>
2330
- <View
2331
- style={
2332
- [
2333
- {
2334
- "backgroundColor": "#ffffff",
2335
- "position": "absolute",
2336
- "width": "100%",
2337
- },
2338
- {
2339
- "bottom": 0,
2340
- },
2341
- {},
2342
- ]
2343
- }
2344
- />
2345
2354
  </View>
2346
2355
  </View>
2347
2356
  </View>
@@ -39,12 +39,12 @@ import {
39
39
  } from './BottomSheetModal.utils';
40
40
 
41
41
  import { useA11yLabel } from '../../a11y/hooks/useA11yLabel';
42
+ import { useAnnounceOnShow } from '../../a11y/hooks/useAnnounceOnShow';
42
43
  import { useResolvedModalAccessibilityProps } from '../../a11y/hooks/useResolvedModalAccessibilityProps';
43
44
  import { BottomSheetProvider } from '../../contexts/bottomSheetContext/BottomSheetContext';
44
45
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
45
46
  import { useStableCallback } from '../../hooks';
46
47
  import { primitives } from '../../theme';
47
- import { useAccessibilityAnnouncer } from '../Accessibility/useAccessibilityAnnouncer';
48
48
 
49
49
  export type BottomSheetModalProps = {
50
50
  /**
@@ -544,25 +544,10 @@ const BottomSheetModalInner = (props: PropsWithChildren<BottomSheetModalProps>)
544
544
 
545
545
  const modalA11yProps = useResolvedModalAccessibilityProps();
546
546
 
547
- const announce = useAccessibilityAnnouncer();
548
547
  const openAnnouncement = useA11yLabel(
549
548
  'a11y/Bottom sheet opened. Activate the close action or use the escape gesture to dismiss.',
550
549
  );
551
- const announcedOpenRef = useRef(false);
552
- useEffect(() => {
553
- if (!visible) {
554
- announcedOpenRef.current = false;
555
- return;
556
- }
557
- if (!openAnnouncement || announcedOpenRef.current) {
558
- return;
559
- }
560
- const id = setTimeout(() => {
561
- announce(openAnnouncement, 'polite');
562
- announcedOpenRef.current = true;
563
- }, 800);
564
- return () => clearTimeout(id);
565
- }, [visible, openAnnouncement, announce]);
550
+ useAnnounceOnShow(visible, openAnnouncement, { delayMs: 800 });
566
551
 
567
552
  const closeLabel = useA11yLabel('a11y/Close');
568
553
  const closeAccessibilityActions = useMemo(
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import { StyleSheet, View } from 'react-native';
3
+
4
+ import Svg, { Defs, LinearGradient, Rect, Stop } from 'react-native-svg';
5
+
6
+ const CLIPPING_FADE_HEIGHT = 16;
7
+ const CLIPPING_FADE_GRADIENT_ID = 'sdk-clipping-fade-bottom';
8
+
9
+ export type ClippingFadeBottomProps = {
10
+ /**
11
+ * Color the fade ramps toward at the bottom edge. Typically the
12
+ * background color of the surface beneath the fade so the bottom edge of
13
+ * scrolling content visually melts into it.
14
+ */
15
+ backgroundColor: string;
16
+ };
17
+
18
+ /**
19
+ * Bottom edge fade overlay. Draws a 16px tall SVG linear gradient that
20
+ * ramps from the supplied background's transparent variant at the top to
21
+ * fully opaque at the bottom - visually clipping any content that scrolls
22
+ * past the lower edge of its parent. `pointerEvents='none'` so it doesn't
23
+ * intercept taps/scrolls on the rows underneath.
24
+ */
25
+ export const ClippingFadeBottom = ({ backgroundColor }: ClippingFadeBottomProps) => (
26
+ <View pointerEvents='none' style={styles.fade}>
27
+ <Svg height='100%' width='100%'>
28
+ <Defs>
29
+ <LinearGradient id={CLIPPING_FADE_GRADIENT_ID} x1='0' x2='0' y1='0' y2='1'>
30
+ <Stop offset='0' stopColor={backgroundColor} stopOpacity='0' />
31
+ <Stop offset='1' stopColor={backgroundColor} stopOpacity='1' />
32
+ </LinearGradient>
33
+ </Defs>
34
+ <Rect fill={`url(#${CLIPPING_FADE_GRADIENT_ID})`} height='100%' width='100%' />
35
+ </Svg>
36
+ </View>
37
+ );
38
+
39
+ const styles = StyleSheet.create({
40
+ fade: {
41
+ bottom: 0,
42
+ height: CLIPPING_FADE_HEIGHT,
43
+ left: 0,
44
+ position: 'absolute',
45
+ right: 0,
46
+ },
47
+ });
@@ -130,10 +130,6 @@ const useSyncingApi = (portalHostName: string, registrationId: string) => {
130
130
  y: y + (Platform.OS === 'android' ? insets.top : 0),
131
131
  };
132
132
 
133
- if (!width || !height) {
134
- return;
135
- }
136
-
137
133
  placeholderLayout.value = { h: height, w: width };
138
134
 
139
135
  setClosingPortalLayout(portalHostName, registrationId, {
@@ -1,4 +1,5 @@
1
1
  export * from './BottomSheetModal';
2
+ export * from './ClippingFadeBottom';
2
3
  export * from './StreamBottomSheetModalFlatList';
3
4
  export * from './EmptySearchResult';
4
5
  export * from './ImageBackground';
@@ -28,6 +28,7 @@ export * from './AutoCompleteInput/AutoCompleteSuggestionHeader';
28
28
  export * from './AutoCompleteInput/AutoCompleteSuggestionItem';
29
29
  export * from './AutoCompleteInput/AutoCompleteSuggestionList';
30
30
  export * from './AutoCompleteInput/InputView';
31
+ export * from './AutoCompleteInput/mentionItems';
31
32
 
32
33
  export * from './Channel/Channel';
33
34
  export * from './Channel/hooks/useCreateChannelContext';
@@ -56,6 +57,7 @@ export * from './ChannelPreview/ChannelPreview';
56
57
  export * from './ChannelPreview/ChannelPreviewMessage';
57
58
  export * from './ChannelPreview/ChannelPreviewView';
58
59
  export * from './ChannelPreview/ChannelPreviewMutedStatus';
60
+ export * from './ChannelPreview/ChannelPreviewPinnedStatus';
59
61
  export * from './ChannelPreview/ChannelLastMessagePreview';
60
62
  export * from './ChannelPreview/ChannelPreviewStatus';
61
63
  export * from './ChannelPreview/ChannelPreviewTitle';
@@ -118,6 +118,7 @@ export type ChannelsContextValue = {
118
118
  swipeActionsEnabled?: boolean;
119
119
 
120
120
  mutedStatusPosition?: 'trailingBottom' | 'inlineTitle';
121
+ pinnedStatusPosition?: 'trailingBottom' | 'inlineTitle';
121
122
  };
122
123
 
123
124
  export const ChannelsContext = React.createContext(
@@ -24,7 +24,10 @@ import { AttachmentPickerContent } from '../../components/AttachmentPicker/compo
24
24
  import { AttachmentPickerSelectionBar } from '../../components/AttachmentPicker/components/AttachmentPickerSelectionBar';
25
25
  import { ImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';
26
26
  import { AutoCompleteSuggestionHeader } from '../../components/AutoCompleteInput/AutoCompleteSuggestionHeader';
27
- import { AutoCompleteSuggestionItem } from '../../components/AutoCompleteInput/AutoCompleteSuggestionItem';
27
+ import {
28
+ AutoCompleteSuggestionItem,
29
+ MentionSuggestionItem,
30
+ } from '../../components/AutoCompleteInput/AutoCompleteSuggestionItem';
28
31
  import { AutoCompleteSuggestionList } from '../../components/AutoCompleteInput/AutoCompleteSuggestionList';
29
32
  import { InputView } from '../../components/AutoCompleteInput/InputView';
30
33
  import { ChannelDetailsContent } from '../../components/ChannelDetails/ChannelDetails';
@@ -53,6 +56,7 @@ import { ChannelLastMessagePreview } from '../../components/ChannelPreview/Chann
53
56
  import { ChannelMessagePreviewDeliveryStatus } from '../../components/ChannelPreview/ChannelMessagePreviewDeliveryStatus';
54
57
  import { ChannelPreviewMessage } from '../../components/ChannelPreview/ChannelPreviewMessage';
55
58
  import { ChannelPreviewMutedStatus } from '../../components/ChannelPreview/ChannelPreviewMutedStatus';
59
+ import { ChannelPreviewPinnedStatus } from '../../components/ChannelPreview/ChannelPreviewPinnedStatus';
56
60
  import { ChannelPreviewStatus } from '../../components/ChannelPreview/ChannelPreviewStatus';
57
61
  import { ChannelPreviewTitle } from '../../components/ChannelPreview/ChannelPreviewTitle';
58
62
  import { ChannelPreviewTypingIndicator } from '../../components/ChannelPreview/ChannelPreviewTypingIndicator';
@@ -195,6 +199,7 @@ const components = {
195
199
  AutoCompleteSuggestionHeader,
196
200
  AutoCompleteSuggestionItem,
197
201
  AutoCompleteSuggestionList,
202
+ MentionSuggestionItem,
198
203
  ChannelDetailsBottomSheet,
199
204
  CooldownTimer,
200
205
  CircularProgressIndicator,
@@ -271,6 +276,7 @@ const components = {
271
276
  ChannelPreviewMessage,
272
277
  ChannelPreviewMessageDeliveryStatus: ChannelMessagePreviewDeliveryStatus,
273
278
  ChannelPreviewMutedStatus,
279
+ ChannelPreviewPinnedStatus,
274
280
  ChannelPreviewStatus,
275
281
  ChannelPreviewTitle,
276
282
  ChannelPreviewTypingIndicator,