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

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 (388) hide show
  1. package/lib/commonjs/components/ChannelDetails/ChannelDetails.js +8 -3
  2. package/lib/commonjs/components/ChannelDetails/ChannelDetails.js.map +1 -1
  3. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionItem.js +2 -1
  4. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionItem.js.map +1 -1
  5. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsEditButton.js +57 -0
  6. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsEditButton.js.map +1 -0
  7. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavHeader.js +3 -32
  8. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavHeader.js.map +1 -1
  9. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavigationSection.js +64 -25
  10. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavigationSection.js.map +1 -1
  11. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsProfile.js +3 -2
  12. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsProfile.js.map +1 -1
  13. package/lib/commonjs/components/ChannelDetails/components/ChannelEditImageSheet.js +2 -2
  14. package/lib/commonjs/components/ChannelDetails/components/ChannelEditImageSheet.js.map +1 -1
  15. package/lib/commonjs/components/ChannelDetails/components/index.js +22 -0
  16. package/lib/commonjs/components/ChannelDetails/components/index.js.map +1 -1
  17. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberItem.js +2 -1
  18. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberItem.js.map +1 -1
  19. package/lib/commonjs/components/ChannelDetails/components/modal/Modal.js +22 -23
  20. package/lib/commonjs/components/ChannelDetails/components/modal/Modal.js.map +1 -1
  21. package/lib/commonjs/components/ChannelDetails/components/modal/ModalHeader.js +6 -4
  22. package/lib/commonjs/components/ChannelDetails/components/modal/ModalHeader.js.map +1 -1
  23. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentItem.js +65 -0
  24. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentItem.js.map +1 -0
  25. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentList.js +174 -0
  26. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentList.js.map +1 -0
  27. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.js +21 -0
  28. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.js.map +1 -0
  29. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.js +45 -0
  30. package/lib/commonjs/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.js.map +1 -0
  31. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaItem.js +120 -0
  32. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaItem.js.map +1 -0
  33. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaList.js +206 -0
  34. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaList.js.map +1 -0
  35. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.js +63 -0
  36. package/lib/commonjs/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.js.map +1 -0
  37. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageItem.js +84 -0
  38. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageItem.js.map +1 -0
  39. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageList.js +177 -0
  40. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageList.js.map +1 -0
  41. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.js +21 -0
  42. package/lib/commonjs/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.js.map +1 -0
  43. package/lib/commonjs/components/ChannelDetails/components/navigation-section/index.js +114 -0
  44. package/lib/commonjs/components/ChannelDetails/components/navigation-section/index.js.map +1 -0
  45. package/lib/commonjs/components/ChannelDetails/hooks/index.js +33 -0
  46. package/lib/commonjs/components/ChannelDetails/hooks/index.js.map +1 -1
  47. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.js +55 -0
  48. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.js.map +1 -0
  49. package/lib/commonjs/components/ChannelDetails/hooks/useFileAttachmentListSections.js +52 -0
  50. package/lib/commonjs/components/ChannelDetails/hooks/useFileAttachmentListSections.js.map +1 -0
  51. package/lib/commonjs/components/ChannelDetails/hooks/useMediaList.js +30 -0
  52. package/lib/commonjs/components/ChannelDetails/hooks/useMediaList.js.map +1 -0
  53. package/lib/commonjs/components/ImageGallery/ImageGallery.js +21 -76
  54. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  55. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +6 -10
  56. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  57. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +16 -14
  58. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  59. package/lib/commonjs/components/ImageGallery/components/ImageGalleryA11yProbe.js +67 -0
  60. package/lib/commonjs/components/ImageGallery/components/ImageGalleryA11yProbe.js.map +1 -0
  61. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +23 -15
  62. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  63. package/lib/commonjs/components/ImageGallery/hooks/useAnimatedGalleryStyle.js +4 -3
  64. package/lib/commonjs/components/ImageGallery/hooks/useAnimatedGalleryStyle.js.map +1 -1
  65. package/lib/commonjs/components/ImageGallery/hooks/useCurrentImageHeight.js +53 -0
  66. package/lib/commonjs/components/ImageGallery/hooks/useCurrentImageHeight.js.map +1 -0
  67. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js +25 -31
  68. package/lib/commonjs/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  69. package/lib/commonjs/components/UIComponents/EmptyList.js +78 -0
  70. package/lib/commonjs/components/UIComponents/EmptyList.js.map +1 -0
  71. package/lib/commonjs/components/UIComponents/index.js +11 -0
  72. package/lib/commonjs/components/UIComponents/index.js.map +1 -1
  73. package/lib/commonjs/components/ui/Avatar/AvatarGroup.js +3 -3
  74. package/lib/commonjs/components/ui/Avatar/constants.js +2 -2
  75. package/lib/commonjs/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.js +64 -0
  76. package/lib/commonjs/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.js.map +1 -0
  77. package/lib/commonjs/contexts/channelMediaListContext/ChannelMediaListContext.js +63 -0
  78. package/lib/commonjs/contexts/channelMediaListContext/ChannelMediaListContext.js.map +1 -0
  79. package/lib/commonjs/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.js +73 -0
  80. package/lib/commonjs/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.js.map +1 -0
  81. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +8 -0
  82. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  83. package/lib/commonjs/contexts/index.js +33 -0
  84. package/lib/commonjs/contexts/index.js.map +1 -1
  85. package/lib/commonjs/contexts/themeContext/utils/theme.js +57 -2
  86. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  87. package/lib/commonjs/i18n/ar.json +11 -0
  88. package/lib/commonjs/i18n/en.json +11 -0
  89. package/lib/commonjs/i18n/es.json +11 -0
  90. package/lib/commonjs/i18n/fr.json +11 -0
  91. package/lib/commonjs/i18n/he.json +11 -0
  92. package/lib/commonjs/i18n/hi.json +11 -0
  93. package/lib/commonjs/i18n/it.json +11 -0
  94. package/lib/commonjs/i18n/ja.json +11 -0
  95. package/lib/commonjs/i18n/ko.json +11 -0
  96. package/lib/commonjs/i18n/nl.json +11 -0
  97. package/lib/commonjs/i18n/pt-br.json +11 -0
  98. package/lib/commonjs/i18n/ru.json +11 -0
  99. package/lib/commonjs/i18n/tr.json +11 -0
  100. package/lib/commonjs/icons/folder.js +37 -0
  101. package/lib/commonjs/icons/folder.js.map +1 -0
  102. package/lib/commonjs/icons/index.js +12 -0
  103. package/lib/commonjs/icons/index.js.map +1 -1
  104. package/lib/commonjs/state-store/image-gallery-state-store.js +12 -3
  105. package/lib/commonjs/state-store/image-gallery-state-store.js.map +1 -1
  106. package/lib/commonjs/version.json +1 -1
  107. package/lib/module/components/ChannelDetails/ChannelDetails.js +8 -3
  108. package/lib/module/components/ChannelDetails/ChannelDetails.js.map +1 -1
  109. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionItem.js +2 -1
  110. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionItem.js.map +1 -1
  111. package/lib/module/components/ChannelDetails/components/ChannelDetailsEditButton.js +57 -0
  112. package/lib/module/components/ChannelDetails/components/ChannelDetailsEditButton.js.map +1 -0
  113. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavHeader.js +3 -32
  114. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavHeader.js.map +1 -1
  115. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavigationSection.js +64 -25
  116. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavigationSection.js.map +1 -1
  117. package/lib/module/components/ChannelDetails/components/ChannelDetailsProfile.js +3 -2
  118. package/lib/module/components/ChannelDetails/components/ChannelDetailsProfile.js.map +1 -1
  119. package/lib/module/components/ChannelDetails/components/ChannelEditImageSheet.js +2 -2
  120. package/lib/module/components/ChannelDetails/components/ChannelEditImageSheet.js.map +1 -1
  121. package/lib/module/components/ChannelDetails/components/index.js +22 -0
  122. package/lib/module/components/ChannelDetails/components/index.js.map +1 -1
  123. package/lib/module/components/ChannelDetails/components/members/ChannelMemberItem.js +2 -1
  124. package/lib/module/components/ChannelDetails/components/members/ChannelMemberItem.js.map +1 -1
  125. package/lib/module/components/ChannelDetails/components/modal/Modal.js +22 -23
  126. package/lib/module/components/ChannelDetails/components/modal/Modal.js.map +1 -1
  127. package/lib/module/components/ChannelDetails/components/modal/ModalHeader.js +6 -4
  128. package/lib/module/components/ChannelDetails/components/modal/ModalHeader.js.map +1 -1
  129. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentItem.js +65 -0
  130. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentItem.js.map +1 -0
  131. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentList.js +174 -0
  132. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentList.js.map +1 -0
  133. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.js +21 -0
  134. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.js.map +1 -0
  135. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.js +45 -0
  136. package/lib/module/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.js.map +1 -0
  137. package/lib/module/components/ChannelDetails/components/navigation-section/MediaItem.js +120 -0
  138. package/lib/module/components/ChannelDetails/components/navigation-section/MediaItem.js.map +1 -0
  139. package/lib/module/components/ChannelDetails/components/navigation-section/MediaList.js +206 -0
  140. package/lib/module/components/ChannelDetails/components/navigation-section/MediaList.js.map +1 -0
  141. package/lib/module/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.js +63 -0
  142. package/lib/module/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.js.map +1 -0
  143. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageItem.js +84 -0
  144. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageItem.js.map +1 -0
  145. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageList.js +177 -0
  146. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageList.js.map +1 -0
  147. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.js +21 -0
  148. package/lib/module/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.js.map +1 -0
  149. package/lib/module/components/ChannelDetails/components/navigation-section/index.js +114 -0
  150. package/lib/module/components/ChannelDetails/components/navigation-section/index.js.map +1 -0
  151. package/lib/module/components/ChannelDetails/hooks/index.js +33 -0
  152. package/lib/module/components/ChannelDetails/hooks/index.js.map +1 -1
  153. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.js +55 -0
  154. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.js.map +1 -0
  155. package/lib/module/components/ChannelDetails/hooks/useFileAttachmentListSections.js +52 -0
  156. package/lib/module/components/ChannelDetails/hooks/useFileAttachmentListSections.js.map +1 -0
  157. package/lib/module/components/ChannelDetails/hooks/useMediaList.js +30 -0
  158. package/lib/module/components/ChannelDetails/hooks/useMediaList.js.map +1 -0
  159. package/lib/module/components/ImageGallery/ImageGallery.js +21 -76
  160. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  161. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +6 -10
  162. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  163. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +16 -14
  164. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  165. package/lib/module/components/ImageGallery/components/ImageGalleryA11yProbe.js +67 -0
  166. package/lib/module/components/ImageGallery/components/ImageGalleryA11yProbe.js.map +1 -0
  167. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +23 -15
  168. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  169. package/lib/module/components/ImageGallery/hooks/useAnimatedGalleryStyle.js +4 -3
  170. package/lib/module/components/ImageGallery/hooks/useAnimatedGalleryStyle.js.map +1 -1
  171. package/lib/module/components/ImageGallery/hooks/useCurrentImageHeight.js +53 -0
  172. package/lib/module/components/ImageGallery/hooks/useCurrentImageHeight.js.map +1 -0
  173. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js +25 -31
  174. package/lib/module/components/ImageGallery/hooks/useImageGalleryGestures.js.map +1 -1
  175. package/lib/module/components/UIComponents/EmptyList.js +78 -0
  176. package/lib/module/components/UIComponents/EmptyList.js.map +1 -0
  177. package/lib/module/components/UIComponents/index.js +11 -0
  178. package/lib/module/components/UIComponents/index.js.map +1 -1
  179. package/lib/module/components/ui/Avatar/AvatarGroup.js +3 -3
  180. package/lib/module/components/ui/Avatar/constants.js +2 -2
  181. package/lib/module/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.js +64 -0
  182. package/lib/module/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.js.map +1 -0
  183. package/lib/module/contexts/channelMediaListContext/ChannelMediaListContext.js +63 -0
  184. package/lib/module/contexts/channelMediaListContext/ChannelMediaListContext.js.map +1 -0
  185. package/lib/module/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.js +73 -0
  186. package/lib/module/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.js.map +1 -0
  187. package/lib/module/contexts/componentsContext/defaultComponents.js +8 -0
  188. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  189. package/lib/module/contexts/index.js +33 -0
  190. package/lib/module/contexts/index.js.map +1 -1
  191. package/lib/module/contexts/themeContext/utils/theme.js +57 -2
  192. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  193. package/lib/module/i18n/ar.json +11 -0
  194. package/lib/module/i18n/en.json +11 -0
  195. package/lib/module/i18n/es.json +11 -0
  196. package/lib/module/i18n/fr.json +11 -0
  197. package/lib/module/i18n/he.json +11 -0
  198. package/lib/module/i18n/hi.json +11 -0
  199. package/lib/module/i18n/it.json +11 -0
  200. package/lib/module/i18n/ja.json +11 -0
  201. package/lib/module/i18n/ko.json +11 -0
  202. package/lib/module/i18n/nl.json +11 -0
  203. package/lib/module/i18n/pt-br.json +11 -0
  204. package/lib/module/i18n/ru.json +11 -0
  205. package/lib/module/i18n/tr.json +11 -0
  206. package/lib/module/icons/folder.js +37 -0
  207. package/lib/module/icons/folder.js.map +1 -0
  208. package/lib/module/icons/index.js +12 -0
  209. package/lib/module/icons/index.js.map +1 -1
  210. package/lib/module/state-store/image-gallery-state-store.js +12 -3
  211. package/lib/module/state-store/image-gallery-state-store.js.map +1 -1
  212. package/lib/module/version.json +1 -1
  213. package/lib/typescript/components/ChannelDetails/ChannelDetails.d.ts +11 -1
  214. package/lib/typescript/components/ChannelDetails/ChannelDetails.d.ts.map +1 -1
  215. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsActionItem.d.ts.map +1 -1
  216. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsEditButton.d.ts +6 -0
  217. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsEditButton.d.ts.map +1 -0
  218. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavHeader.d.ts +3 -1
  219. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavHeader.d.ts.map +1 -1
  220. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavigationSection.d.ts.map +1 -1
  221. package/lib/typescript/components/ChannelDetails/components/index.d.ts +3 -0
  222. package/lib/typescript/components/ChannelDetails/components/index.d.ts.map +1 -1
  223. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberItem.d.ts.map +1 -1
  224. package/lib/typescript/components/ChannelDetails/components/modal/Modal.d.ts +2 -1
  225. package/lib/typescript/components/ChannelDetails/components/modal/Modal.d.ts.map +1 -1
  226. package/lib/typescript/components/ChannelDetails/components/modal/ModalHeader.d.ts +3 -1
  227. package/lib/typescript/components/ChannelDetails/components/modal/ModalHeader.d.ts.map +1 -1
  228. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentItem.d.ts +31 -0
  229. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentItem.d.ts.map +1 -0
  230. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentList.d.ts +17 -0
  231. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentList.d.ts.map +1 -0
  232. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.d.ts +9 -0
  233. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.d.ts.map +1 -0
  234. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.d.ts +13 -0
  235. package/lib/typescript/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.d.ts.map +1 -0
  236. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaItem.d.ts +35 -0
  237. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaItem.d.ts.map +1 -0
  238. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaList.d.ts +17 -0
  239. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaList.d.ts.map +1 -0
  240. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.d.ts +11 -0
  241. package/lib/typescript/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.d.ts.map +1 -0
  242. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageItem.d.ts +19 -0
  243. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageItem.d.ts.map +1 -0
  244. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageList.d.ts +19 -0
  245. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageList.d.ts.map +1 -0
  246. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.d.ts +9 -0
  247. package/lib/typescript/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.d.ts.map +1 -0
  248. package/lib/typescript/components/ChannelDetails/components/navigation-section/index.d.ts +11 -0
  249. package/lib/typescript/components/ChannelDetails/components/navigation-section/index.d.ts.map +1 -0
  250. package/lib/typescript/components/ChannelDetails/hooks/index.d.ts +3 -0
  251. package/lib/typescript/components/ChannelDetails/hooks/index.d.ts.map +1 -1
  252. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.d.ts +56 -0
  253. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.d.ts.map +1 -0
  254. package/lib/typescript/components/ChannelDetails/hooks/useFileAttachmentListSections.d.ts +28 -0
  255. package/lib/typescript/components/ChannelDetails/hooks/useFileAttachmentListSections.d.ts.map +1 -0
  256. package/lib/typescript/components/ChannelDetails/hooks/useMediaList.d.ts +20 -0
  257. package/lib/typescript/components/ChannelDetails/hooks/useMediaList.d.ts.map +1 -0
  258. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts.map +1 -1
  259. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts.map +1 -1
  260. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +1 -4
  261. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts.map +1 -1
  262. package/lib/typescript/components/ImageGallery/components/ImageGalleryA11yProbe.d.ts +20 -0
  263. package/lib/typescript/components/ImageGallery/components/ImageGalleryA11yProbe.d.ts.map +1 -0
  264. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts.map +1 -1
  265. package/lib/typescript/components/ImageGallery/hooks/useAnimatedGalleryStyle.d.ts +2 -3
  266. package/lib/typescript/components/ImageGallery/hooks/useAnimatedGalleryStyle.d.ts.map +1 -1
  267. package/lib/typescript/components/ImageGallery/hooks/useCurrentImageHeight.d.ts +24 -0
  268. package/lib/typescript/components/ImageGallery/hooks/useCurrentImageHeight.d.ts.map +1 -0
  269. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts +1 -1
  270. package/lib/typescript/components/ImageGallery/hooks/useImageGalleryGestures.d.ts.map +1 -1
  271. package/lib/typescript/components/UIComponents/EmptyList.d.ts +24 -0
  272. package/lib/typescript/components/UIComponents/EmptyList.d.ts.map +1 -0
  273. package/lib/typescript/components/UIComponents/index.d.ts +1 -0
  274. package/lib/typescript/components/UIComponents/index.d.ts.map +1 -1
  275. package/lib/typescript/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.d.ts +21 -0
  276. package/lib/typescript/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.d.ts.map +1 -0
  277. package/lib/typescript/contexts/channelMediaListContext/ChannelMediaListContext.d.ts +21 -0
  278. package/lib/typescript/contexts/channelMediaListContext/ChannelMediaListContext.d.ts.map +1 -0
  279. package/lib/typescript/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.d.ts +21 -0
  280. package/lib/typescript/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.d.ts.map +1 -0
  281. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +18 -2
  282. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  283. package/lib/typescript/contexts/index.d.ts +3 -0
  284. package/lib/typescript/contexts/index.d.ts.map +1 -1
  285. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +56 -1
  286. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts.map +1 -1
  287. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +56 -1
  288. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  289. package/lib/typescript/i18n/ar.json +11 -0
  290. package/lib/typescript/i18n/en.json +11 -0
  291. package/lib/typescript/i18n/es.json +11 -0
  292. package/lib/typescript/i18n/fr.json +11 -0
  293. package/lib/typescript/i18n/he.json +11 -0
  294. package/lib/typescript/i18n/hi.json +11 -0
  295. package/lib/typescript/i18n/it.json +11 -0
  296. package/lib/typescript/i18n/ja.json +11 -0
  297. package/lib/typescript/i18n/ko.json +11 -0
  298. package/lib/typescript/i18n/nl.json +11 -0
  299. package/lib/typescript/i18n/pt-br.json +11 -0
  300. package/lib/typescript/i18n/ru.json +11 -0
  301. package/lib/typescript/i18n/tr.json +11 -0
  302. package/lib/typescript/icons/folder.d.ts +4 -0
  303. package/lib/typescript/icons/folder.d.ts.map +1 -0
  304. package/lib/typescript/icons/index.d.ts +1 -0
  305. package/lib/typescript/icons/index.d.ts.map +1 -1
  306. package/lib/typescript/state-store/image-gallery-state-store.d.ts +8 -0
  307. package/lib/typescript/state-store/image-gallery-state-store.d.ts.map +1 -1
  308. package/lib/typescript/utils/i18n/Streami18n.d.ts +11 -0
  309. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  310. package/package.json +1 -1
  311. package/src/components/ChannelDetails/ChannelDetails.tsx +17 -2
  312. package/src/components/ChannelDetails/__tests__/ChannelDetails.test.tsx +29 -0
  313. package/src/components/ChannelDetails/__tests__/ChannelDetailsEditButton.test.tsx +127 -0
  314. package/src/components/ChannelDetails/__tests__/ChannelDetailsNavHeader.test.tsx +21 -56
  315. package/src/components/ChannelDetails/__tests__/ChannelDetailsNavigationSection.test.tsx +225 -6
  316. package/src/components/ChannelDetails/__tests__/useFileAttachmentListSections.test.tsx +159 -0
  317. package/src/components/ChannelDetails/__tests__/useMediaList.test.tsx +53 -0
  318. package/src/components/ChannelDetails/components/ChannelDetailsActionItem.tsx +6 -1
  319. package/src/components/ChannelDetails/components/ChannelDetailsEditButton.tsx +50 -0
  320. package/src/components/ChannelDetails/components/ChannelDetailsNavHeader.tsx +6 -33
  321. package/src/components/ChannelDetails/components/ChannelDetailsNavigationSection.tsx +80 -32
  322. package/src/components/ChannelDetails/components/ChannelDetailsProfile.tsx +2 -1
  323. package/src/components/ChannelDetails/components/ChannelEditImageSheet.tsx +2 -2
  324. package/src/components/ChannelDetails/components/__tests__/navigation-section/FileAttachmentItem.test.tsx +80 -0
  325. package/src/components/ChannelDetails/components/__tests__/navigation-section/FileAttachmentList.test.tsx +334 -0
  326. package/src/components/ChannelDetails/components/__tests__/navigation-section/FileAttachmentListSectionHeader.test.tsx +19 -0
  327. package/src/components/ChannelDetails/components/__tests__/navigation-section/MediaItem.test.tsx +97 -0
  328. package/src/components/ChannelDetails/components/__tests__/navigation-section/MediaList.test.tsx +351 -0
  329. package/src/components/ChannelDetails/components/__tests__/navigation-section/PinnedMessageItem.test.tsx +112 -0
  330. package/src/components/ChannelDetails/components/__tests__/navigation-section/PinnedMessageList.test.tsx +324 -0
  331. package/src/components/ChannelDetails/components/index.ts +3 -0
  332. package/src/components/ChannelDetails/components/members/ChannelMemberItem.tsx +6 -1
  333. package/src/components/ChannelDetails/components/modal/Modal.tsx +37 -24
  334. package/src/components/ChannelDetails/components/modal/ModalHeader.tsx +11 -4
  335. package/src/components/ChannelDetails/components/navigation-section/FileAttachmentItem.tsx +92 -0
  336. package/src/components/ChannelDetails/components/navigation-section/FileAttachmentList.tsx +204 -0
  337. package/src/components/ChannelDetails/components/navigation-section/FileAttachmentListLoadingSkeleton.tsx +23 -0
  338. package/src/components/ChannelDetails/components/navigation-section/FileAttachmentListSectionHeader.tsx +56 -0
  339. package/src/components/ChannelDetails/components/navigation-section/MediaItem.tsx +160 -0
  340. package/src/components/ChannelDetails/components/navigation-section/MediaList.tsx +244 -0
  341. package/src/components/ChannelDetails/components/navigation-section/MediaListLoadingSkeleton.tsx +66 -0
  342. package/src/components/ChannelDetails/components/navigation-section/PinnedMessageItem.tsx +94 -0
  343. package/src/components/ChannelDetails/components/navigation-section/PinnedMessageList.tsx +198 -0
  344. package/src/components/ChannelDetails/components/navigation-section/PinnedMessageListLoadingSkeleton.tsx +23 -0
  345. package/src/components/ChannelDetails/components/navigation-section/index.ts +10 -0
  346. package/src/components/ChannelDetails/hooks/index.ts +3 -0
  347. package/src/components/ChannelDetails/hooks/useChannelDetailsNavigationItems.ts +108 -0
  348. package/src/components/ChannelDetails/hooks/useFileAttachmentListSections.ts +79 -0
  349. package/src/components/ChannelDetails/hooks/useMediaList.ts +51 -0
  350. package/src/components/ImageGallery/ImageGallery.tsx +41 -120
  351. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +4 -1
  352. package/src/components/ImageGallery/__tests__/ImageGalleryAdjustable.test.tsx +5 -4
  353. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +9 -11
  354. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +28 -15
  355. package/src/components/ImageGallery/components/ImageGalleryA11yProbe.tsx +82 -0
  356. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +21 -18
  357. package/src/components/ImageGallery/hooks/useAnimatedGalleryStyle.tsx +5 -5
  358. package/src/components/ImageGallery/hooks/useCurrentImageHeight.ts +86 -0
  359. package/src/components/ImageGallery/hooks/useImageGalleryGestures.tsx +42 -51
  360. package/src/components/UIComponents/EmptyList.tsx +80 -0
  361. package/src/components/UIComponents/__tests__/EmptyList.test.tsx +90 -0
  362. package/src/components/UIComponents/index.ts +1 -0
  363. package/src/components/ui/Avatar/AvatarGroup.tsx +3 -3
  364. package/src/components/ui/Avatar/constants.ts +2 -2
  365. package/src/contexts/channelFileAttachmentListContext/ChannelFileAttachmentListContext.tsx +67 -0
  366. package/src/contexts/channelMediaListContext/ChannelMediaListContext.tsx +68 -0
  367. package/src/contexts/channelPinnedMessageListContext/ChannelPinnedMessageListContext.tsx +72 -0
  368. package/src/contexts/componentsContext/defaultComponents.ts +16 -1
  369. package/src/contexts/index.ts +3 -0
  370. package/src/contexts/themeContext/utils/theme.ts +112 -2
  371. package/src/i18n/ar.json +11 -0
  372. package/src/i18n/en.json +11 -0
  373. package/src/i18n/es.json +11 -0
  374. package/src/i18n/fr.json +11 -0
  375. package/src/i18n/he.json +11 -0
  376. package/src/i18n/hi.json +11 -0
  377. package/src/i18n/it.json +11 -0
  378. package/src/i18n/ja.json +11 -0
  379. package/src/i18n/ko.json +11 -0
  380. package/src/i18n/nl.json +11 -0
  381. package/src/i18n/pt-br.json +11 -0
  382. package/src/i18n/ru.json +11 -0
  383. package/src/i18n/tr.json +11 -0
  384. package/src/icons/folder.tsx +28 -0
  385. package/src/icons/index.ts +1 -0
  386. package/src/state-store/__tests__/image-gallery-state-store.test.ts +81 -0
  387. package/src/state-store/image-gallery-state-store.ts +27 -1
  388. package/src/version.json +1 -1
