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

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 (716) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/ChannelDetails/ChannelDetails.js +100 -0
  3. package/lib/commonjs/components/ChannelDetails/ChannelDetails.js.map +1 -0
  4. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionItem.js +109 -0
  5. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionItem.js.map +1 -0
  6. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionsSection.js +161 -0
  7. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsActionsSection.js.map +1 -0
  8. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsMemberSection.js +200 -0
  9. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsMemberSection.js.map +1 -0
  10. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavHeader.js +133 -0
  11. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavHeader.js.map +1 -0
  12. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavigationSection.js +67 -0
  13. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsNavigationSection.js.map +1 -0
  14. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsProfile.js +106 -0
  15. package/lib/commonjs/components/ChannelDetails/components/ChannelDetailsProfile.js.map +1 -0
  16. package/lib/commonjs/components/ChannelDetails/components/ChannelEditDetails.js +119 -0
  17. package/lib/commonjs/components/ChannelDetails/components/ChannelEditDetails.js.map +1 -0
  18. package/lib/commonjs/components/ChannelDetails/components/ChannelEditDetailsModal.js +152 -0
  19. package/lib/commonjs/components/ChannelDetails/components/ChannelEditDetailsModal.js.map +1 -0
  20. package/lib/commonjs/components/ChannelDetails/components/ChannelEditImageSheet.js +175 -0
  21. package/lib/commonjs/components/ChannelDetails/components/ChannelEditImageSheet.js.map +1 -0
  22. package/lib/commonjs/components/ChannelDetails/components/ChannelEditName.js +44 -0
  23. package/lib/commonjs/components/ChannelDetails/components/ChannelEditName.js.map +1 -0
  24. package/lib/commonjs/components/ChannelDetails/components/index.js +125 -0
  25. package/lib/commonjs/components/ChannelDetails/components/index.js.map +1 -0
  26. package/lib/commonjs/components/ChannelDetails/components/members/AddMemberSearchResultItem.js +123 -0
  27. package/lib/commonjs/components/ChannelDetails/components/members/AddMemberSearchResultItem.js.map +1 -0
  28. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAddMembers.js +131 -0
  29. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAddMembers.js.map +1 -0
  30. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAddMembersModal.js +133 -0
  31. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAddMembersModal.js.map +1 -0
  32. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAllMembersModal.js +85 -0
  33. package/lib/commonjs/components/ChannelDetails/components/members/ChannelAllMembersModal.js.map +1 -0
  34. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberActionsSheet.js +87 -0
  35. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberActionsSheet.js.map +1 -0
  36. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberItem.js +169 -0
  37. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberItem.js.map +1 -0
  38. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberList.js +72 -0
  39. package/lib/commonjs/components/ChannelDetails/components/members/ChannelMemberList.js.map +1 -0
  40. package/lib/commonjs/components/ChannelDetails/components/members/MemberListLoadingSkeleton.js +21 -0
  41. package/lib/commonjs/components/ChannelDetails/components/members/MemberListLoadingSkeleton.js.map +1 -0
  42. package/lib/commonjs/components/ChannelDetails/components/members/UserListLoadingSkeleton.js +21 -0
  43. package/lib/commonjs/components/ChannelDetails/components/members/UserListLoadingSkeleton.js.map +1 -0
  44. package/lib/commonjs/components/ChannelDetails/components/members/index.js +103 -0
  45. package/lib/commonjs/components/ChannelDetails/components/members/index.js.map +1 -0
  46. package/lib/commonjs/components/ChannelDetails/components/modal/Modal.js +49 -0
  47. package/lib/commonjs/components/ChannelDetails/components/modal/Modal.js.map +1 -0
  48. package/lib/commonjs/components/ChannelDetails/components/modal/ModalHeader.js +85 -0
  49. package/lib/commonjs/components/ChannelDetails/components/modal/ModalHeader.js.map +1 -0
  50. package/lib/commonjs/components/ChannelDetails/hooks/index.js +70 -0
  51. package/lib/commonjs/components/ChannelDetails/hooks/index.js.map +1 -0
  52. package/lib/commonjs/components/ChannelDetails/hooks/members/index.js +26 -0
  53. package/lib/commonjs/components/ChannelDetails/hooks/members/index.js.map +1 -0
  54. package/lib/commonjs/components/ChannelDetails/hooks/members/useChannelAllMembers.js +139 -0
  55. package/lib/commonjs/components/ChannelDetails/hooks/members/useChannelAllMembers.js.map +1 -0
  56. package/lib/commonjs/components/ChannelDetails/hooks/members/useMemberRoleLabel.js +33 -0
  57. package/lib/commonjs/components/ChannelDetails/hooks/members/useMemberRoleLabel.js.map +1 -0
  58. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +34 -0
  59. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -0
  60. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.js +32 -0
  61. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.js.map +1 -0
  62. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.js +23 -0
  63. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.js.map +1 -0
  64. package/lib/commonjs/components/ChannelDetails/hooks/useEditChannelImage.js +70 -0
  65. package/lib/commonjs/components/ChannelDetails/hooks/useEditChannelImage.js.map +1 -0
  66. package/lib/commonjs/components/ChannelDetails/hooks/useUserActivityStatus.js +29 -0
  67. package/lib/commonjs/components/ChannelDetails/hooks/useUserActivityStatus.js.map +1 -0
  68. package/lib/commonjs/components/ChannelDetails/index.js +37 -0
  69. package/lib/commonjs/components/ChannelDetails/index.js.map +1 -0
  70. package/lib/commonjs/components/ChannelList/hooks/index.js +0 -66
  71. package/lib/commonjs/components/ChannelList/hooks/index.js.map +1 -1
  72. package/lib/commonjs/components/ChannelList/hooks/useMutedUsers.js +3 -4
  73. package/lib/commonjs/components/ChannelList/hooks/useMutedUsers.js.map +1 -1
  74. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -7
  75. package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  76. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +20 -27
  77. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  78. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  79. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  80. package/lib/commonjs/components/Message/hooks/useUserMuteActive.js +1 -3
  81. package/lib/commonjs/components/Message/hooks/useUserMuteActive.js.map +1 -1
  82. package/lib/commonjs/components/Notifications/notificationTarget.js +1 -1
  83. package/lib/commonjs/components/Notifications/notificationTarget.js.map +1 -1
  84. package/lib/commonjs/components/UIComponents/BottomSheetModal.js +46 -7
  85. package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
  86. package/lib/commonjs/components/UIComponents/EmptySearchResult.js +56 -0
  87. package/lib/commonjs/components/UIComponents/EmptySearchResult.js.map +1 -0
  88. package/lib/commonjs/components/UIComponents/GenericListLoadingSkeleton.js +109 -0
  89. package/lib/commonjs/components/UIComponents/GenericListLoadingSkeleton.js.map +1 -0
  90. package/lib/commonjs/components/UIComponents/SearchInput.js +88 -0
  91. package/lib/commonjs/components/UIComponents/SearchInput.js.map +1 -0
  92. package/lib/commonjs/components/UIComponents/SelectionCircle.js +53 -0
  93. package/lib/commonjs/components/UIComponents/SelectionCircle.js.map +1 -0
  94. package/lib/commonjs/components/UIComponents/index.js +33 -0
  95. package/lib/commonjs/components/UIComponents/index.js.map +1 -1
  96. package/lib/commonjs/components/index.js +11 -0
  97. package/lib/commonjs/components/index.js.map +1 -1
  98. package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js +16 -7
  99. package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js.map +1 -1
  100. package/lib/commonjs/components/ui/Input/Input.js +5 -5
  101. package/lib/commonjs/components/ui/Input/Input.js.map +1 -1
  102. package/lib/commonjs/contexts/bottomSheetContext/BottomSheetContext.js.map +1 -1
  103. package/lib/commonjs/contexts/channelAddMembersContext/ChannelAddMembersContext.js +69 -0
  104. package/lib/commonjs/contexts/channelAddMembersContext/ChannelAddMembersContext.js.map +1 -0
  105. package/lib/commonjs/contexts/channelDetailsContext/channelDetailsContext.js +28 -0
  106. package/lib/commonjs/contexts/channelDetailsContext/channelDetailsContext.js.map +1 -0
  107. package/lib/commonjs/contexts/channelDetailsContext/index.js +15 -0
  108. package/lib/commonjs/contexts/channelDetailsContext/index.js.map +1 -0
  109. package/lib/commonjs/contexts/channelEditDetailsContext/ChannelEditDetailsContext.js +38 -0
  110. package/lib/commonjs/contexts/channelEditDetailsContext/ChannelEditDetailsContext.js.map +1 -0
  111. package/lib/commonjs/contexts/channelEditDetailsContext/index.js +15 -0
  112. package/lib/commonjs/contexts/channelEditDetailsContext/index.js.map +1 -0
  113. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +15 -0
  114. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  115. package/lib/commonjs/contexts/index.js +33 -0
  116. package/lib/commonjs/contexts/index.js.map +1 -1
  117. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -0
  118. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  119. package/lib/commonjs/contexts/themeContext/utils/theme.js +92 -0
  120. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  121. package/lib/commonjs/hooks/actions/index.js +59 -0
  122. package/lib/commonjs/hooks/actions/index.js.map +1 -0
  123. package/lib/commonjs/hooks/actions/types.js +4 -0
  124. package/lib/commonjs/hooks/actions/types.js.map +1 -0
  125. package/lib/commonjs/{components/ChannelList/hooks → hooks/actions}/useChannelActionItems.js +50 -21
  126. package/lib/commonjs/hooks/actions/useChannelActionItems.js.map +1 -0
  127. package/lib/commonjs/hooks/actions/useChannelActionItemsById.js.map +1 -0
  128. package/lib/commonjs/hooks/actions/useChannelActions.js +792 -0
  129. package/lib/commonjs/hooks/actions/useChannelActions.js.map +1 -0
  130. package/lib/commonjs/hooks/actions/useChannelMemberActionItems.js +148 -0
  131. package/lib/commonjs/hooks/actions/useChannelMemberActionItems.js.map +1 -0
  132. package/lib/commonjs/hooks/actions/useUserActions.js +199 -0
  133. package/lib/commonjs/hooks/actions/useUserActions.js.map +1 -0
  134. package/lib/commonjs/hooks/index.js +99 -0
  135. package/lib/commonjs/hooks/index.js.map +1 -1
  136. package/lib/commonjs/hooks/useChannelImage.js +15 -0
  137. package/lib/commonjs/hooks/useChannelImage.js.map +1 -0
  138. package/lib/commonjs/hooks/useChannelMemberCount.js +15 -0
  139. package/lib/commonjs/hooks/useChannelMemberCount.js.map +1 -0
  140. package/lib/commonjs/{components/ChannelList/hooks → hooks}/useChannelMembershipState.js +1 -1
  141. package/lib/commonjs/hooks/useChannelMembershipState.js.map +1 -0
  142. package/lib/commonjs/hooks/useChannelMuteActive.js +21 -0
  143. package/lib/commonjs/hooks/useChannelMuteActive.js.map +1 -0
  144. package/lib/commonjs/hooks/useChannelName.js +15 -0
  145. package/lib/commonjs/hooks/useChannelName.js.map +1 -0
  146. package/lib/commonjs/hooks/useChannelOwnCapabilities.js +15 -0
  147. package/lib/commonjs/hooks/useChannelOwnCapabilities.js.map +1 -0
  148. package/lib/commonjs/hooks/useIsChannelMember.js +17 -0
  149. package/lib/commonjs/hooks/useIsChannelMember.js.map +1 -0
  150. package/lib/{module/components/ChannelList → commonjs}/hooks/useIsDirectChat.js +2 -2
  151. package/lib/commonjs/hooks/useIsDirectChat.js.map +1 -0
  152. package/lib/commonjs/hooks/useSyncClientEvents.js +23 -0
  153. package/lib/commonjs/hooks/useSyncClientEvents.js.map +1 -1
  154. package/lib/commonjs/i18n/ar.json +59 -1
  155. package/lib/commonjs/i18n/en.json +59 -1
  156. package/lib/commonjs/i18n/es.json +59 -1
  157. package/lib/commonjs/i18n/fr.json +59 -1
  158. package/lib/commonjs/i18n/he.json +59 -1
  159. package/lib/commonjs/i18n/hi.json +59 -1
  160. package/lib/commonjs/i18n/it.json +59 -1
  161. package/lib/commonjs/i18n/ja.json +59 -1
  162. package/lib/commonjs/i18n/ko.json +59 -1
  163. package/lib/commonjs/i18n/nl.json +59 -1
  164. package/lib/commonjs/i18n/pt-br.json +59 -1
  165. package/lib/commonjs/i18n/ru.json +59 -1
  166. package/lib/commonjs/i18n/tr.json +59 -1
  167. package/lib/commonjs/icons/chevron-right.js +34 -0
  168. package/lib/commonjs/icons/chevron-right.js.map +1 -0
  169. package/lib/commonjs/icons/index.js +24 -0
  170. package/lib/commonjs/icons/index.js.map +1 -1
  171. package/lib/commonjs/icons/x-circle.js +36 -0
  172. package/lib/commonjs/icons/x-circle.js.map +1 -0
  173. package/lib/commonjs/state-store/edit-channel-details-store.js +60 -0
  174. package/lib/commonjs/state-store/edit-channel-details-store.js.map +1 -0
  175. package/lib/commonjs/state-store/selection-store.js +81 -0
  176. package/lib/commonjs/state-store/selection-store.js.map +1 -0
  177. package/lib/commonjs/types/types.js.map +1 -1
  178. package/lib/commonjs/utils/i18n/predefinedFormatters.js +9 -0
  179. package/lib/commonjs/utils/i18n/predefinedFormatters.js.map +1 -1
  180. package/lib/commonjs/version.json +1 -1
  181. package/lib/module/components/ChannelDetails/ChannelDetails.js +100 -0
  182. package/lib/module/components/ChannelDetails/ChannelDetails.js.map +1 -0
  183. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionItem.js +109 -0
  184. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionItem.js.map +1 -0
  185. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionsSection.js +161 -0
  186. package/lib/module/components/ChannelDetails/components/ChannelDetailsActionsSection.js.map +1 -0
  187. package/lib/module/components/ChannelDetails/components/ChannelDetailsMemberSection.js +200 -0
  188. package/lib/module/components/ChannelDetails/components/ChannelDetailsMemberSection.js.map +1 -0
  189. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavHeader.js +133 -0
  190. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavHeader.js.map +1 -0
  191. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavigationSection.js +67 -0
  192. package/lib/module/components/ChannelDetails/components/ChannelDetailsNavigationSection.js.map +1 -0
  193. package/lib/module/components/ChannelDetails/components/ChannelDetailsProfile.js +106 -0
  194. package/lib/module/components/ChannelDetails/components/ChannelDetailsProfile.js.map +1 -0
  195. package/lib/module/components/ChannelDetails/components/ChannelEditDetails.js +119 -0
  196. package/lib/module/components/ChannelDetails/components/ChannelEditDetails.js.map +1 -0
  197. package/lib/module/components/ChannelDetails/components/ChannelEditDetailsModal.js +152 -0
  198. package/lib/module/components/ChannelDetails/components/ChannelEditDetailsModal.js.map +1 -0
  199. package/lib/module/components/ChannelDetails/components/ChannelEditImageSheet.js +175 -0
  200. package/lib/module/components/ChannelDetails/components/ChannelEditImageSheet.js.map +1 -0
  201. package/lib/module/components/ChannelDetails/components/ChannelEditName.js +44 -0
  202. package/lib/module/components/ChannelDetails/components/ChannelEditName.js.map +1 -0
  203. package/lib/module/components/ChannelDetails/components/index.js +125 -0
  204. package/lib/module/components/ChannelDetails/components/index.js.map +1 -0
  205. package/lib/module/components/ChannelDetails/components/members/AddMemberSearchResultItem.js +123 -0
  206. package/lib/module/components/ChannelDetails/components/members/AddMemberSearchResultItem.js.map +1 -0
  207. package/lib/module/components/ChannelDetails/components/members/ChannelAddMembers.js +131 -0
  208. package/lib/module/components/ChannelDetails/components/members/ChannelAddMembers.js.map +1 -0
  209. package/lib/module/components/ChannelDetails/components/members/ChannelAddMembersModal.js +133 -0
  210. package/lib/module/components/ChannelDetails/components/members/ChannelAddMembersModal.js.map +1 -0
  211. package/lib/module/components/ChannelDetails/components/members/ChannelAllMembersModal.js +85 -0
  212. package/lib/module/components/ChannelDetails/components/members/ChannelAllMembersModal.js.map +1 -0
  213. package/lib/module/components/ChannelDetails/components/members/ChannelMemberActionsSheet.js +87 -0
  214. package/lib/module/components/ChannelDetails/components/members/ChannelMemberActionsSheet.js.map +1 -0
  215. package/lib/module/components/ChannelDetails/components/members/ChannelMemberItem.js +169 -0
  216. package/lib/module/components/ChannelDetails/components/members/ChannelMemberItem.js.map +1 -0
  217. package/lib/module/components/ChannelDetails/components/members/ChannelMemberList.js +72 -0
  218. package/lib/module/components/ChannelDetails/components/members/ChannelMemberList.js.map +1 -0
  219. package/lib/module/components/ChannelDetails/components/members/MemberListLoadingSkeleton.js +21 -0
  220. package/lib/module/components/ChannelDetails/components/members/MemberListLoadingSkeleton.js.map +1 -0
  221. package/lib/module/components/ChannelDetails/components/members/UserListLoadingSkeleton.js +21 -0
  222. package/lib/module/components/ChannelDetails/components/members/UserListLoadingSkeleton.js.map +1 -0
  223. package/lib/module/components/ChannelDetails/components/members/index.js +103 -0
  224. package/lib/module/components/ChannelDetails/components/members/index.js.map +1 -0
  225. package/lib/module/components/ChannelDetails/components/modal/Modal.js +49 -0
  226. package/lib/module/components/ChannelDetails/components/modal/Modal.js.map +1 -0
  227. package/lib/module/components/ChannelDetails/components/modal/ModalHeader.js +85 -0
  228. package/lib/module/components/ChannelDetails/components/modal/ModalHeader.js.map +1 -0
  229. package/lib/module/components/ChannelDetails/hooks/index.js +70 -0
  230. package/lib/module/components/ChannelDetails/hooks/index.js.map +1 -0
  231. package/lib/module/components/ChannelDetails/hooks/members/index.js +26 -0
  232. package/lib/module/components/ChannelDetails/hooks/members/index.js.map +1 -0
  233. package/lib/module/components/ChannelDetails/hooks/members/useChannelAllMembers.js +139 -0
  234. package/lib/module/components/ChannelDetails/hooks/members/useChannelAllMembers.js.map +1 -0
  235. package/lib/module/components/ChannelDetails/hooks/members/useMemberRoleLabel.js +33 -0
  236. package/lib/module/components/ChannelDetails/hooks/members/useMemberRoleLabel.js.map +1 -0
  237. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +34 -0
  238. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -0
  239. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.js +32 -0
  240. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.js.map +1 -0
  241. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.js +23 -0
  242. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.js.map +1 -0
  243. package/lib/module/components/ChannelDetails/hooks/useEditChannelImage.js +70 -0
  244. package/lib/module/components/ChannelDetails/hooks/useEditChannelImage.js.map +1 -0
  245. package/lib/module/components/ChannelDetails/hooks/useUserActivityStatus.js +29 -0
  246. package/lib/module/components/ChannelDetails/hooks/useUserActivityStatus.js.map +1 -0
  247. package/lib/module/components/ChannelDetails/index.js +37 -0
  248. package/lib/module/components/ChannelDetails/index.js.map +1 -0
  249. package/lib/module/components/ChannelList/hooks/index.js +0 -66
  250. package/lib/module/components/ChannelList/hooks/index.js.map +1 -1
  251. package/lib/module/components/ChannelList/hooks/useMutedUsers.js +3 -4
  252. package/lib/module/components/ChannelList/hooks/useMutedUsers.js.map +1 -1
  253. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -7
  254. package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
  255. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +20 -27
  256. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  257. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  258. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  259. package/lib/module/components/Message/hooks/useUserMuteActive.js +1 -3
  260. package/lib/module/components/Message/hooks/useUserMuteActive.js.map +1 -1
  261. package/lib/module/components/Notifications/notificationTarget.js +1 -1
  262. package/lib/module/components/Notifications/notificationTarget.js.map +1 -1
  263. package/lib/module/components/UIComponents/BottomSheetModal.js +46 -7
  264. package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
  265. package/lib/module/components/UIComponents/EmptySearchResult.js +56 -0
  266. package/lib/module/components/UIComponents/EmptySearchResult.js.map +1 -0
  267. package/lib/module/components/UIComponents/GenericListLoadingSkeleton.js +109 -0
  268. package/lib/module/components/UIComponents/GenericListLoadingSkeleton.js.map +1 -0
  269. package/lib/module/components/UIComponents/SearchInput.js +88 -0
  270. package/lib/module/components/UIComponents/SearchInput.js.map +1 -0
  271. package/lib/module/components/UIComponents/SelectionCircle.js +53 -0
  272. package/lib/module/components/UIComponents/SelectionCircle.js.map +1 -0
  273. package/lib/module/components/UIComponents/index.js +33 -0
  274. package/lib/module/components/UIComponents/index.js.map +1 -1
  275. package/lib/module/components/index.js +11 -0
  276. package/lib/module/components/index.js.map +1 -1
  277. package/lib/module/components/ui/Avatar/ChannelAvatar.js +16 -7
  278. package/lib/module/components/ui/Avatar/ChannelAvatar.js.map +1 -1
  279. package/lib/module/components/ui/Input/Input.js +5 -5
  280. package/lib/module/components/ui/Input/Input.js.map +1 -1
  281. package/lib/module/contexts/bottomSheetContext/BottomSheetContext.js.map +1 -1
  282. package/lib/module/contexts/channelAddMembersContext/ChannelAddMembersContext.js +69 -0
  283. package/lib/module/contexts/channelAddMembersContext/ChannelAddMembersContext.js.map +1 -0
  284. package/lib/module/contexts/channelDetailsContext/channelDetailsContext.js +28 -0
  285. package/lib/module/contexts/channelDetailsContext/channelDetailsContext.js.map +1 -0
  286. package/lib/module/contexts/channelDetailsContext/index.js +15 -0
  287. package/lib/module/contexts/channelDetailsContext/index.js.map +1 -0
  288. package/lib/module/contexts/channelEditDetailsContext/ChannelEditDetailsContext.js +38 -0
  289. package/lib/module/contexts/channelEditDetailsContext/ChannelEditDetailsContext.js.map +1 -0
  290. package/lib/module/contexts/channelEditDetailsContext/index.js +15 -0
  291. package/lib/module/contexts/channelEditDetailsContext/index.js.map +1 -0
  292. package/lib/module/contexts/componentsContext/defaultComponents.js +15 -0
  293. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  294. package/lib/module/contexts/index.js +33 -0
  295. package/lib/module/contexts/index.js.map +1 -1
  296. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -0
  297. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -1
  298. package/lib/module/contexts/themeContext/utils/theme.js +92 -0
  299. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  300. package/lib/module/hooks/actions/index.js +59 -0
  301. package/lib/module/hooks/actions/index.js.map +1 -0
  302. package/lib/module/hooks/actions/types.js +4 -0
  303. package/lib/module/hooks/actions/types.js.map +1 -0
  304. package/lib/module/{components/ChannelList/hooks → hooks/actions}/useChannelActionItems.js +50 -21
  305. package/lib/module/hooks/actions/useChannelActionItems.js.map +1 -0
  306. package/lib/module/hooks/actions/useChannelActionItemsById.js.map +1 -0
  307. package/lib/module/hooks/actions/useChannelActions.js +792 -0
  308. package/lib/module/hooks/actions/useChannelActions.js.map +1 -0
  309. package/lib/module/hooks/actions/useChannelMemberActionItems.js +148 -0
  310. package/lib/module/hooks/actions/useChannelMemberActionItems.js.map +1 -0
  311. package/lib/module/hooks/actions/useUserActions.js +199 -0
  312. package/lib/module/hooks/actions/useUserActions.js.map +1 -0
  313. package/lib/module/hooks/index.js +99 -0
  314. package/lib/module/hooks/index.js.map +1 -1
  315. package/lib/module/hooks/useChannelImage.js +15 -0
  316. package/lib/module/hooks/useChannelImage.js.map +1 -0
  317. package/lib/module/hooks/useChannelMemberCount.js +15 -0
  318. package/lib/module/hooks/useChannelMemberCount.js.map +1 -0
  319. package/lib/module/{components/ChannelList/hooks → hooks}/useChannelMembershipState.js +1 -1
  320. package/lib/module/hooks/useChannelMembershipState.js.map +1 -0
  321. package/lib/module/hooks/useChannelMuteActive.js +21 -0
  322. package/lib/module/hooks/useChannelMuteActive.js.map +1 -0
  323. package/lib/module/hooks/useChannelName.js +15 -0
  324. package/lib/module/hooks/useChannelName.js.map +1 -0
  325. package/lib/module/hooks/useChannelOwnCapabilities.js +15 -0
  326. package/lib/module/hooks/useChannelOwnCapabilities.js.map +1 -0
  327. package/lib/module/hooks/useIsChannelMember.js +17 -0
  328. package/lib/module/hooks/useIsChannelMember.js.map +1 -0
  329. package/lib/{commonjs/components/ChannelList → module}/hooks/useIsDirectChat.js +2 -2
  330. package/lib/module/hooks/useIsDirectChat.js.map +1 -0
  331. package/lib/module/hooks/useSyncClientEvents.js +23 -0
  332. package/lib/module/hooks/useSyncClientEvents.js.map +1 -1
  333. package/lib/module/i18n/ar.json +59 -1
  334. package/lib/module/i18n/en.json +59 -1
  335. package/lib/module/i18n/es.json +59 -1
  336. package/lib/module/i18n/fr.json +59 -1
  337. package/lib/module/i18n/he.json +59 -1
  338. package/lib/module/i18n/hi.json +59 -1
  339. package/lib/module/i18n/it.json +59 -1
  340. package/lib/module/i18n/ja.json +59 -1
  341. package/lib/module/i18n/ko.json +59 -1
  342. package/lib/module/i18n/nl.json +59 -1
  343. package/lib/module/i18n/pt-br.json +59 -1
  344. package/lib/module/i18n/ru.json +59 -1
  345. package/lib/module/i18n/tr.json +59 -1
  346. package/lib/module/icons/chevron-right.js +34 -0
  347. package/lib/module/icons/chevron-right.js.map +1 -0
  348. package/lib/module/icons/index.js +24 -0
  349. package/lib/module/icons/index.js.map +1 -1
  350. package/lib/module/icons/x-circle.js +36 -0
  351. package/lib/module/icons/x-circle.js.map +1 -0
  352. package/lib/module/state-store/edit-channel-details-store.js +60 -0
  353. package/lib/module/state-store/edit-channel-details-store.js.map +1 -0
  354. package/lib/module/state-store/selection-store.js +81 -0
  355. package/lib/module/state-store/selection-store.js.map +1 -0
  356. package/lib/module/types/types.js.map +1 -1
  357. package/lib/module/utils/i18n/predefinedFormatters.js +9 -0
  358. package/lib/module/utils/i18n/predefinedFormatters.js.map +1 -1
  359. package/lib/module/version.json +1 -1
  360. package/lib/typescript/components/ChannelDetails/ChannelDetails.d.ts +93 -0
  361. package/lib/typescript/components/ChannelDetails/ChannelDetails.d.ts.map +1 -0
  362. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsActionItem.d.ts +15 -0
  363. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsActionItem.d.ts.map +1 -0
  364. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsActionsSection.d.ts +6 -0
  365. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsActionsSection.d.ts.map +1 -0
  366. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsMemberSection.d.ts +6 -0
  367. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsMemberSection.d.ts.map +1 -0
  368. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavHeader.d.ts +10 -0
  369. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavHeader.d.ts.map +1 -0
  370. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavigationSection.d.ts +6 -0
  371. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsNavigationSection.d.ts.map +1 -0
  372. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsProfile.d.ts +6 -0
  373. package/lib/typescript/components/ChannelDetails/components/ChannelDetailsProfile.d.ts.map +1 -0
  374. package/lib/typescript/components/ChannelDetails/components/ChannelEditDetails.d.ts +6 -0
  375. package/lib/typescript/components/ChannelDetails/components/ChannelEditDetails.d.ts.map +1 -0
  376. package/lib/typescript/components/ChannelDetails/components/ChannelEditDetailsModal.d.ts +18 -0
  377. package/lib/typescript/components/ChannelDetails/components/ChannelEditDetailsModal.d.ts.map +1 -0
  378. package/lib/typescript/components/ChannelDetails/components/ChannelEditImageSheet.d.ts +10 -0
  379. package/lib/typescript/components/ChannelDetails/components/ChannelEditImageSheet.d.ts.map +1 -0
  380. package/lib/typescript/components/ChannelDetails/components/ChannelEditName.d.ts +6 -0
  381. package/lib/typescript/components/ChannelDetails/components/ChannelEditName.d.ts.map +1 -0
  382. package/lib/typescript/components/ChannelDetails/components/index.d.ts +12 -0
  383. package/lib/typescript/components/ChannelDetails/components/index.d.ts.map +1 -0
  384. package/lib/typescript/components/ChannelDetails/components/members/AddMemberSearchResultItem.d.ts +11 -0
  385. package/lib/typescript/components/ChannelDetails/components/members/AddMemberSearchResultItem.d.ts.map +1 -0
  386. package/lib/typescript/components/ChannelDetails/components/members/ChannelAddMembers.d.ts +17 -0
  387. package/lib/typescript/components/ChannelDetails/components/members/ChannelAddMembers.d.ts.map +1 -0
  388. package/lib/typescript/components/ChannelDetails/components/members/ChannelAddMembersModal.d.ts +18 -0
  389. package/lib/typescript/components/ChannelDetails/components/members/ChannelAddMembersModal.d.ts.map +1 -0
  390. package/lib/typescript/components/ChannelDetails/components/members/ChannelAllMembersModal.d.ts +17 -0
  391. package/lib/typescript/components/ChannelDetails/components/members/ChannelAllMembersModal.d.ts.map +1 -0
  392. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberActionsSheet.d.ts +12 -0
  393. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberActionsSheet.d.ts.map +1 -0
  394. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberItem.d.ts +20 -0
  395. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberItem.d.ts.map +1 -0
  396. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberList.d.ts +18 -0
  397. package/lib/typescript/components/ChannelDetails/components/members/ChannelMemberList.d.ts.map +1 -0
  398. package/lib/typescript/components/ChannelDetails/components/members/MemberListLoadingSkeleton.d.ts +9 -0
  399. package/lib/typescript/components/ChannelDetails/components/members/MemberListLoadingSkeleton.d.ts.map +1 -0
  400. package/lib/typescript/components/ChannelDetails/components/members/UserListLoadingSkeleton.d.ts +9 -0
  401. package/lib/typescript/components/ChannelDetails/components/members/UserListLoadingSkeleton.d.ts.map +1 -0
  402. package/lib/typescript/components/ChannelDetails/components/members/index.d.ts +10 -0
  403. package/lib/typescript/components/ChannelDetails/components/members/index.d.ts.map +1 -0
  404. package/lib/typescript/components/ChannelDetails/components/modal/Modal.d.ts +12 -0
  405. package/lib/typescript/components/ChannelDetails/components/modal/Modal.d.ts.map +1 -0
  406. package/lib/typescript/components/ChannelDetails/components/modal/ModalHeader.d.ts +12 -0
  407. package/lib/typescript/components/ChannelDetails/components/modal/ModalHeader.d.ts.map +1 -0
  408. package/lib/typescript/components/ChannelDetails/hooks/index.d.ts +7 -0
  409. package/lib/typescript/components/ChannelDetails/hooks/index.d.ts.map +1 -0
  410. package/lib/typescript/components/ChannelDetails/hooks/members/index.d.ts +3 -0
  411. package/lib/typescript/components/ChannelDetails/hooks/members/index.d.ts.map +1 -0
  412. package/lib/typescript/components/ChannelDetails/hooks/members/useChannelAllMembers.d.ts +14 -0
  413. package/lib/typescript/components/ChannelDetails/hooks/members/useChannelAllMembers.d.ts.map +1 -0
  414. package/lib/typescript/components/ChannelDetails/hooks/members/useMemberRoleLabel.d.ts +10 -0
  415. package/lib/typescript/components/ChannelDetails/hooks/members/useMemberRoleLabel.d.ts.map +1 -0
  416. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsActionItems.d.ts +6 -0
  417. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsActionItems.d.ts.map +1 -0
  418. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.d.ts +9 -0
  419. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.d.ts.map +1 -0
  420. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.d.ts +12 -0
  421. package/lib/typescript/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.d.ts.map +1 -0
  422. package/lib/typescript/components/ChannelDetails/hooks/useEditChannelImage.d.ts +29 -0
  423. package/lib/typescript/components/ChannelDetails/hooks/useEditChannelImage.d.ts.map +1 -0
  424. package/lib/typescript/components/ChannelDetails/hooks/useUserActivityStatus.d.ts +14 -0
  425. package/lib/typescript/components/ChannelDetails/hooks/useUserActivityStatus.d.ts.map +1 -0
  426. package/lib/typescript/components/ChannelDetails/index.d.ts +4 -0
  427. package/lib/typescript/components/ChannelDetails/index.d.ts.map +1 -0
  428. package/lib/typescript/components/ChannelList/hooks/index.d.ts +0 -6
  429. package/lib/typescript/components/ChannelList/hooks/index.d.ts.map +1 -1
  430. package/lib/typescript/components/ChannelList/hooks/useMutedUsers.d.ts +7 -2
  431. package/lib/typescript/components/ChannelList/hooks/useMutedUsers.d.ts.map +1 -1
  432. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts +1 -1
  433. package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts.map +1 -1
  434. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts +1 -1
  435. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
  436. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayName.d.ts.map +1 -1
  437. package/lib/typescript/components/Message/hooks/useUserMuteActive.d.ts.map +1 -1
  438. package/lib/typescript/components/Notifications/notificationTarget.d.ts +1 -1
  439. package/lib/typescript/components/Notifications/notificationTarget.d.ts.map +1 -1
  440. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts +1 -1
  441. package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
  442. package/lib/typescript/components/UIComponents/EmptySearchResult.d.ts +12 -0
  443. package/lib/typescript/components/UIComponents/EmptySearchResult.d.ts.map +1 -0
  444. package/lib/typescript/components/UIComponents/GenericListLoadingSkeleton.d.ts +15 -0
  445. package/lib/typescript/components/UIComponents/GenericListLoadingSkeleton.d.ts.map +1 -0
  446. package/lib/typescript/components/UIComponents/SearchInput.d.ts +11 -0
  447. package/lib/typescript/components/UIComponents/SearchInput.d.ts.map +1 -0
  448. package/lib/typescript/components/UIComponents/SelectionCircle.d.ts +12 -0
  449. package/lib/typescript/components/UIComponents/SelectionCircle.d.ts.map +1 -0
  450. package/lib/typescript/components/UIComponents/index.d.ts +3 -0
  451. package/lib/typescript/components/UIComponents/index.d.ts.map +1 -1
  452. package/lib/typescript/components/index.d.ts +1 -0
  453. package/lib/typescript/components/index.d.ts.map +1 -1
  454. package/lib/typescript/components/ui/Avatar/ChannelAvatar.d.ts +11 -0
  455. package/lib/typescript/components/ui/Avatar/ChannelAvatar.d.ts.map +1 -1
  456. package/lib/typescript/components/ui/Input/Input.d.ts +14 -2
  457. package/lib/typescript/components/ui/Input/Input.d.ts.map +1 -1
  458. package/lib/typescript/contexts/bottomSheetContext/BottomSheetContext.d.ts +25 -0
  459. package/lib/typescript/contexts/bottomSheetContext/BottomSheetContext.d.ts.map +1 -1
  460. package/lib/typescript/contexts/channelAddMembersContext/ChannelAddMembersContext.d.ts +20 -0
  461. package/lib/typescript/contexts/channelAddMembersContext/ChannelAddMembersContext.d.ts.map +1 -0
  462. package/lib/typescript/contexts/channelDetailsContext/channelDetailsContext.d.ts +18 -0
  463. package/lib/typescript/contexts/channelDetailsContext/channelDetailsContext.d.ts.map +1 -0
  464. package/lib/typescript/contexts/channelDetailsContext/index.d.ts +2 -0
  465. package/lib/typescript/contexts/channelDetailsContext/index.d.ts.map +1 -0
  466. package/lib/typescript/contexts/channelEditDetailsContext/ChannelEditDetailsContext.d.ts +26 -0
  467. package/lib/typescript/contexts/channelEditDetailsContext/ChannelEditDetailsContext.d.ts.map +1 -0
  468. package/lib/typescript/contexts/channelEditDetailsContext/index.d.ts +2 -0
  469. package/lib/typescript/contexts/channelEditDetailsContext/index.d.ts.map +1 -0
  470. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
  471. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts.map +1 -1
  472. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +14 -0
  473. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  474. package/lib/typescript/contexts/index.d.ts +3 -0
  475. package/lib/typescript/contexts/index.d.ts.map +1 -1
  476. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +1 -0
  477. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts.map +1 -1
  478. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +92 -0
  479. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts.map +1 -1
  480. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +92 -0
  481. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  482. package/lib/typescript/hooks/actions/index.d.ts +6 -0
  483. package/lib/typescript/hooks/actions/index.d.ts.map +1 -0
  484. package/lib/typescript/hooks/actions/types.d.ts +16 -0
  485. package/lib/typescript/hooks/actions/types.d.ts.map +1 -0
  486. package/lib/typescript/{components/ChannelList/hooks → hooks/actions}/useChannelActionItems.d.ts +6 -11
  487. package/lib/typescript/hooks/actions/useChannelActionItems.d.ts.map +1 -0
  488. package/lib/typescript/hooks/actions/useChannelActionItemsById.d.ts.map +1 -0
  489. package/lib/typescript/hooks/actions/useChannelActions.d.ts +31 -0
  490. package/lib/typescript/hooks/actions/useChannelActions.d.ts.map +1 -0
  491. package/lib/typescript/hooks/actions/useChannelMemberActionItems.d.ts +32 -0
  492. package/lib/typescript/hooks/actions/useChannelMemberActionItems.d.ts.map +1 -0
  493. package/lib/typescript/hooks/actions/useUserActions.d.ts +12 -0
  494. package/lib/typescript/hooks/actions/useUserActions.d.ts.map +1 -0
  495. package/lib/typescript/hooks/index.d.ts +9 -0
  496. package/lib/typescript/hooks/index.d.ts.map +1 -1
  497. package/lib/typescript/hooks/useChannelImage.d.ts +4 -0
  498. package/lib/typescript/hooks/useChannelImage.d.ts.map +1 -0
  499. package/lib/typescript/hooks/useChannelMemberCount.d.ts +4 -0
  500. package/lib/typescript/hooks/useChannelMemberCount.d.ts.map +1 -0
  501. package/lib/typescript/hooks/useChannelMembershipState.d.ts.map +1 -0
  502. package/lib/typescript/hooks/useChannelMuteActive.d.ts.map +1 -0
  503. package/lib/typescript/hooks/useChannelName.d.ts +4 -0
  504. package/lib/typescript/hooks/useChannelName.d.ts.map +1 -0
  505. package/lib/typescript/hooks/useChannelOwnCapabilities.d.ts +4 -0
  506. package/lib/typescript/hooks/useChannelOwnCapabilities.d.ts.map +1 -0
  507. package/lib/typescript/hooks/useIsChannelMember.d.ts +6 -0
  508. package/lib/typescript/hooks/useIsChannelMember.d.ts.map +1 -0
  509. package/lib/typescript/hooks/useIsDirectChat.d.ts.map +1 -0
  510. package/lib/typescript/hooks/useSyncClientEvents.d.ts +10 -0
  511. package/lib/typescript/hooks/useSyncClientEvents.d.ts.map +1 -1
  512. package/lib/typescript/hooks/useTranslatedMessage.d.ts +4 -0
  513. package/lib/typescript/hooks/useTranslatedMessage.d.ts.map +1 -1
  514. package/lib/typescript/i18n/ar.json +59 -1
  515. package/lib/typescript/i18n/en.json +59 -1
  516. package/lib/typescript/i18n/es.json +59 -1
  517. package/lib/typescript/i18n/fr.json +59 -1
  518. package/lib/typescript/i18n/he.json +59 -1
  519. package/lib/typescript/i18n/hi.json +59 -1
  520. package/lib/typescript/i18n/it.json +59 -1
  521. package/lib/typescript/i18n/ja.json +59 -1
  522. package/lib/typescript/i18n/ko.json +59 -1
  523. package/lib/typescript/i18n/nl.json +59 -1
  524. package/lib/typescript/i18n/pt-br.json +59 -1
  525. package/lib/typescript/i18n/ru.json +59 -1
  526. package/lib/typescript/i18n/tr.json +59 -1
  527. package/lib/typescript/icons/chevron-right.d.ts +4 -0
  528. package/lib/typescript/icons/chevron-right.d.ts.map +1 -0
  529. package/lib/typescript/icons/index.d.ts +2 -0
  530. package/lib/typescript/icons/index.d.ts.map +1 -1
  531. package/lib/typescript/icons/x-circle.d.ts +4 -0
  532. package/lib/typescript/icons/x-circle.d.ts.map +1 -0
  533. package/lib/typescript/state-store/edit-channel-details-store.d.ts +65 -0
  534. package/lib/typescript/state-store/edit-channel-details-store.d.ts.map +1 -0
  535. package/lib/typescript/state-store/selection-store.d.ts +34 -0
  536. package/lib/typescript/state-store/selection-store.d.ts.map +1 -0
  537. package/lib/typescript/types/types.d.ts +7 -1
  538. package/lib/typescript/types/types.d.ts.map +1 -1
  539. package/lib/typescript/utils/i18n/Streami18n.d.ts +59 -1
  540. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  541. package/lib/typescript/utils/i18n/predefinedFormatters.d.ts.map +1 -1
  542. package/lib/typescript/utils/i18n/types.d.ts +1 -0
  543. package/lib/typescript/utils/i18n/types.d.ts.map +1 -1
  544. package/package.json +2 -2
  545. package/src/__tests__/offline-support/offline-feature.tsx +0 -12
  546. package/src/components/ChannelDetails/ChannelDetails.tsx +223 -0
  547. package/src/components/ChannelDetails/__tests__/ChannelDetails.test.tsx +174 -0
  548. package/src/components/ChannelDetails/__tests__/ChannelDetailsActionItem.test.tsx +117 -0
  549. package/src/components/ChannelDetails/__tests__/ChannelDetailsActionsSection.test.tsx +338 -0
  550. package/src/components/ChannelDetails/__tests__/ChannelDetailsMemberSection.test.tsx +298 -0
  551. package/src/components/ChannelDetails/__tests__/ChannelDetailsNavHeader.test.tsx +146 -0
  552. package/src/components/ChannelDetails/__tests__/ChannelDetailsNavigationSection.test.tsx +81 -0
  553. package/src/components/ChannelDetails/__tests__/ChannelDetailsProfile.test.tsx +145 -0
  554. package/src/components/ChannelDetails/__tests__/ChannelEditDetails.test.tsx +316 -0
  555. package/src/components/ChannelDetails/__tests__/ChannelEditDetailsModal.test.tsx +249 -0
  556. package/src/components/ChannelDetails/__tests__/ChannelEditImageSheet.test.tsx +186 -0
  557. package/src/components/ChannelDetails/__tests__/ChannelEditName.test.tsx +89 -0
  558. package/src/components/ChannelDetails/__tests__/members/AddMemberSearchResultItem.test.tsx +121 -0
  559. package/src/components/ChannelDetails/__tests__/members/ChannelAddMembers.test.tsx +227 -0
  560. package/src/components/ChannelDetails/__tests__/members/ChannelAddMembersModal.test.tsx +216 -0
  561. package/src/components/ChannelDetails/__tests__/members/ChannelAllMembersModal.test.tsx +159 -0
  562. package/src/components/ChannelDetails/__tests__/members/ChannelMemberActionsSheet.test.tsx +194 -0
  563. package/src/components/ChannelDetails/__tests__/members/ChannelMemberItem.test.tsx +200 -0
  564. package/src/components/ChannelDetails/__tests__/members/ChannelMemberList.test.tsx +249 -0
  565. package/src/components/ChannelDetails/__tests__/members/useChannelAllMembers.test.tsx +234 -0
  566. package/src/components/ChannelDetails/__tests__/members/useMemberRoleLabel.test.tsx +130 -0
  567. package/src/components/ChannelDetails/__tests__/useChannelDetailsActionItems.test.tsx +173 -0
  568. package/src/components/ChannelDetails/__tests__/useChannelDetailsMemberStatusText.test.tsx +117 -0
  569. package/src/components/ChannelDetails/__tests__/useChannelDetailsMembersPreview.test.tsx +76 -0
  570. package/src/components/ChannelDetails/__tests__/useEditChannelImage.test.tsx +235 -0
  571. package/src/components/ChannelDetails/__tests__/useUserActivityStatus.test.tsx +69 -0
  572. package/src/components/ChannelDetails/components/ChannelDetailsActionItem.tsx +129 -0
  573. package/src/components/ChannelDetails/components/ChannelDetailsActionsSection.tsx +180 -0
  574. package/src/components/ChannelDetails/components/ChannelDetailsMemberSection.tsx +203 -0
  575. package/src/components/ChannelDetails/components/ChannelDetailsNavHeader.tsx +141 -0
  576. package/src/components/ChannelDetails/components/ChannelDetailsNavigationSection.tsx +78 -0
  577. package/src/components/ChannelDetails/components/ChannelDetailsProfile.tsx +114 -0
  578. package/src/components/ChannelDetails/components/ChannelEditDetails.tsx +121 -0
  579. package/src/components/ChannelDetails/components/ChannelEditDetailsModal.tsx +152 -0
  580. package/src/components/ChannelDetails/components/ChannelEditImageSheet.tsx +224 -0
  581. package/src/components/ChannelDetails/components/ChannelEditName.tsx +52 -0
  582. package/src/components/ChannelDetails/components/index.ts +11 -0
  583. package/src/components/ChannelDetails/components/members/AddMemberSearchResultItem.tsx +136 -0
  584. package/src/components/ChannelDetails/components/members/ChannelAddMembers.tsx +148 -0
  585. package/src/components/ChannelDetails/components/members/ChannelAddMembersModal.tsx +126 -0
  586. package/src/components/ChannelDetails/components/members/ChannelAllMembersModal.tsx +92 -0
  587. package/src/components/ChannelDetails/components/members/ChannelMemberActionsSheet.tsx +105 -0
  588. package/src/components/ChannelDetails/components/members/ChannelMemberItem.tsx +219 -0
  589. package/src/components/ChannelDetails/components/members/ChannelMemberList.tsx +83 -0
  590. package/src/components/ChannelDetails/components/members/MemberListLoadingSkeleton.tsx +22 -0
  591. package/src/components/ChannelDetails/components/members/UserListLoadingSkeleton.tsx +19 -0
  592. package/src/components/ChannelDetails/components/members/index.ts +9 -0
  593. package/src/components/ChannelDetails/components/modal/Modal.tsx +56 -0
  594. package/src/components/ChannelDetails/components/modal/ModalHeader.tsx +89 -0
  595. package/src/components/ChannelDetails/hooks/index.ts +6 -0
  596. package/src/components/ChannelDetails/hooks/members/index.ts +2 -0
  597. package/src/components/ChannelDetails/hooks/members/useChannelAllMembers.ts +131 -0
  598. package/src/components/ChannelDetails/hooks/members/useMemberRoleLabel.ts +32 -0
  599. package/src/components/ChannelDetails/hooks/useChannelDetailsActionItems.ts +37 -0
  600. package/src/components/ChannelDetails/hooks/useChannelDetailsMemberStatusText.ts +36 -0
  601. package/src/components/ChannelDetails/hooks/useChannelDetailsMembersPreview.ts +35 -0
  602. package/src/components/ChannelDetails/hooks/useEditChannelImage.ts +91 -0
  603. package/src/components/ChannelDetails/hooks/useUserActivityStatus.ts +39 -0
  604. package/src/components/ChannelDetails/index.ts +3 -0
  605. package/src/components/ChannelList/hooks/index.ts +0 -6
  606. package/src/components/ChannelList/hooks/useMutedUsers.ts +12 -6
  607. package/src/components/ChannelPreview/ChannelDetailsBottomSheet.tsx +4 -7
  608. package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +28 -34
  609. package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +1 -1
  610. package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +44 -79
  611. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -2
  612. package/src/components/Message/hooks/useUserMuteActive.ts +2 -3
  613. package/src/components/Notifications/notificationTarget.ts +7 -1
  614. package/src/components/UIComponents/BottomSheetModal.tsx +76 -24
  615. package/src/components/UIComponents/EmptySearchResult.tsx +49 -0
  616. package/src/components/UIComponents/GenericListLoadingSkeleton.tsx +121 -0
  617. package/src/components/UIComponents/SearchInput.tsx +93 -0
  618. package/src/components/UIComponents/SelectionCircle.tsx +51 -0
  619. package/src/components/UIComponents/__tests__/EmptySearchResult.test.tsx +74 -0
  620. package/src/components/UIComponents/__tests__/SearchInput.test.tsx +98 -0
  621. package/src/components/UIComponents/__tests__/SelectionCircle.test.tsx +51 -0
  622. package/src/components/UIComponents/index.ts +3 -0
  623. package/src/components/index.ts +1 -0
  624. package/src/components/ui/Avatar/ChannelAvatar.tsx +30 -8
  625. package/src/components/ui/Avatar/__tests__/ChannelAvatar.test.tsx +150 -0
  626. package/src/components/ui/Input/Input.tsx +24 -21
  627. package/src/contexts/bottomSheetContext/BottomSheetContext.tsx +25 -0
  628. package/src/contexts/channelAddMembersContext/ChannelAddMembersContext.tsx +73 -0
  629. package/src/contexts/channelDetailsContext/channelDetailsContext.tsx +43 -0
  630. package/src/contexts/channelDetailsContext/index.ts +1 -0
  631. package/src/contexts/channelEditDetailsContext/ChannelEditDetailsContext.tsx +56 -0
  632. package/src/contexts/channelEditDetailsContext/index.ts +1 -0
  633. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  634. package/src/contexts/componentsContext/defaultComponents.ts +31 -0
  635. package/src/contexts/index.ts +3 -0
  636. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +1 -0
  637. package/src/contexts/themeContext/utils/theme.ts +184 -0
  638. package/src/hooks/__tests__/useChannelMuteActive.test.tsx +149 -0
  639. package/src/hooks/__tests__/useIsChannelMember.test.tsx +73 -0
  640. package/src/{components/ChannelList/hooks → hooks/actions}/__tests__/useChannelActionItems.test.tsx +162 -17
  641. package/src/hooks/actions/__tests__/useChannelActions.test.tsx +728 -0
  642. package/src/hooks/actions/__tests__/useChannelMemberActionItems.test.tsx +372 -0
  643. package/src/hooks/actions/__tests__/useUserActions.test.tsx +251 -0
  644. package/src/hooks/actions/index.ts +5 -0
  645. package/src/hooks/actions/types.ts +20 -0
  646. package/src/{components/ChannelList/hooks → hooks/actions}/useChannelActionItems.tsx +84 -48
  647. package/src/{components/ChannelList/hooks → hooks/actions}/useChannelActions.ts +216 -29
  648. package/src/hooks/actions/useChannelMemberActionItems.tsx +204 -0
  649. package/src/hooks/actions/useUserActions.ts +141 -0
  650. package/src/hooks/index.ts +9 -0
  651. package/src/hooks/useChannelImage.ts +12 -0
  652. package/src/hooks/useChannelMemberCount.ts +12 -0
  653. package/src/{components/ChannelList/hooks → hooks}/useChannelMembershipState.ts +1 -1
  654. package/src/hooks/useChannelMuteActive.ts +25 -0
  655. package/src/hooks/useChannelName.ts +12 -0
  656. package/src/hooks/useChannelOwnCapabilities.ts +12 -0
  657. package/src/hooks/useIsChannelMember.ts +20 -0
  658. package/src/{components/ChannelList/hooks → hooks}/useIsDirectChat.ts +2 -3
  659. package/src/hooks/useSyncClientEvents.ts +47 -0
  660. package/src/i18n/ar.json +59 -1
  661. package/src/i18n/en.json +59 -1
  662. package/src/i18n/es.json +59 -1
  663. package/src/i18n/fr.json +59 -1
  664. package/src/i18n/he.json +59 -1
  665. package/src/i18n/hi.json +59 -1
  666. package/src/i18n/it.json +59 -1
  667. package/src/i18n/ja.json +59 -1
  668. package/src/i18n/ko.json +59 -1
  669. package/src/i18n/nl.json +59 -1
  670. package/src/i18n/pt-br.json +59 -1
  671. package/src/i18n/ru.json +59 -1
  672. package/src/i18n/tr.json +59 -1
  673. package/src/icons/chevron-right.tsx +20 -0
  674. package/src/icons/index.ts +2 -0
  675. package/src/icons/x-circle.tsx +20 -0
  676. package/src/state-store/__tests__/edit-channel-details-store.test.ts +205 -0
  677. package/src/state-store/__tests__/selection-store.test.ts +183 -0
  678. package/src/state-store/edit-channel-details-store.ts +106 -0
  679. package/src/state-store/selection-store.ts +91 -0
  680. package/src/types/types.ts +8 -0
  681. package/src/utils/i18n/predefinedFormatters.ts +10 -0
  682. package/src/utils/i18n/types.ts +1 -0
  683. package/src/version.json +1 -1
  684. package/lib/commonjs/components/ChannelList/hooks/useChannelActionItems.js.map +0 -1
  685. package/lib/commonjs/components/ChannelList/hooks/useChannelActionItemsById.js.map +0 -1
  686. package/lib/commonjs/components/ChannelList/hooks/useChannelActions.js +0 -479
  687. package/lib/commonjs/components/ChannelList/hooks/useChannelActions.js.map +0 -1
  688. package/lib/commonjs/components/ChannelList/hooks/useChannelMembershipState.js.map +0 -1
  689. package/lib/commonjs/components/ChannelList/hooks/useChannelMuteActive.js +0 -16
  690. package/lib/commonjs/components/ChannelList/hooks/useChannelMuteActive.js.map +0 -1
  691. package/lib/commonjs/components/ChannelList/hooks/useIsDirectChat.js.map +0 -1
  692. package/lib/module/components/ChannelList/hooks/useChannelActionItems.js.map +0 -1
  693. package/lib/module/components/ChannelList/hooks/useChannelActionItemsById.js.map +0 -1
  694. package/lib/module/components/ChannelList/hooks/useChannelActions.js +0 -479
  695. package/lib/module/components/ChannelList/hooks/useChannelActions.js.map +0 -1
  696. package/lib/module/components/ChannelList/hooks/useChannelMembershipState.js.map +0 -1
  697. package/lib/module/components/ChannelList/hooks/useChannelMuteActive.js +0 -16
  698. package/lib/module/components/ChannelList/hooks/useChannelMuteActive.js.map +0 -1
  699. package/lib/module/components/ChannelList/hooks/useIsDirectChat.js.map +0 -1
  700. package/lib/typescript/components/ChannelList/hooks/useChannelActionItems.d.ts.map +0 -1
  701. package/lib/typescript/components/ChannelList/hooks/useChannelActionItemsById.d.ts.map +0 -1
  702. package/lib/typescript/components/ChannelList/hooks/useChannelActions.d.ts +0 -18
  703. package/lib/typescript/components/ChannelList/hooks/useChannelActions.d.ts.map +0 -1
  704. package/lib/typescript/components/ChannelList/hooks/useChannelMembershipState.d.ts.map +0 -1
  705. package/lib/typescript/components/ChannelList/hooks/useChannelMuteActive.d.ts.map +0 -1
  706. package/lib/typescript/components/ChannelList/hooks/useIsDirectChat.d.ts.map +0 -1
  707. package/src/components/ChannelList/hooks/__tests__/useChannelActions.test.tsx +0 -123
  708. package/src/components/ChannelList/hooks/useChannelMuteActive.ts +0 -18
  709. /package/lib/commonjs/{components/ChannelList/hooks → hooks/actions}/useChannelActionItemsById.js +0 -0
  710. /package/lib/module/{components/ChannelList/hooks → hooks/actions}/useChannelActionItemsById.js +0 -0
  711. /package/lib/typescript/{components/ChannelList/hooks → hooks/actions}/useChannelActionItemsById.d.ts +0 -0
  712. /package/lib/typescript/{components/ChannelList/hooks → hooks}/useChannelMembershipState.d.ts +0 -0
  713. /package/lib/typescript/{components/ChannelList/hooks → hooks}/useChannelMuteActive.d.ts +0 -0
  714. /package/lib/typescript/{components/ChannelList/hooks → hooks}/useIsDirectChat.d.ts +0 -0
  715. /package/src/{components/ChannelList/hooks → hooks/actions}/__tests__/useChannelActionItemsById.test.tsx +0 -0
  716. /package/src/{components/ChannelList/hooks → hooks/actions}/useChannelActionItemsById.ts +0 -0