package/src/i18n/nl.json CHANGED
@@ -162,6 +162,7 @@
162
162
  "duration/Remind Me": "{{ milliseconds | durationFormatter(withSuffix: true) }}",
163
163
  "replied to": "reageerde op",
164
164
  "timestamp/ChannelPreviewStatus": "{{ timestamp | timestampFormatter(calendar: true; calendarFormats: {\"lastDay\":\"[Gisteren]\",\"lastWeek\":\"dddd\",\"nextDay\":\"[Morgen]\",\"nextWeek\":\"dddd [om] LT\",\"sameDay\":\"LT\",\"sameElse\":\"L\"}) }}",
165
+ "timestamp/FileAttachmentListSection": "{{ timestamp | timestampFormatter(format: MMMM YYYY) }}",
165
166
  "timestamp/ImageGalleryHeader": "{{ timestamp | timestampFormatter(calendar: true) }}",
166
167
  "timestamp/InlineDateSeparator": "{{ timestamp | timestampFormatter(calendar: true) }}",
167
168
  "timestamp/MessageEditedTimestamp": "{{ timestamp | timestampFormatter(calendar: true) }}",
@@ -388,6 +389,7 @@
388
389
  "Failed to block user": "Gebruiker blokkeren mislukt",
389
390
  "Failed to delete channel": "Kanaal verwijderen mislukt",