@@ -1,39 +1,42 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { Alert } from 'react-native';
3
3
 
4
- import type { Channel } from 'stream-chat';
4
+ import type { BlockedUsersState, Channel } from 'stream-chat';
5
5
 
6
- import { ChannelActions, getOtherUserInDirectChannel } from './useChannelActions';
7
- import { useChannelActions } from './useChannelActions';
8
- import { useChannelMembershipState } from './useChannelMembershipState';
6
+ import type { ActionItem } from './types';
7
+ import {
8
+ ChannelActionHandler,
9
+ ChannelActions,
10
+ getOtherUserInDirectChannel,
11
+ useChannelActions,
12
+ } from './useChannelActions';
9
13
 
10
- import { useChannelMuteActive } from './useChannelMuteActive';
11
- import { useIsDirectChat } from './useIsDirectChat';
14
+ import { useIsChannelMuted } from '../../components/ChannelPreview/hooks/useIsChannelMuted';
15
+ import { useUserMuteActive } from '../../components/Message/hooks/useUserMuteActive';
16
+ import { useTheme, useTranslationContext } from '../../contexts';
17
+ import type { TranslationContextValue } from '../../contexts/translationContext/TranslationContext';
18
+ import { IconProps, Mute, BlockUser, Delete, Sound } from '../../icons';
19
+ import { ArrowBoxLeft } from '../../icons/leave';
20
+ import { useChannelMembershipState } from '../useChannelMembershipState';
21
+ import { useIsDirectChat } from '../useIsDirectChat';
22
+ import { useStateStore } from '../useStateStore';
12
23
 