390
391
  "Failed to leave channel": "Kanaal verlaten mislukt",
392
+ "Failed to load pinned messages": "Vastgemaakte berichten laden mislukt",
391
393
  "Failed to load users": "Gebruikers laden mislukt",
392
394
  "Failed to play the recording": "Opname afspelen mislukt",
393
395
  "Failed to update channel archive status": "Bijwerken van kanaalarchiefstatus mislukt",
@@ -437,6 +439,15 @@
437
439
  "a11y/Gallery Image": "Galerij-afbeelding",
438
440
  "a11y/Gallery Video": "Galerij-video",
439
441
  "a11y/{{position}} of {{count}}": "{{position}} van {{count}}",
442
+ "No pinned messages": "Geen vastgemaakte berichten",
443
+ "a11y/Search pinned messages": "Zoek vastgemaakte berichten",
444
+ "Long-press a message to pin it to the chat": "Houd een bericht lang ingedrukt om het vast te pinnen in de chat",
445
+ "No photos or videos": "Geen foto's of video's",
446
+ "Share a photo or video to see it here": "Deel een foto of video om deze hier te zien",
447
+ "Failed to load media": "Media laden mislukt",
448
+ "No files": "Geen bestanden",
449
+ "Share a file to see it here": "Deel een bestand om het hier te zien",
450
+ "Failed to load files": "Bestanden laden mislukt",
440
451
  "Notify all {{ role }} members": "Notify all {{ role }} members",
441
452
  "a11y/Command suggestions available": "Command suggestions available",
442
453
  "a11y/Emoji suggestions available": "Emoji suggestions available",
@@ -162,6 +162,7 @@
162
162
  "duration/Remind Me": "{{ milliseconds | durationFormatter(withSuffix: true) }}",
163
163
  "replied to": "respondeu a",
164
164
  "timestamp/ChannelPreviewStatus": "{{ timestamp | timestampFormatter(calendar: true; calendarFormats: {\"lastDay\":\"[Ontem]\",\"lastWeek\":\"dddd\",\"nextDay\":\"[Amanhã]\",\"nextWeek\":\"dddd [às] LT\",\"sameDay\":\"LT\",\"sameElse\":\"L\"}) }}",
165
+ "timestamp/FileAttachmentListSection": "{{ timestamp | timestampFormatter(format: MMMM YYYY) }}",
165
166
  "timestamp/ImageGalleryHeader": "{{ timestamp | timestampFormatter(calendar: true) }}",
166
167
  "timestamp/InlineDateSeparator": "{{ timestamp | timestampFormatter(calendar: true) }}",
167
168
  "timestamp/MessageEditedTimestamp": "{{ timestamp | timestampFormatter(calendar: true) }}",
@@ -388,6 +389,7 @@
388
389
  "Failed to block user": "Falha ao bloquear usuário",