13
- import { useTheme, useTranslationContext } from '../../../contexts';
14
- import type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';
15
- import { IconProps, Mute, BlockUser, Delete, Sound } from '../../../icons';
16
- import { ArrowBoxLeft } from '../../../icons/leave';
17
-
18
- export type ChannelActionHandler = () => Promise<void> | void;
19
-
20
- export type ChannelActionItem = {
21
- action: ChannelActionHandler;
22
- Icon: React.ComponentType<IconProps>;
23
- id: 'mute' | 'block' | 'archive' | 'leave' | 'deleteChannel' | string;
24
- label: string;
24
+ export type ChannelActionItem = ActionItem<
25
+ 'mute' | 'muteUser' | 'block' | 'leave' | 'deleteChannel' | string
26
+ > & {
25
27
  placement: 'both' | 'sheet' | 'swipe';
26
- type: 'destructive' | 'standard';
27
28
  };
28
29
 
29
30
  export type ChannelActionItemsParams = {
30
31
  actions: ChannelActions;
31
32
  channel: Channel;
33
+ channelMuteActive: boolean;
32
34
  isArchived: boolean;
35
+ isBlocked: boolean | undefined;
33
36
  isDirectChat: boolean;
34
37
  isPinned: boolean;
35
- muteActive: boolean;
36
38
  t: TranslationContextValue['t'];
39
+ userMuteActive: boolean;
37
40
  };
38
41
 
39
42
  export type BuildDefaultChannelActionItems = (
@@ -65,32 +68,20 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
65
68
  blockUser,
66
69
  unblockUser,
67
70
  },
71
+ channelMuteActive,
72
+ isBlocked,
68
73
  isDirectChat,
69
- muteActive,
74
+ userMuteActive,
70
75
  t,
71
76
  channel,
72
77
  } = channelActionItemsParams;