389
390
  "Failed to delete channel": "Falha ao excluir o canal",
390
391
  "Failed to leave channel": "Falha ao sair do canal",
392
+ "Failed to load pinned messages": "Falha ao carregar mensagens fixadas",
391
393
  "Failed to load users": "Falha ao carregar usuários",
392
394
  "Failed to play the recording": "Falha ao reproduzir a gravação",
393
395
  "Failed to update channel archive status": "Falha ao atualizar o status de arquivamento do canal",
@@ -437,6 +439,15 @@
437
439
  "a11y/Gallery Image": "Imagem da galeria",
438
440
  "a11y/Gallery Video": "Vídeo da galeria",
439
441
  "a11y/{{position}} of {{count}}": "{{position}} de {{count}}",
442
+ "No pinned messages": "Nenhuma mensagem fixada",
443
+ "a11y/Search pinned messages": "Pesquisar mensagens fixadas",
444
+ "Long-press a message to pin it to the chat": "Mantenha pressionada uma mensagem para fixá-la no chat",
445
+ "No photos or videos": "Nenhuma foto ou vídeo",
446
+ "Share a photo or video to see it here": "Compartilhe uma foto ou vídeo para vê-lo aqui",
447
+ "Failed to load media": "Falha ao carregar mídia",
448
+ "No files": "Nenhum arquivo",
449
+ "Share a file to see it here": "Compartilhe um arquivo para vê-lo aqui",
450
+ "Failed to load files": "Falha ao carregar os arquivos",
440
451
  "Notify all {{ role }} members": "Notify all {{ role }} members",
441
452
  "a11y/Command suggestions available": "Command suggestions available",
442
453
  "a11y/Emoji suggestions available": "Emoji suggestions available",
package/src/i18n/ru.json CHANGED
@@ -162,6 +162,7 @@
162
162
  "duration/Remind Me": "{{ milliseconds | durationFormatter(withSuffix: true) }}",
163
163
  "replied to": "ответил на",
164
164
  "timestamp/ChannelPreviewStatus": "{{ timestamp | timestampFormatter(calendar: true; calendarFormats: {\"lastDay\":\"[Вчера]\",\"lastWeek\":\"dddd\",\"nextDay\":\"[Завтра]\",\"nextWeek\":\"dddd [в] LT\",\"sameDay\":\"LT\",\"sameElse\":\"L\"}) }}",
165
+ "timestamp/FileAttachmentListSection": "{{ timestamp | timestampFormatter(format: MMMM YYYY) }}",
165
166
  "timestamp/ImageGalleryHeader": "{{ timestamp | timestampFormatter(calendar: true) }}",
166
167
  "timestamp/InlineDateSeparator": "{{ timestamp | timestampFormatter(calendar: true) }}",
167
168
  "timestamp/MessageEditedTimestamp": "{{ timestamp | timestampFormatter(calendar: true) }}",
@@ -388,6 +389,7 @@
388
389
  "Failed to block user": "Не удалось заблокировать пользователя",
389
390
  "Failed to delete channel": "Не удалось удалить канал",
390
391
  "Failed to leave channel": "Не удалось покинуть канал",
392
+ "Failed to load pinned messages": "Не удалось загрузить закреплённые сообщения",
391
393
  "Failed to load users": "Не удалось загрузить пользователей",
392
394
  "Failed to play the recording": "Не удалось воспроизвести запись",
393
395
  "Failed to update channel archive status": "Не удалось обновить статус архивации канала",
@@ -437,6 +439,15 @@
437
439
  "a11y/Gallery Image": "Изображение из галереи",
438
440
  "a11y/Gallery Video": "Видео из галереи",
439
441
  "a11y/{{position}} of {{count}}": "{{position}} из {{count}}",
442
+ "No pinned messages": "Нет закреплённых сообщений",
443
+ "a11y/Search pinned messages": "Поиск закреплённых сообщений",
444
+ "Long-press a message to pin it to the chat": "Нажмите и удерживайте сообщение, чтобы закрепить его в чате",
445
+ "No photos or videos": "Нет фото и видео",
446
+ "Share a photo or video to see it here": "Поделитесь фото или видео, чтобы увидеть их здесь",
447
+ "Failed to load media": "Не удалось загрузить медиафайлы",
448
+ "No files": "Нет файлов",
449
+ "Share a file to see it here": "Поделитесь файлом, чтобы увидеть его здесь",
450
+ "Failed to load files": "Не удалось загрузить файлы",
440
451
  "Notify all {{ role }} members": "Notify all {{ role }} members",
441
452
  "a11y/Command suggestions available": "Command suggestions available",
442
453
  "a11y/Emoji suggestions available": "Emoji suggestions available",
package/src/i18n/tr.json CHANGED
@@ -162,6 +162,7 @@
162
162
  "duration/Remind Me": "{{ milliseconds | durationFormatter(withSuffix: true) }}",
163
163
  "replied to": "yanıtladı",
164
164
  "timestamp/ChannelPreviewStatus": "{{ timestamp | timestampFormatter(calendar: true; calendarFormats: {\"lastDay\":\"[Dün]\",\"lastWeek\":\"dddd\",\"nextDay\":\"[Yarın]\",\"nextWeek\":\"dddd [saat] LT\",\"sameDay\":\"LT\",\"sameElse\":\"L\"}) }}",