73
78
  const ownUserId = channel.getClient().userID;
74
79
 
75
- const client = channel.getClient();
76
-
77
- const isBlocked = isDirectChat
78
- ? new Set(client.blockedUsers.getLatestValue().userIds).has(
79
- getOtherUserInDirectChannel(channel)?.user?.id ?? '',
80
- )
81
- : undefined;
82
-
83
80
  const actionItems: ChannelActionItem[] = [
84
81
  {
85
- action: isDirectChat
86
- ? muteActive
87
- ? unmuteUser
88
- : muteUser
89
- : muteActive
90
- ? unmuteChannel
91
- : muteChannel,
82
+ action: channelMuteActive ? unmuteChannel : muteChannel,
92
83
  Icon: (props) =>
93
- muteActive ? (
84
+ channelMuteActive ? (
94
85
  <Sound width={20} height={20} {...props} />
95
86
  ) : (
96
87
  <Mute
@@ -103,25 +94,44 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
103
94
  ),
104
95
  id: 'mute',
105
96
  label: isDirectChat
106
- ? muteActive
107
- ? t('Unmute User')
108
- : t('Mute User')
109
- : muteActive
97
+ ? channelMuteActive
98
+ ? t('Unmute Chat')
99
+ : t('Mute Chat')
100
+ : channelMuteActive
110
101
  ? t('Unmute Group')
111
102
  : t('Mute Group'),
112
- placement: isDirectChat ? 'sheet' : 'swipe',
103
+ placement: 'swipe',
113
104
  type: 'standard',
114
105
  },
115
106
  ];
116
107
 
117
108
  if (isDirectChat) {
109
+ actionItems.push({
110
+ action: userMuteActive ? unmuteUser : muteUser,
111
+ Icon: (props) =>
112
+ userMuteActive ? (
113
+ <ChannelActionsIcon Icon={Sound} {...props} />
114
+ ) : (
115
+ <ChannelActionsIcon
116
+ Icon={Mute}
117
+ {...props}
118
+ fill={props.fill ?? props.stroke}
119
+ stroke={undefined}
120
+ />
121
+ ),
122
+ id: 'muteUser',
123
+ label: userMuteActive ? t('Unmute User') : t('Mute User'),
124
+ placement: 'sheet',
125
+ type: 'standard',
126
+ });
127
+
118
128
  actionItems.push({
119
129
  action: isBlocked ? unblockUser : blockUser,
120
130
  Icon: (props) => <ChannelActionsIcon Icon={BlockUser} {...props} />,
121
131
  id: 'block',
122
132
  label: isBlocked ? t('Unblock User') : t('Block User'),
123
133
  placement: 'sheet',
124
- type: 'standard',
134
+ type: isBlocked ? 'standard' : 'destructive',
125
135
  });
126
136
  }
127
137
 
@@ -136,7 +146,7 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
136
146
 
137
147
  if (channel.data?.created_by?.id === ownUserId) {
138
148
  actionItems.push({
139
- action: () => {
149
+ action: (...args: Parameters<ChannelActionHandler>) => {
140
150
  const title = isDirectChat ? t('Delete chat') : t('Delete group');
141
151
  const message = isDirectChat
142
152
  ? t("Are you sure you want to delete this chat? This can't be undone.")
@@ -149,7 +159,7 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
149
159
  },
150
160
  {
151
161
  onPress: async () => {
152
- await deleteChannel();
162
+ await deleteChannel(...args);
153
163
  },
154
164
  style: 'destructive',
155
165
  text: t('Delete'),
@@ -179,6 +189,9 @@ type UseChannelActionItemsParams = {
179
189
  getChannelActionItems?: GetChannelActionItems;
180
190
  };
181
191
 
192
+ const blockedUsersStateSelector = (state: BlockedUsersState) =>
193
+ ({ userIds: state.userIds }) as const;
194
+
182
195
  export const useChannelActionItems = ({
183
196
  channel,
184
197
  getChannelActionItems: getChannelActionItemsProp = getChannelActionItems,
@@ -190,19 +203,42 @@ export const useChannelActionItems = ({
190
203
  const isPinned = Boolean(membership?.pinned_at);
191
204
  const isArchived = Boolean(membership?.archived_at);
192
205
 
193
- const muteActive = useChannelMuteActive(channel);
206
+ const { muted: channelMuteActive } = useIsChannelMuted(channel);
207
+ const otherUser = isDirectChat ? getOtherUserInDirectChannel(channel)?.user : undefined;
208
+ const userMuteActive = useUserMuteActive(otherUser);
209
+
210
+ const { userIds: blockedUserIds } = useStateStore(
211
+ channel.getClient().blockedUsers,
212
+ blockedUsersStateSelector,
213
+ );
214
+
215
+ const isBlocked = isDirectChat
216
+ ? blockedUserIds.includes(getOtherUserInDirectChannel(channel)?.user?.id ?? '')
217
+ : undefined;
194
218
 
195
219
  const channelActionItemsParams = useMemo(
196
220
  () => ({
197
221
  actions: channelActions,
198
222
  channel,
223
+ channelMuteActive,
199
224
  isArchived,
225
+ isBlocked,
200
226
  isDirectChat,
201
227
  isPinned,
202
- muteActive,
203
228
  t,
229
+ userMuteActive,
204
230
  }),
205
- [channel, muteActive, channelActions, isArchived, isDirectChat, isPinned, t],
231
+ [
232
+ channel,
233
+ channelActions,
234
+ channelMuteActive,
235
+ isArchived,
236
+ isBlocked,
237
+ isDirectChat,
238
+ isPinned,
239
+ t,
240
+ userMuteActive,
241
+ ],
206
242
  );
207
243
 
208
244
  const defaultItems = useMemo(
@@ -2,23 +2,38 @@ import { useMemo } from 'react';
2
2
 
3
3
  import { Channel } from 'stream-chat';
4
4
 
5
- import { useChatContext, useTranslationContext } from '../../../contexts';
6
- import { useStableCallback } from '../../../hooks';
7
- import { useNotificationApi } from '../../Notifications';
5
+ import type { ActionHandler, ActionOptions } from './types';
6
+
7
+ import { useNotificationApi } from '../../components/Notifications/hooks';
8
+ import { useChatContext, useTranslationContext } from '../../contexts';
9
+ import { File, GlobalFileUploadRequest } from '../../types/types';
10
+ import { useStableCallback } from '../useStableCallback';
11
+
12
+ export type ChannelActionOptions = ActionOptions;
13
+
14
+ export type ChannelActionHandler = ActionHandler;
8
15
 
9
16
  export type ChannelActions = {
10
- archive: () => Promise<void>;
11
- deleteChannel: () => Promise<void>;
12
- leave: () => Promise<void>;
13
- pin: () => Promise<void>;
14
- unarchive: () => Promise<void>;
15
- unpin: () => Promise<void>;
16
- muteUser: () => Promise<void>;
17
- unmuteUser: () => Promise<void>;
18
- muteChannel: () => Promise<void>;
19
- unmuteChannel: () => Promise<void>;
20
- blockUser: () => Promise<void>;
21
- unblockUser: () => Promise<void>;
17
+ addMembers: (memberIds: string[], options?: ChannelActionOptions) => Promise<void>;
18
+ removeMembers: (memberIds: string[], options?: ChannelActionOptions) => Promise<void>;
19
+ archive: ChannelActionHandler;
20
+ deleteChannel: ChannelActionHandler;
21
+ leave: ChannelActionHandler;
22
+ pin: ChannelActionHandler;
23
+ unarchive: ChannelActionHandler;
24
+ unpin: ChannelActionHandler;
25
+ updateImage: (
26
+ image: File | null,
27
+ options?: ChannelActionOptions,
28
+ doFileUploadRequest?: GlobalFileUploadRequest,
29
+ ) => Promise<void>;
30
+ updateName: (name: string, options?: ChannelActionOptions) => Promise<void>;
31
+ muteUser: ChannelActionHandler;
32
+ unmuteUser: ChannelActionHandler;
33
+ muteChannel: ChannelActionHandler;
34
+ unmuteChannel: ChannelActionHandler;
35
+ blockUser: ChannelActionHandler;
36
+ unblockUser: ChannelActionHandler;
22
37
  };
23
38
 
24
39
  export const getOtherUserInDirectChannel = (channel: Channel) => {
@@ -38,7 +53,7 @@ const getNotificationError = (error: unknown): Error | undefined => {
38
53
  return undefined;
39
54
  };
40
55
 
41
- const getNotificationErrorOptions = (error: unknown) => {
56
+ export const getNotificationErrorOptions = (error: unknown) => {
42
57
  const originalError = getNotificationError(error);
43
58
  return originalError ? { originalError } : {};
44
59
  };
@@ -49,7 +64,7 @@ export const useChannelActions = (channel: Channel) => {
49
64
  const { t } = useTranslationContext();
50
65
  const ownUserId = client.userID;
51
66
 
52
- const pin = useStableCallback(async () => {
67
+ const pin = useStableCallback(async (options?: ChannelActionOptions) => {
53
68
  try {
54
69
  if (!channel) {
55
70
  return;
@@ -60,6 +75,7 @@ export const useChannelActions = (channel: Channel) => {
60
75
  options: { severity: 'success', type: 'api:channel:pin:success' },
61
76
  origin: { context: { channel }, emitter: 'ChannelActions' },
62
77
  });
78
+ options?.onSuccess?.();
63
79
  } catch (error) {
64
80
  addNotification({
65
81
  message: t('Failed to update channel pinned status'),
@@ -70,10 +86,11 @@ export const useChannelActions = (channel: Channel) => {
70
86
  },
71
87
  origin: { context: { channel }, emitter: 'ChannelActions' },
72
88
  });
89
+ options?.onFailure?.(error);
73
90
  }
74
91
  });
75
92
 
76
- const unpin = useStableCallback(async () => {
93
+ const unpin = useStableCallback(async (options?: ChannelActionOptions) => {
77
94
  try {
78
95
  if (!channel) {
79
96
  return;
@@ -84,6 +101,7 @@ export const useChannelActions = (channel: Channel) => {
84
101
  options: { severity: 'success', type: 'api:channel:unpin:success' },
85
102
  origin: { context: { channel }, emitter: 'ChannelActions' },
86
103
  });
104
+ options?.onSuccess?.();
87
105
  } catch (error) {
88
106
  addNotification({
89
107
  message: t('Failed to update channel pinned status'),
@@ -94,10 +112,11 @@ export const useChannelActions = (channel: Channel) => {
94
112
  },
95
113
  origin: { context: { channel }, emitter: 'ChannelActions' },
96
114
  });
115
+ options?.onFailure?.(error);
97
116
  }
98
117
  });
99
118
 
100
- const archive = useStableCallback(async () => {
119
+ const archive = useStableCallback(async (options?: ChannelActionOptions) => {
101
120
  try {
102
121
  if (!channel) {
103
122
  return;
@@ -108,6 +127,7 @@ export const useChannelActions = (channel: Channel) => {
108
127
  options: { severity: 'success', type: 'api:channel:archive:success' },
109
128
  origin: { context: { channel }, emitter: 'ChannelActions' },
110
129
  });
130
+ options?.onSuccess?.();
111
131
  } catch (error) {
112
132
  addNotification({
113
133
  message: t('Failed to update channel archive status'),
@@ -118,10 +138,11 @@ export const useChannelActions = (channel: Channel) => {
118
138
  },
119
139
  origin: { context: { channel }, emitter: 'ChannelActions' },
120
140
  });
141
+ options?.onFailure?.(error);
121
142
  }
122
143
  });
123
144
 
124
- const unarchive = useStableCallback(async () => {
145
+ const unarchive = useStableCallback(async (options?: ChannelActionOptions) => {
125
146
  try {
126
147
  if (!channel) {
127
148
  return;
@@ -132,6 +153,7 @@ export const useChannelActions = (channel: Channel) => {
132
153
  options: { severity: 'success', type: 'api:channel:unarchive:success' },
133
154
  origin: { context: { channel }, emitter: 'ChannelActions' },
134
155
  });
156
+ options?.onSuccess?.();
135
157
  } catch (error) {
136
158
  addNotification({
137
159
  message: t('Failed to update channel archive status'),
@@ -142,10 +164,11 @@ export const useChannelActions = (channel: Channel) => {
142
164
  },
143
165
  origin: { context: { channel }, emitter: 'ChannelActions' },
144
166
  });
167
+ options?.onFailure?.(error);
145
168
  }
146
169
  });
147
170
 
148
- const leave = useStableCallback(async () => {
171
+ const leave = useStableCallback(async (options?: ChannelActionOptions) => {
149
172
  if (!channel) {
150
173
  return;
151
174
  }
@@ -157,6 +180,7 @@ export const useChannelActions = (channel: Channel) => {
157
180
  options: { severity: 'success', type: 'api:channel:leave:success' },
158
181
  origin: { context: { channel }, emitter: 'ChannelActions' },
159
182
  });
183
+ options?.onSuccess?.();
160
184
  } catch (error) {
161
185
  addNotification({
162
186
  message: t('Failed to leave channel'),
@@ -167,23 +191,95 @@ export const useChannelActions = (channel: Channel) => {
167
191
  },
168
192
  origin: { context: { channel }, emitter: 'ChannelActions' },
169
193
  });
194
+ options?.onFailure?.(error);
170
195
  }
171
196
  }
172
197
  });
173
198
 
174
- const deleteChannel = useStableCallback(async () => {
199
+ const removeMembers = useStableCallback(
200
+ async (memberIds: string[], options?: ChannelActionOptions) => {
201
+ if (!channel) {
202
+ return;
203
+ }
204
+ try {
205
+ await channel.removeMembers(memberIds);
206
+ addNotification({
207
+ message: t('{{count}} members removed', { count: memberIds.length }),
208
+ options: { severity: 'success', type: 'api:channel:remove-members:success' },
209
+ origin: { context: { channel }, emitter: 'ChannelActions' },
210
+ });
211
+ options?.onSuccess?.();
212
+ } catch (error) {
213
+ addNotification({
214
+ message: t('Failed to remove members'),
215
+ options: {
216
+ ...getNotificationErrorOptions(error),
217
+ severity: 'error',
218
+ type: 'api:channel:remove-members:failed',
219
+ },
220
+ origin: { context: { channel }, emitter: 'ChannelActions' },
221
+ });
222
+ options?.onFailure?.(error);
223
+ }
224
+ },
225
+ );
226
+
227
+ const addMembers = useStableCallback(
228
+ async (memberIds: string[], options?: ChannelActionOptions) => {
229
+ if (!channel) {
230
+ return;
231
+ }
232
+ try {
233
+ await channel.addMembers(memberIds);
234
+ addNotification({
235
+ message: t('{{count}} members added', { count: memberIds.length }),
236
+ options: { severity: 'success', type: 'api:channel:add-members:success' },
237
+ origin: { context: { channel }, emitter: 'ChannelActions' },
238
+ });
239
+ options?.onSuccess?.();
240
+ } catch (error) {
241
+ addNotification({
242
+ message: t('Failed to add members'),
243
+ options: {
244
+ ...getNotificationErrorOptions(error),
245
+ severity: 'error',
246
+ type: 'api:channel:add-members:failed',
247
+ },
248
+ origin: { context: { channel }, emitter: 'ChannelActions' },
249
+ });
250
+ options?.onFailure?.(error);
251
+ }
252
+ },
253
+ );
254
+
255
+ const deleteChannel = useStableCallback(async (options?: ChannelActionOptions) => {
175
256
  if (!channel) {
176
257
  return;
177
258
  }
178
259
 
179
260
  try {
180
261
  await channel.delete();
262
+ addNotification({
263
+ message: t('Channel deleted'),
264
+ options: { severity: 'success', type: 'api:channel:delete:success' },
265
+ origin: { context: { channel }, emitter: 'ChannelActions' },
266
+ });
267
+ options?.onSuccess?.();
181
268
  } catch (error) {
182
- console.log('Error deleting channel', error);
269
+ addNotification({
270
+ message: t('Failed to delete channel'),
271
+ options: {
272
+ ...getNotificationErrorOptions(error),
273
+ severity: 'error',
274
+ type: 'api:channel:delete:failed',
275
+ },
276
+ origin: { context: { channel }, emitter: 'ChannelActions' },
277
+ });
278
+ options?.onFailure?.(error);
183
279
  }
184
280
  });
185
281
 
186
- const muteUser = useStableCallback(async () => {
282
+ const muteUser = useStableCallback(async (options?: ChannelActionOptions) => {
187
283
  if (!channel) {
188
284
  return;
189
285
  }
@@ -200,6 +296,7 @@ export const useChannelActions = (channel: Channel) => {
200
296
  options: { severity: 'success', type: 'api:user:mute:success' },
201
297
  origin: { context: { channel }, emitter: 'ChannelActions' },
202
298
  });
299
+ options?.onSuccess?.();
203
300
  }
204
301
  } catch (error) {
205
302
  addNotification({
@@ -211,10 +308,11 @@ export const useChannelActions = (channel: Channel) => {
211
308
  },
212
309
  origin: { context: { channel }, emitter: 'ChannelActions' },
213
310
  });
311
+ options?.onFailure?.(error);
214
312
  }
215
313
  });
216
314
 
217
- const unmuteUser = useStableCallback(async () => {
315
+ const unmuteUser = useStableCallback(async (options?: ChannelActionOptions) => {
218
316
  if (!channel) {
219
317
  return;
220
318
  }
@@ -231,6 +329,7 @@ export const useChannelActions = (channel: Channel) => {
231
329
  options: { severity: 'success', type: 'api:user:unmute:success' },
232
330
  origin: { context: { channel }, emitter: 'ChannelActions' },
233
331
  });
332
+ options?.onSuccess?.();
234
333
  }
235
334
  } catch (error) {
236
335
  addNotification({
@@ -242,10 +341,11 @@ export const useChannelActions = (channel: Channel) => {
242
341
  },
243
342
  origin: { context: { channel }, emitter: 'ChannelActions' },
244
343
  });
344
+ options?.onFailure?.(error);
245
345
  }
246
346
  });
247
347
 
248
- const muteChannel = useStableCallback(async () => {
348
+ const muteChannel = useStableCallback(async (options?: ChannelActionOptions) => {
249
349
  if (!channel) {
250
350
  return;
251
351
  }
@@ -257,6 +357,7 @@ export const useChannelActions = (channel: Channel) => {
257
357
  options: { severity: 'success', type: 'api:channel:mute:success' },
258
358
  origin: { context: { channel }, emitter: 'ChannelActions' },
259
359
  });
360
+ options?.onSuccess?.();
260
361
  } catch (error) {
261
362
  addNotification({
262
363
  message: t('Failed to update channel mute status'),
@@ -267,10 +368,11 @@ export const useChannelActions = (channel: Channel) => {
267
368
  },
268
369
  origin: { context: { channel }, emitter: 'ChannelActions' },
269
370
  });
371
+ options?.onFailure?.(error);
270
372
  }
271
373
  });
272
374
 
273
- const unmuteChannel = useStableCallback(async () => {
375
+ const unmuteChannel = useStableCallback(async (options?: ChannelActionOptions) => {
274
376
  if (!channel) {
275
377
  return;
276
378
  }
@@ -282,6 +384,7 @@ export const useChannelActions = (channel: Channel) => {
282
384
  options: { severity: 'success', type: 'api:channel:unmute:success' },
283
385
  origin: { context: { channel }, emitter: 'ChannelActions' },
284
386
  });
387
+ options?.onSuccess?.();
285
388
  } catch (error) {
286
389
  addNotification({
287
390
  message: t('Failed to update channel mute status'),
@@ -292,10 +395,11 @@ export const useChannelActions = (channel: Channel) => {
292
395
  },
293
396
  origin: { context: { channel }, emitter: 'ChannelActions' },
294
397
  });
398
+ options?.onFailure?.(error);
295
399
  }
296
400
  });
297
401
 
298
- const blockUser = useStableCallback(async () => {
402
+ const blockUser = useStableCallback(async (options?: ChannelActionOptions) => {
299
403
  if (!channel) {
300
404
  return;
301
405
  }
@@ -310,6 +414,7 @@ export const useChannelActions = (channel: Channel) => {
310
414
  options: { severity: 'success', type: 'api:user:block:success' },
311
415
  origin: { context: { channel }, emitter: 'ChannelActions' },
312
416
  });
417
+ options?.onSuccess?.();
313
418
  }
314
419
  } catch (error) {
315
420
  addNotification({
@@ -321,10 +426,82 @@ export const useChannelActions = (channel: Channel) => {
321
426
  },
322
427
  origin: { context: { channel }, emitter: 'ChannelActions' },
323
428
  });
429
+ options?.onFailure?.(error);
430
+ }
431
+ });
432
+
433
+ const updateName = useStableCallback(async (name: string, options?: ChannelActionOptions) => {
434
+ if (!channel) {
435
+ return;
436
+ }
437
+
438
+ try {
439
+ if (name.trim() === '') {
440
+ await channel.updatePartial({ unset: ['name'] });
441
+ } else {
442
+ await channel.updatePartial({ set: { name } });
443
+ }
444
+ addNotification({
445
+ message: t('Channel name updated'),
446
+ options: { severity: 'success', type: 'api:channel:update-name:success' },
447
+ origin: { context: { channel }, emitter: 'ChannelActions' },
448
+ });
449
+ options?.onSuccess?.();
450
+ } catch (error) {
451
+ addNotification({
452
+ message: t('Failed to update channel name'),
453
+ options: {
454
+ ...getNotificationErrorOptions(error),
455
+ severity: 'error',
456
+ type: 'api:channel:update-name:failed',
457
+ },
458
+ origin: { context: { channel }, emitter: 'ChannelActions' },
459
+ });
460
+ options?.onFailure?.(error);
324
461
  }
325
462
  });
326
463
 
327
- const unblockUser = useStableCallback(async () => {
464
+ const updateImage = useStableCallback(
465
+ async (
466
+ image: File | null,
467
+ options?: ChannelActionOptions,
468
+ doFileUploadRequest?: GlobalFileUploadRequest,
469
+ ) => {
470
+ if (!channel) {
471
+ return;
472
+ }
473
+
474
+ try {
475
+ if (image === null) {
476
+ await channel.updatePartial({ unset: ['image'] });
477
+ } else {
478
+ const { file } = doFileUploadRequest
479
+ ? await doFileUploadRequest(image)
480
+ : await client.uploadImage(image.uri, image.name, image.type);
481
+ await channel.updatePartial({ set: { image: file } });
482
+ }
483
+ addNotification({
484
+ message: t('Channel image updated'),
485
+ options: { severity: 'success', type: 'api:channel:update-image:success' },
486
+ origin: { context: { channel }, emitter: 'ChannelActions' },
487
+ });
488
+ options?.onSuccess?.();
489
+ } catch (error) {
490
+ addNotification({
491
+ message: t('Failed to update channel image'),
492
+ options: {
493
+ ...getNotificationErrorOptions(error),
494
+ severity: 'error',
495
+ type: 'api:channel:update-image:failed',
496
+ },
497
+ origin: { context: { channel }, emitter: 'ChannelActions' },
498
+ });
499
+ options?.onFailure?.(error);
500
+ }
501
+ },
502
+ );
503
+
504
+ const unblockUser = useStableCallback(async (options?: ChannelActionOptions) => {
328
505
  if (!channel) {
329
506
  return;
330
507
  }
@@ -339,6 +516,7 @@ export const useChannelActions = (channel: Channel) => {
339
516
  options: { severity: 'success', type: 'api:user:unblock:success' },
340
517
  origin: { context: { channel }, emitter: 'ChannelActions' },
341
518
  });
519
+ options?.onSuccess?.();
342
520
  }
343
521
  } catch (error) {
344
522
  addNotification({
@@ -350,17 +528,22 @@ export const useChannelActions = (channel: Channel) => {
350
528
  },
351
529
  origin: { context: { channel }, emitter: 'ChannelActions' },
352
530
  });
531
+ options?.onFailure?.(error);
353
532
  }
354
533
  });
355
534
 
356
535
  return useMemo<ChannelActions>(
357
536
  () => ({
537
+ addMembers,
538
+ removeMembers,
358
539
  pin,
359
540
  unpin,
360
541
  archive,
361
542
  unarchive,
362
543
  leave,
363
544
  deleteChannel,
545
+ updateName,
546
+ updateImage,
364
547
  muteUser,
365
548
  unmuteUser,
366
549
  muteChannel,
@@ -369,12 +552,16 @@ export const useChannelActions = (channel: Channel) => {
369
552
  unblockUser,
370
553
  }),
371
554
  [
555
+ addMembers,
556
+ removeMembers,
372
557
  pin,
373
558
  unpin,
374
559
  archive,
375
560
  unarchive,
376
561
  leave,
377
562
  deleteChannel,
563
+ updateName,
564
+ updateImage,
378
565
  muteUser,
379
566
  unmuteUser,
380
567
  muteChannel,