165
+ "timestamp/FileAttachmentListSection": "{{ timestamp | timestampFormatter(format: MMMM YYYY) }}",
165
166
  "timestamp/ImageGalleryHeader": "{{ timestamp | timestampFormatter(calendar: true) }}",
166
167
  "timestamp/InlineDateSeparator": "{{ timestamp | timestampFormatter(calendar: true) }}",
167
168
  "timestamp/MessageEditedTimestamp": "{{ timestamp | timestampFormatter(calendar: true) }}",
@@ -388,6 +389,7 @@
388
389
  "Failed to block user": "Kullanıcı engellenemedi",
389
390
  "Failed to delete channel": "Kanal silinemedi",
390
391
  "Failed to leave channel": "Kanaldan çıkılamadı",
392
+ "Failed to load pinned messages": "Sabitlenmiş mesajlar yüklenemedi",
391
393
  "Failed to load users": "Kullanıcılar yüklenemedi",
392
394
  "Failed to play the recording": "Kayıt oynatılamadı",
393
395
  "Failed to update channel archive status": "Kanal arşiv durumu güncellenemedi",
@@ -437,6 +439,15 @@
437
439
  "a11y/Gallery Image": "Galeri görüntüsü",
438
440
  "a11y/Gallery Video": "Galeri videosu",
439
441
  "a11y/{{position}} of {{count}}": "{{count}} öğeden {{position}}",
442
+ "No pinned messages": "Sabitlenmiş mesaj yok",
443
+ "a11y/Search pinned messages": "Sabitlenmiş mesajları ara",
444
+ "Long-press a message to pin it to the chat": "Bir mesajı sohbete sabitlemek için uzun basın",
445
+ "No photos or videos": "Fotoğraf veya video yok",
446
+ "Share a photo or video to see it here": "Burada görmek için bir fotoğraf veya video paylaşın",
447
+ "Failed to load media": "Medya yüklenemedi",
448
+ "No files": "Dosya yok",
449
+ "Share a file to see it here": "Burada görmek için bir dosya paylaşın",
450
+ "Failed to load files": "Dosyalar yüklenemedi",
440
451
  "Notify all {{ role }} members": "Notify all {{ role }} members",
441
452
  "a11y/Command suggestions available": "Command suggestions available",
442
453
  "a11y/Emoji suggestions available": "Emoji suggestions available",
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+
3
+ import { Path, Svg } from 'react-native-svg';
4
+
5
+ import { IconProps } from './utils/base';
6
+
7
+ export const Folder = ({ fill, height, pathFill, size, stroke, width, ...rest }: IconProps) => {
8
+ const color = stroke ?? pathFill ?? fill ?? 'black';
9
+
10
+ return (
11
+ <Svg
12
+ fill={'none'}
13
+ height={height ?? size}
14
+ viewBox={'0 0 17 14'}
15
+ width={width ?? size}
16
+ {...rest}
17
+ >
18
+ <Path
19
+ d='M15.75 3.25V12.0695C15.75 12.2169 15.6915 12.3581 15.5873 12.4623C15.4831 12.5665 15.3419 12.625 15.1945 12.625H1.375C1.20924 12.625 1.05027 12.5592 0.933058 12.4419C0.815848 12.3247 0.75 12.1658 0.75 12V1.375C0.75 1.20924 0.815848 1.05027 0.933058 0.933058C1.05027 0.815848 1.20924 0.75 1.375 0.75H5.54141C5.67664 0.75 5.80822 0.793861 5.91641 0.875L8.25 2.625H15.125C15.2908 2.625 15.4497 2.69085 15.5669 2.80806C15.6842 2.92527 15.75 3.08424 15.75 3.25Z'
20
+ fill='none'
21
+ stroke={color}
22
+ strokeLinecap='round'
23
+ strokeLinejoin='round'
24
+ strokeWidth={1.5}
25
+ />
26
+ </Svg>
27
+ );
28
+ };
@@ -46,6 +46,7 @@ export * from './refresh';
46
46
  export { PollThumbnail } from './poll';
47
47
  export * from './notification';
48
48
  export { FilePickerIcon } from './file';
49
+ export * from './folder';
49
50
  export * from './command';
50
51
  export * from './bell';
51
52
  export * from './save';
@@ -13,6 +13,7 @@ import { VideoPlayerPool } from '../video-player-pool';
13
13
  jest.mock('../video-player-pool', () => ({
14
14
  VideoPlayerPool: jest.fn().mockImplementation(() => ({
15
15
  clear: jest.fn(),
16
+ getActivePlayer: jest.fn(() => null),
16
17
  pool: new Map(),
17
18
  state: {
18
19
  getLatestValue: () => ({ activeVideoPlayer: null }),
@@ -179,6 +180,63 @@ describe('ImageGalleryStateStore', () => {
179
180
 
180
181
  expect(store.state.getLatestValue().currentIndex).toBe(0);
181
182
  });
183
+
184
+ it('should mirror currentIndex into currentIndexShared.value', () => {
185
+ const store = new ImageGalleryStateStore();
186
+
187
+ store.currentIndex = 7;
188
+
189
+ expect(store.currentIndexShared.value).toBe(7);
190
+ });
191
+
192
+ it('should pause the active video player when currentIndex changes', () => {
193
+ const store = new ImageGalleryStateStore();
194
+ const pause = jest.fn();
195
+ (store.videoPlayerPool.getActivePlayer as jest.Mock).mockReturnValue({ pause });
196
+
197
+ store.currentIndex = 3;
198
+
199
+ expect(pause).toHaveBeenCalledTimes(1);
200
+ });
201
+
202
+ it('should not pause the active player when currentIndex setter is called with the same value', () => {
203
+ const store = new ImageGalleryStateStore();
204
+ store.currentIndex = 3;
205
+ const pause = jest.fn();
206
+ (store.videoPlayerPool.getActivePlayer as jest.Mock).mockReturnValue({ pause });
207
+
208
+ store.currentIndex = 3;
209
+
210
+ expect(pause).not.toHaveBeenCalled();
211
+ });
212
+
213
+ it('should not throw when there is no active player on index change', () => {
214
+ const store = new ImageGalleryStateStore();
215
+ (store.videoPlayerPool.getActivePlayer as jest.Mock).mockReturnValue(null);
216
+
217
+ expect(() => {
218
+ store.currentIndex = 5;
219
+ }).not.toThrow();
220
+ });
221
+ });
222
+
223
+ describe('currentIndexShared mirror', () => {
224
+ it('should initialize at INITIAL_STATE.currentIndex (0)', () => {
225
+ const store = new ImageGalleryStateStore();
226
+
227
+ expect(store.currentIndexShared.value).toBe(0);
228
+ });
229
+
230
+ it('should reset to 0 on clear() even after non-zero set', () => {
231
+ const store = new ImageGalleryStateStore();
232
+ store.currentIndex = 12;
233
+ expect(store.currentIndexShared.value).toBe(12);
234
+
235
+ store.clear();
236
+
237
+ expect(store.state.getLatestValue().currentIndex).toBe(0);
238
+ expect(store.currentIndexShared.value).toBe(0);
239
+ });
182
240
  });
183
241
 
184
242
  describe('attachmentsWithMessage getter', () => {
@@ -707,6 +765,29 @@ describe('ImageGalleryStateStore', () => {
707
765
  unsubscribe();
708
766
  });
709
767
 
768
+ it('should mirror the matched index into currentIndexShared', () => {
769
+ const store = new ImageGalleryStateStore();
770
+ store.subscribeToMessages();
771
+ const unsubscribe = store.subscribeToSelectedAttachmentUrl();
772
+
773
+ store.messages = [
774
+ generateMessage({
775
+ attachments: [generateImageAttachment({ image_url: 'https://example.com/1.jpg' })],
776
+ id: 'msg-1',
777
+ }),
778
+ generateMessage({
779
+ attachments: [generateImageAttachment({ image_url: 'https://example.com/2.jpg' })],
780
+ id: 'msg-2',
781
+ }),
782
+ ];
783
+ store.selectedAttachmentUrl = 'https://example.com/2.jpg';
784
+
785
+ expect(store.state.getLatestValue().currentIndex).toBe(1);
786
+ expect(store.currentIndexShared.value).toBe(1);
787
+
788
+ unsubscribe();
789
+ });
790
+
710
791
  it('should return unsubscribe function', () => {
711
792
  const store = new ImageGalleryStateStore();
712
793
  const unsubscribe = store.subscribeToSelectedAttachmentUrl();
@@ -1,3 +1,5 @@
1
+ import { makeMutable, SharedValue } from 'react-native-reanimated';
2
+
1
3
  import { Attachment, LocalMessage, StateStore, Unsubscribe, UserResponse } from 'stream-chat';
2
4
 
3
5
  import { VideoPlayerPool } from './video-player-pool';
@@ -66,11 +68,19 @@ export class ImageGalleryStateStore {
66
68
  state: StateStore<ImageGalleryState>;
67
69
  options: ImageGalleryOptions;
68
70
  videoPlayerPool: VideoPlayerPool;
71
+ /**
72
+ * SharedValue mirror of `state.currentIndex` for worklet consumers (gesture
73
+ * handlers, animated styles). Maintained in lockstep with the setter and the
74
+ * reset path in `clear()`. Reads from worklets bypass the JS bridge entirely;
75
+ * any code path that updates `currentIndex` must keep this mirror in sync.
76
+ */
77
+ currentIndexShared: SharedValue<number>;
69
78
 
70
79
  constructor(options: Partial<ImageGalleryOptions> = {}) {
71
80
  this.options = { ...INITIAL_IMAGE_GALLERY_OPTIONS, ...options };
72
81
  this.state = new StateStore<ImageGalleryState>(INITIAL_STATE);
73
82
  this.videoPlayerPool = new VideoPlayerPool();
83
+ this.currentIndexShared = makeMutable(INITIAL_STATE.currentIndex);
74
84
  }
75
85
 
76
86
  // Getters
@@ -154,7 +164,21 @@ export class ImageGalleryStateStore {
154
164
  }
155
165
 
156
166
  set currentIndex(currentIndex: number) {
167
+ const previousIndex = this.state.getLatestValue().currentIndex;
157
168
  this.state.partialNext({ currentIndex });
169
+ this.currentIndexShared.value = currentIndex;
170
+ // When the user moves off the current slide, pause whatever video was
171
+ // playing. Moved here from a useEffect in ImageGallery so the invariant
172
+ // lives next to the state it depends on — and the parent no longer needs
173
+ // to subscribe to currentIndex purely to drive this side effect.
174
+ // `clear()` is the other reset path; it bypasses this setter but already
175
+ // pauses everything through `videoPlayerPool.clear()`.
176
+ if (previousIndex !== currentIndex) {
177
+ const activePlayer = this.videoPlayerPool.getActivePlayer();
178
+ if (activePlayer) {
179
+ activePlayer.pause();
180
+ }
181
+ }
158
182
  }
159
183
 
160
184
  set requesterNode(requesterNode: number | null) {
@@ -212,7 +236,8 @@ export class ImageGalleryStateStore {
212
236
  (asset) =>
213
237
  stripQueryFromUrl(asset.uri) === stripQueryFromUrl(selectedAttachmentUrl ?? ''),
214
238
  );
215
- this.state.partialNext({ currentIndex: index === -1 ? 0 : index });
239
+ // Route through the setter so currentIndexShared stays in sync.
240
+ this.currentIndex = index === -1 ? 0 : index;
216
241
  },
217
242
  );
218
243
 
@@ -233,5 +258,6 @@ export class ImageGalleryStateStore {
233
258
  clear = () => {
234
259
  this.videoPlayerPool.clear();
235
260
  this.state.partialNext(INITIAL_STATE);
261
+ this.currentIndexShared.value = INITIAL_STATE.currentIndex;
236
262
  };
237
263
  }
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "9.4.0-beta.11"
2
+ "version": "9.4.0-beta.13"
3
3
  }