@ethora/chat-component-rn 26.8.2 → 26.8.3

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 (529) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +27 -1
  3. package/lib/commonjs/assets/EmptyChatIllustration.js +7 -6
  4. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -1
  5. package/lib/commonjs/assets/icons.js +2 -2
  6. package/lib/commonjs/assets/icons.js.map +1 -1
  7. package/lib/commonjs/components/AuthForms/Login.js +23 -8
  8. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  9. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +12 -4
  10. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  11. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +16 -9
  12. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  13. package/lib/commonjs/components/ExampleComponents/CustomMessage.js +25 -7
  14. package/lib/commonjs/components/ExampleComponents/CustomMessage.js.map +1 -1
  15. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  16. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  17. package/lib/commonjs/components/Header/HeaderRoomList.js +9 -6
  18. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  19. package/lib/commonjs/components/InputComponents/Search.js +13 -4
  20. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/ChatHeader.js +9 -3
  22. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ChatRoom.js +6 -3
  24. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ChatWrapper.js +8 -6
  26. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +37 -10
  28. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  29. package/lib/commonjs/components/MainComponents/MediaMessage.js +43 -19
  30. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  31. package/lib/commonjs/components/MainComponents/MessageList.js +9 -3
  32. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  33. package/lib/commonjs/components/MainComponents/RNStyled.js +12 -4
  34. package/lib/commonjs/components/MainComponents/RNStyled.js.map +1 -1
  35. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +25 -8
  36. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  37. package/lib/commonjs/components/MainComponents/RoomList.js +12 -9
  38. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  39. package/lib/commonjs/components/MainComponents/Select.js +29 -8
  40. package/lib/commonjs/components/MainComponents/Select.js.map +1 -1
  41. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +24 -13
  42. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  43. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +24 -8
  44. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  45. package/lib/commonjs/components/MessageBubble/Message.js +46 -24
  46. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  47. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +15 -4
  48. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  49. package/lib/commonjs/components/MessageBubble/MessageReaction.js +10 -5
  50. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  51. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js +1 -5
  52. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +42 -27
  54. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  55. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +77 -24
  56. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +5 -7
  58. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +18 -14
  60. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  61. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +20 -9
  62. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  63. package/lib/commonjs/components/Modals/ModalHeaderComponent.js +8 -2
  64. package/lib/commonjs/components/Modals/ModalHeaderComponent.js.map +1 -1
  65. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +8 -8
  66. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  67. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -5
  68. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  69. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +18 -15
  70. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  71. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +14 -9
  72. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -1
  73. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +3 -7
  74. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  75. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  76. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  77. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  78. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  79. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  80. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  81. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  82. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  83. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  84. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  85. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +3 -1
  86. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  87. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +18 -15
  88. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  89. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -6
  90. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  91. package/lib/commonjs/components/Modals/styledModalComponents.js +60 -16
  92. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  93. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +16 -10
  94. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  95. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  96. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  97. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  98. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  99. package/lib/commonjs/components/Thread/ThreadWrapper.js +9 -2
  100. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  101. package/lib/commonjs/components/Toast/Toast.js +3 -1
  102. package/lib/commonjs/components/Toast/Toast.js.map +1 -1
  103. package/lib/commonjs/components/styled/AudioMessage.js +16 -11
  104. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  105. package/lib/commonjs/components/styled/Button.js +18 -9
  106. package/lib/commonjs/components/styled/Button.js.map +1 -1
  107. package/lib/commonjs/components/styled/DateLabel.js +8 -5
  108. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  109. package/lib/commonjs/components/styled/MediaModal.js +27 -21
  110. package/lib/commonjs/components/styled/MediaModal.js.map +1 -1
  111. package/lib/commonjs/components/styled/RoomListComponents/index.js +60 -38
  112. package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
  113. package/lib/commonjs/components/styled/SendInput.js +13 -8
  114. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  115. package/lib/commonjs/components/styled/StyledComponents.js +67 -23
  116. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  117. package/lib/commonjs/components/styled/StyledInput.js +32 -18
  118. package/lib/commonjs/components/styled/StyledInput.js.map +1 -1
  119. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  120. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  121. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  122. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  123. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +39 -18
  124. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  125. package/lib/commonjs/components/styled/TreadLabel.js +6 -3
  126. package/lib/commonjs/components/styled/TreadLabel.js.map +1 -1
  127. package/lib/commonjs/context/MessageNotificationContext.js +14 -3
  128. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  129. package/lib/commonjs/helpers/getChatBackground.js +4 -1
  130. package/lib/commonjs/helpers/getChatBackground.js.map +1 -1
  131. package/lib/commonjs/helpers/getDateLabelColor.js +3 -1
  132. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -1
  133. package/lib/commonjs/helpers/getIconColor.js +4 -1
  134. package/lib/commonjs/helpers/getIconColor.js.map +1 -1
  135. package/lib/commonjs/helpers/getSenderNameColor.js +3 -1
  136. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -1
  137. package/lib/commonjs/helpers/markdownParser.js +27 -5
  138. package/lib/commonjs/helpers/markdownParser.js.map +1 -1
  139. package/lib/commonjs/helpers/parseMessageBody.js +82 -24
  140. package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
  141. package/lib/commonjs/hooks/useCustomTypingIndicator.js +7 -3
  142. package/lib/commonjs/hooks/useCustomTypingIndicator.js.map +1 -1
  143. package/lib/commonjs/hooks/useLogout.js +10 -3
  144. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  145. package/lib/commonjs/hooks/useTheme.js +35 -0
  146. package/lib/commonjs/hooks/useTheme.js.map +1 -0
  147. package/lib/commonjs/i18n/strings.js +18 -0
  148. package/lib/commonjs/i18n/strings.js.map +1 -1
  149. package/lib/commonjs/main.js +75 -0
  150. package/lib/commonjs/main.js.map +1 -1
  151. package/lib/commonjs/networking/api-requests/push.api.js +130 -45
  152. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  153. package/lib/commonjs/networking/api-requests/rooms.api.js +13 -0
  154. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  155. package/lib/commonjs/services/pushRegistration.js +250 -0
  156. package/lib/commonjs/services/pushRegistration.js.map +1 -0
  157. package/lib/commonjs/services/pushSubscriptionService.js +0 -24
  158. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  159. package/lib/commonjs/theme/index.js +38 -0
  160. package/lib/commonjs/theme/index.js.map +1 -0
  161. package/lib/commonjs/theme/styled.d.js +4 -0
  162. package/lib/commonjs/theme/styled.d.js.map +1 -0
  163. package/lib/commonjs/theme/theme.js +137 -0
  164. package/lib/commonjs/theme/theme.js.map +1 -0
  165. package/lib/module/assets/EmptyChatIllustration.js +7 -6
  166. package/lib/module/assets/EmptyChatIllustration.js.map +1 -1
  167. package/lib/module/assets/icons.js +1 -1
  168. package/lib/module/assets/icons.js.map +1 -1
  169. package/lib/module/components/AuthForms/Login.js +23 -8
  170. package/lib/module/components/AuthForms/Login.js.map +1 -1
  171. package/lib/module/components/ContextMenu/ContextMenuComponents.js +12 -4
  172. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  173. package/lib/module/components/DropdownMenu/DropdownMenu.js +16 -9
  174. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  175. package/lib/module/components/ExampleComponents/CustomMessage.js +25 -7
  176. package/lib/module/components/ExampleComponents/CustomMessage.js.map +1 -1
  177. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  178. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  179. package/lib/module/components/Header/HeaderRoomList.js +9 -6
  180. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  181. package/lib/module/components/InputComponents/Search.js +13 -4
  182. package/lib/module/components/InputComponents/Search.js.map +1 -1
  183. package/lib/module/components/MainComponents/ChatHeader.js +9 -3
  184. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  185. package/lib/module/components/MainComponents/ChatRoom.js +6 -3
  186. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  187. package/lib/module/components/MainComponents/ChatWrapper.js +8 -6
  188. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  189. package/lib/module/components/MainComponents/LanguageSelectorModal.js +37 -10
  190. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  191. package/lib/module/components/MainComponents/MediaMessage.js +42 -19
  192. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  193. package/lib/module/components/MainComponents/MessageList.js +9 -3
  194. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  195. package/lib/module/components/MainComponents/RNStyled.js +12 -4
  196. package/lib/module/components/MainComponents/RNStyled.js.map +1 -1
  197. package/lib/module/components/MainComponents/ReduxWrapper.js +25 -8
  198. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  199. package/lib/module/components/MainComponents/RoomList.js +12 -9
  200. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  201. package/lib/module/components/MainComponents/Select.js +29 -8
  202. package/lib/module/components/MainComponents/Select.js.map +1 -1
  203. package/lib/module/components/Menu/HeaderRoomListMenu.js +24 -13
  204. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  205. package/lib/module/components/MessageBubble/BottomReplyContainer.js +24 -8
  206. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  207. package/lib/module/components/MessageBubble/Message.js +47 -25
  208. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  209. package/lib/module/components/MessageBubble/MessageInteractions.js +15 -4
  210. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  211. package/lib/module/components/MessageBubble/MessageReaction.js +10 -5
  212. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  213. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js +2 -6
  214. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  215. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +42 -27
  216. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  217. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +79 -26
  218. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  219. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +6 -8
  220. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  221. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +18 -16
  222. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  223. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +20 -9
  224. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  225. package/lib/module/components/Modals/ModalHeaderComponent.js +8 -2
  226. package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
  227. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +10 -10
  228. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  229. package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -6
  230. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  231. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +18 -15
  232. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  233. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +14 -9
  234. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -1
  235. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -8
  236. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  237. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  238. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  239. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  240. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  241. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  242. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  243. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  244. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  245. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  246. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  247. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +3 -2
  248. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  249. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +18 -15
  250. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  251. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -6
  252. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  253. package/lib/module/components/Modals/styledModalComponents.js +59 -15
  254. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  255. package/lib/module/components/RoomComponents/ChatRoomItem.js +16 -10
  256. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  257. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  258. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  259. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  260. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  261. package/lib/module/components/Thread/ThreadWrapper.js +9 -2
  262. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  263. package/lib/module/components/Toast/Toast.js +3 -1
  264. package/lib/module/components/Toast/Toast.js.map +1 -1
  265. package/lib/module/components/styled/AudioMessage.js +16 -11
  266. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  267. package/lib/module/components/styled/Button.js +17 -9
  268. package/lib/module/components/styled/Button.js.map +1 -1
  269. package/lib/module/components/styled/DateLabel.js +8 -5
  270. package/lib/module/components/styled/DateLabel.js.map +1 -1
  271. package/lib/module/components/styled/MediaModal.js +29 -23
  272. package/lib/module/components/styled/MediaModal.js.map +1 -1
  273. package/lib/module/components/styled/RoomListComponents/index.js +62 -39
  274. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  275. package/lib/module/components/styled/SendInput.js +13 -8
  276. package/lib/module/components/styled/SendInput.js.map +1 -1
  277. package/lib/module/components/styled/StyledComponents.js +67 -23
  278. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  279. package/lib/module/components/styled/StyledInput.js +32 -18
  280. package/lib/module/components/styled/StyledInput.js.map +1 -1
  281. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  282. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  283. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  284. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  285. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +39 -18
  286. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  287. package/lib/module/components/styled/TreadLabel.js +6 -3
  288. package/lib/module/components/styled/TreadLabel.js.map +1 -1
  289. package/lib/module/context/MessageNotificationContext.js +14 -3
  290. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  291. package/lib/module/helpers/getChatBackground.js +5 -1
  292. package/lib/module/helpers/getChatBackground.js.map +1 -1
  293. package/lib/module/helpers/getDateLabelColor.js +4 -1
  294. package/lib/module/helpers/getDateLabelColor.js.map +1 -1
  295. package/lib/module/helpers/getIconColor.js +5 -1
  296. package/lib/module/helpers/getIconColor.js.map +1 -1
  297. package/lib/module/helpers/getSenderNameColor.js +4 -1
  298. package/lib/module/helpers/getSenderNameColor.js.map +1 -1
  299. package/lib/module/helpers/markdownParser.js +27 -5
  300. package/lib/module/helpers/markdownParser.js.map +1 -1
  301. package/lib/module/helpers/parseMessageBody.js +82 -24
  302. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  303. package/lib/module/hooks/useCustomTypingIndicator.js +8 -3
  304. package/lib/module/hooks/useCustomTypingIndicator.js.map +1 -1
  305. package/lib/module/hooks/useLogout.js +10 -3
  306. package/lib/module/hooks/useLogout.js.map +1 -1
  307. package/lib/module/hooks/useTheme.js +30 -0
  308. package/lib/module/hooks/useTheme.js.map +1 -0
  309. package/lib/module/i18n/strings.js +18 -0
  310. package/lib/module/i18n/strings.js.map +1 -1
  311. package/lib/module/main.js +3 -0
  312. package/lib/module/main.js.map +1 -1
  313. package/lib/module/networking/api-requests/push.api.js +119 -45
  314. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  315. package/lib/module/networking/api-requests/rooms.api.js +12 -0
  316. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  317. package/lib/module/services/pushRegistration.js +239 -0
  318. package/lib/module/services/pushRegistration.js.map +1 -0
  319. package/lib/module/services/pushSubscriptionService.js +0 -24
  320. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  321. package/lib/module/theme/index.js +7 -0
  322. package/lib/module/theme/index.js.map +1 -0
  323. package/lib/module/theme/styled.d.js +6 -0
  324. package/lib/module/theme/styled.d.js.map +1 -0
  325. package/lib/module/theme/theme.js +131 -0
  326. package/lib/module/theme/theme.js.map +1 -0
  327. package/lib/typescript/assets/EmptyChatIllustration.d.ts +1 -0
  328. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -1
  329. package/lib/typescript/assets/icons.d.ts +8 -0
  330. package/lib/typescript/assets/icons.d.ts.map +1 -1
  331. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  332. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  333. package/lib/typescript/components/ExampleComponents/CustomMessage.d.ts.map +1 -1
  334. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  335. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  336. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  339. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
  340. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  341. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  342. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  343. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  344. package/lib/typescript/components/MainComponents/Select.d.ts.map +1 -1
  345. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  346. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  347. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  348. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  349. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  351. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  352. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  353. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  355. package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
  356. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  357. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  358. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  359. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -1
  360. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  361. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  362. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  363. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +2 -2
  364. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  365. package/lib/typescript/components/Modals/SettingsModals/Visibility/RadioInput.d.ts.map +1 -1
  366. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  367. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  368. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  369. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  370. package/lib/typescript/components/Modals/styledModalComponents.d.ts +2 -0
  371. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  372. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  373. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  374. package/lib/typescript/components/RoomComponents/styled/StyledRoomComponents.d.ts.map +1 -1
  375. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  376. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  377. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  378. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  379. package/lib/typescript/components/styled/MediaModal.d.ts +2 -2
  380. package/lib/typescript/components/styled/MediaModal.d.ts.map +1 -1
  381. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  382. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  383. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  384. package/lib/typescript/components/styled/StyledInput.d.ts.map +1 -1
  385. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  386. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  387. package/lib/typescript/components/styled/TreadLabel.d.ts.map +1 -1
  388. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  389. package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
  390. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -1
  391. package/lib/typescript/helpers/getDateLabelColor.d.ts +3 -7
  392. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -1
  393. package/lib/typescript/helpers/getIconColor.d.ts +4 -7
  394. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -1
  395. package/lib/typescript/helpers/getSenderNameColor.d.ts +3 -7
  396. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -1
  397. package/lib/typescript/helpers/markdownParser.d.ts +8 -1
  398. package/lib/typescript/helpers/markdownParser.d.ts.map +1 -1
  399. package/lib/typescript/helpers/parseMessageBody.d.ts +8 -1
  400. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  401. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts +2 -0
  402. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts.map +1 -1
  403. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  404. package/lib/typescript/hooks/useTheme.d.ts +16 -0
  405. package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
  406. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  407. package/lib/typescript/main.d.ts +7 -0
  408. package/lib/typescript/main.d.ts.map +1 -1
  409. package/lib/typescript/networking/api-requests/push.api.d.ts +46 -3
  410. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  411. package/lib/typescript/networking/api-requests/rooms.api.d.ts +1 -0
  412. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  413. package/lib/typescript/services/pushRegistration.d.ts +21 -0
  414. package/lib/typescript/services/pushRegistration.d.ts.map +1 -0
  415. package/lib/typescript/services/pushSubscriptionService.d.ts +0 -4
  416. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  417. package/lib/typescript/theme/index.d.ts +5 -0
  418. package/lib/typescript/theme/index.d.ts.map +1 -0
  419. package/lib/typescript/theme/theme.d.ts +113 -0
  420. package/lib/typescript/theme/theme.d.ts.map +1 -0
  421. package/lib/typescript/types/models/room.model.d.ts +1 -0
  422. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  423. package/lib/typescript/types/types.d.ts +20 -0
  424. package/lib/typescript/types/types.d.ts.map +1 -1
  425. package/package.json +1 -1
  426. package/src/assets/EmptyChatIllustration.tsx +7 -5
  427. package/src/assets/icons.tsx +24 -0
  428. package/src/components/AuthForms/Login.tsx +11 -9
  429. package/src/components/ContextMenu/ContextMenuComponents.tsx +4 -4
  430. package/src/components/DropdownMenu/DropdownMenu.tsx +14 -6
  431. package/src/components/ExampleComponents/CustomMessage.tsx +9 -8
  432. package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +6 -6
  433. package/src/components/Header/HeaderRoomList.tsx +11 -6
  434. package/src/components/InputComponents/Search.tsx +7 -4
  435. package/src/components/MainComponents/ChatHeader.tsx +9 -3
  436. package/src/components/MainComponents/ChatRoom.tsx +5 -2
  437. package/src/components/MainComponents/ChatWrapper.tsx +8 -6
  438. package/src/components/MainComponents/LanguageSelectorModal.tsx +33 -7
  439. package/src/components/MainComponents/MediaMessage.tsx +37 -18
  440. package/src/components/MainComponents/MessageList.tsx +13 -3
  441. package/src/components/MainComponents/RNStyled.tsx +4 -4
  442. package/src/components/MainComponents/ReduxWrapper.tsx +23 -7
  443. package/src/components/MainComponents/RoomList.tsx +13 -7
  444. package/src/components/MainComponents/Select.tsx +13 -8
  445. package/src/components/Menu/HeaderRoomListMenu.tsx +30 -13
  446. package/src/components/MessageBubble/BottomReplyContainer.tsx +16 -11
  447. package/src/components/MessageBubble/Message.tsx +48 -25
  448. package/src/components/MessageBubble/MessageInteractions.tsx +17 -4
  449. package/src/components/MessageBubble/MessageReaction.tsx +9 -4
  450. package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +2 -2
  451. package/src/components/Modals/AttachSheet/AttachSheet.tsx +57 -23
  452. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +63 -25
  453. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +6 -4
  454. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +18 -14
  455. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +14 -9
  456. package/src/components/Modals/ModalHeaderComponent.tsx +9 -2
  457. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +14 -6
  458. package/src/components/Modals/NewChatModal/ModalContent.tsx +2 -2
  459. package/src/components/Modals/NewChatModal/NewChatModal.tsx +19 -15
  460. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +15 -8
  461. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +2 -3
  462. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +8 -6
  463. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +5 -3
  464. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +4 -4
  465. package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +9 -5
  466. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +7 -7
  467. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +3 -1
  468. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  469. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +15 -6
  470. package/src/components/Modals/styledModalComponents.tsx +23 -15
  471. package/src/components/RoomComponents/ChatRoomItem.tsx +19 -10
  472. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +4 -2
  473. package/src/components/RoomComponents/styled/StyledRoomComponents.ts +2 -0
  474. package/src/components/Thread/ThreadWrapper.tsx +6 -5
  475. package/src/components/Toast/Toast.tsx +1 -1
  476. package/src/components/styled/AudioMessage.tsx +12 -9
  477. package/src/components/styled/Button.tsx +15 -8
  478. package/src/components/styled/DateLabel.tsx +7 -3
  479. package/src/components/styled/MediaModal.tsx +30 -25
  480. package/src/components/styled/RoomListComponents/index.tsx +60 -35
  481. package/src/components/styled/SendInput.tsx +23 -8
  482. package/src/components/styled/StyledComponents.ts +30 -23
  483. package/src/components/styled/StyledInput.tsx +35 -21
  484. package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +8 -8
  485. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +20 -7
  486. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +15 -19
  487. package/src/components/styled/TreadLabel.tsx +9 -3
  488. package/src/context/MessageNotificationContext.tsx +18 -4
  489. package/src/helpers/getChatBackground.ts +3 -1
  490. package/src/helpers/getDateLabelColor.ts +5 -3
  491. package/src/helpers/getIconColor.ts +6 -3
  492. package/src/helpers/getSenderNameColor.ts +5 -3
  493. package/src/helpers/markdownParser.tsx +29 -5
  494. package/src/helpers/parseMessageBody.tsx +79 -26
  495. package/src/hooks/useCustomTypingIndicator.tsx +7 -3
  496. package/src/hooks/useLogout.tsx +10 -3
  497. package/src/hooks/useTheme.ts +41 -0
  498. package/src/i18n/strings.ts +18 -0
  499. package/src/main.ts +31 -0
  500. package/src/networking/api-requests/push.api.ts +185 -62
  501. package/src/networking/api-requests/rooms.api.ts +9 -0
  502. package/src/services/pushRegistration.ts +356 -0
  503. package/src/services/pushSubscriptionService.ts +0 -34
  504. package/src/theme/index.ts +10 -0
  505. package/src/theme/styled.d.ts +9 -0
  506. package/src/theme/theme.ts +243 -0
  507. package/src/types/models/room.model.ts +1 -0
  508. package/src/types/types.ts +24 -0
  509. package/lib/commonjs/context/PushNotificationProvider.js +0 -79
  510. package/lib/commonjs/context/PushNotificationProvider.js.map +0 -1
  511. package/lib/commonjs/hooks/usePushNotifications.js +0 -110
  512. package/lib/commonjs/hooks/usePushNotifications.js.map +0 -1
  513. package/lib/commonjs/services/pushNotifications.js +0 -143
  514. package/lib/commonjs/services/pushNotifications.js.map +0 -1
  515. package/lib/module/context/PushNotificationProvider.js +0 -79
  516. package/lib/module/context/PushNotificationProvider.js.map +0 -1
  517. package/lib/module/hooks/usePushNotifications.js +0 -106
  518. package/lib/module/hooks/usePushNotifications.js.map +0 -1
  519. package/lib/module/services/pushNotifications.js +0 -130
  520. package/lib/module/services/pushNotifications.js.map +0 -1
  521. package/lib/typescript/context/PushNotificationProvider.d.ts +0 -2
  522. package/lib/typescript/context/PushNotificationProvider.d.ts.map +0 -1
  523. package/lib/typescript/hooks/usePushNotifications.d.ts +0 -5
  524. package/lib/typescript/hooks/usePushNotifications.d.ts.map +0 -1
  525. package/lib/typescript/services/pushNotifications.d.ts +0 -10
  526. package/lib/typescript/services/pushNotifications.d.ts.map +0 -1
  527. package/src/context/PushNotificationProvider.tsx +0 -78
  528. package/src/hooks/usePushNotifications.ts +0 -131
  529. package/src/services/pushNotifications.ts +0 -170
@@ -26,6 +26,8 @@ import { deleteRoom, updateRoom } from '../../../roomStore/roomsSlice';
26
26
  import Loader from '../../styled/Loader';
27
27
  import {
28
28
  AddNewIcon,
29
+ BellIcon,
30
+ BellOffIcon,
29
31
  DeleteIcon,
30
32
  EditIcon,
31
33
  LeaveIcon,
@@ -36,7 +38,9 @@ import { useChatSettingState } from '../../../hooks/useChatSettingState';
36
38
  import { chatTextStyle } from '../../../helpers/typography';
37
39
  import { getElementFont } from '../../../helpers/getElementFont';
38
40
  import { getIconColor } from '../../../helpers/getIconColor';
39
- import { deleteRoomMember } from '../../../networking/api-requests/rooms.api';
41
+ import { useTheme } from '../../../hooks/useTheme';
42
+ import type { ChatTheme } from '../../../theme/theme';
43
+ import { deleteRoomMember, setRoomMuted } from '../../../networking/api-requests/rooms.api';
40
44
  import { RoomMember } from '../../../types/models/room.model';
41
45
  import { setActiveModal, setSelectedUser } from '../../../roomStore/chatSettingsSlice';
42
46
  import { MODAL_TYPES } from '../../../helpers/constants/MODAL_TYPES';
@@ -96,6 +100,8 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
96
100
  const dispatch = useDispatch();
97
101
  const { client } = useXmppClient();
98
102
  const { user: stateUser, config } = useChatSettingState();
103
+ const theme = useTheme();
104
+ const styles = useMemo(() => createStyles(theme), [theme]);
99
105
  const activeRoom = useSelector((state: RootState) => getActiveRoom(state));
100
106
  const fileToken = useFileToken();
101
107
 
@@ -355,8 +361,40 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
355
361
  return () => sub.remove();
356
362
  }, [isSearchOpen]); // eslint-disable-line react-hooks/exhaustive-deps
357
363
 
364
+ const muteInFlightRef = useRef(false);
365
+ const toggleMuted = async () => {
366
+ if (!activeRoom?.jid || !activeRoom?.name || muteInFlightRef.current) {return;}
367
+ const next = !activeRoom.muted;
368
+ muteInFlightRef.current = true;
369
+ dispatch(updateRoom({ jid: activeRoom.jid, updates: { muted: next } }));
370
+ try {
371
+ const confirmed = await setRoomMuted(activeRoom.name, next);
372
+ if (confirmed !== next) {
373
+ dispatch(updateRoom({ jid: activeRoom.jid, updates: { muted: confirmed } }));
374
+ }
375
+ } catch (error) {
376
+ dispatch(updateRoom({ jid: activeRoom.jid, updates: { muted: !next } }));
377
+ console.warn('[ethora-rn] mute toggle failed', error);
378
+ showToast({
379
+ id: Date.now().toString(),
380
+ title: 'Error',
381
+ message: t('toast.muteFailed'),
382
+ type: 'error',
383
+ });
384
+ } finally {
385
+ muteInFlightRef.current = false;
386
+ }
387
+ };
388
+
358
389
  const heroActions: HeroAction[] = useMemo(
359
390
  () => [
391
+ {
392
+ key: 'mute',
393
+ label: activeRoom?.muted ? t('action.muted') : t('action.unmuted'),
394
+ icon: (color: string) =>
395
+ activeRoom?.muted ? <BellOffIcon color={color} /> : <BellIcon color={color} />,
396
+ onPress: toggleMuted,
397
+ },
360
398
  {
361
399
  key: 'search',
362
400
  label: t('action.search'),
@@ -376,7 +414,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
376
414
  onPress: () => setIsReportOpen(true),
377
415
  },
378
416
  ],
379
- [t, activeRoom?.jid] // eslint-disable-line react-hooks/exhaustive-deps
417
+ [t, activeRoom?.jid, activeRoom?.muted] // eslint-disable-line react-hooks/exhaustive-deps
380
418
  );
381
419
 
382
420
  // "…" menu. Edit is the chat picture — the only chat detail this SDK can
@@ -388,7 +426,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
388
426
  items.push({
389
427
  key: 'edit',
390
428
  label: t('action.edit'),
391
- icon: <EditIcon color="#141414" width={18} height={18} />,
429
+ icon: <EditIcon color={theme.text} width={18} height={18} />,
392
430
  onPress: onUpload,
393
431
  });
394
432
  if (hasIcon) {
@@ -406,14 +444,14 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
406
444
  items.push({
407
445
  key: 'search',
408
446
  label: t('action.search'),
409
- icon: <SearchIcon color="#141414" width={18} height={18} />,
447
+ icon: <SearchIcon color={theme.text} width={18} height={18} />,
410
448
  onPress: openMemberSearch,
411
449
  });
412
450
  }
413
451
  items.push({
414
452
  key: 'report',
415
453
  label: t('action.report'),
416
- icon: <ReportIcon color="#141414" width={18} height={18} />,
454
+ icon: <ReportIcon color={theme.text} width={18} height={18} />,
417
455
  onPress: () => setIsReportOpen(true),
418
456
  });
419
457
  if (canDeleteChat) {
@@ -426,7 +464,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
426
464
  });
427
465
  }
428
466
  return items;
429
- }, [canEditIcon, canDeleteChat, hasIcon, isCollapsed, t]); // eslint-disable-line react-hooks/exhaustive-deps
467
+ }, [canEditIcon, canDeleteChat, hasIcon, isCollapsed, t, theme.text]); // eslint-disable-line react-hooks/exhaustive-deps
430
468
 
431
469
  if (!activeRoom) {
432
470
  return null;
@@ -547,7 +585,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
547
585
 
548
586
  {isSearchOpen && (
549
587
  <View style={styles.searchRow}>
550
- <SearchIcon color="#8C8C8C" width={18} height={18} />
588
+ <SearchIcon color={theme.textSecondary} width={18} height={18} />
551
589
  <TextInput
552
590
  testID="chat-profile-member-search"
553
591
  ref={searchInputRef}
@@ -555,7 +593,7 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
555
593
  value={memberQuery}
556
594
  onChangeText={setMemberQuery}
557
595
  placeholder={t('search.members')}
558
- placeholderTextColor="#8C8C8C"
596
+ placeholderTextColor={theme.textMuted}
559
597
  autoCorrect={false}
560
598
  returnKeyType="search"
561
599
  />
@@ -687,10 +725,10 @@ const ChatProfileModal: React.FC<ChatProfileModalProps> = ({
687
725
  );
688
726
  };
689
727
 
690
- const styles = StyleSheet.create({
728
+ const createStyles = (theme: ChatTheme) => StyleSheet.create({
691
729
  screen: {
692
730
  position: 'relative',
693
- backgroundColor: '#F2F3F5',
731
+ backgroundColor: theme.listBackground,
694
732
  },
695
733
  scroll: {
696
734
  width: '100%',
@@ -704,21 +742,21 @@ const styles = StyleSheet.create({
704
742
  gap: 12,
705
743
  },
706
744
  card: {
707
- backgroundColor: '#FFFFFF',
745
+ backgroundColor: theme.surface,
708
746
  borderRadius: 14,
709
747
  padding: 16,
710
- shadowColor: '#000',
748
+ shadowColor: theme.shadow,
711
749
  shadowOffset: { width: 0, height: 1 },
712
750
  shadowOpacity: 0.05,
713
751
  shadowRadius: 4,
714
752
  elevation: 1,
715
753
  },
716
754
  cardLabel: {
717
- color: '#8C8C8C',
755
+ color: theme.textSecondary,
718
756
  fontSize: 14,
719
757
  },
720
758
  cardValue: {
721
- color: '#141414',
759
+ color: theme.text,
722
760
  fontSize: 16,
723
761
  marginTop: 4,
724
762
  },
@@ -729,12 +767,12 @@ const styles = StyleSheet.create({
729
767
  paddingBottom: 14,
730
768
  marginBottom: 10,
731
769
  borderBottomWidth: StyleSheet.hairlineWidth,
732
- borderBottomColor: '#EFEFF2',
770
+ borderBottomColor: theme.border,
733
771
  },
734
772
  addMembersLabel: {
735
773
  fontSize: 16,
736
774
  fontWeight: '500',
737
- color: '#141414',
775
+ color: theme.text,
738
776
  },
739
777
  searchRow: {
740
778
  flexDirection: 'row',
@@ -744,24 +782,24 @@ const styles = StyleSheet.create({
744
782
  paddingHorizontal: 12,
745
783
  height: 40,
746
784
  borderRadius: 12,
747
- backgroundColor: '#F2F3F5',
785
+ backgroundColor: theme.surfaceSecondary,
748
786
  },
749
787
  searchInput: {
750
788
  flex: 1,
751
789
  fontSize: 15,
752
- color: '#141414',
790
+ color: theme.text,
753
791
  padding: 0,
754
792
  },
755
793
  searchClose: {
756
794
  fontSize: 22,
757
795
  lineHeight: 24,
758
- color: '#8C8C8C',
796
+ color: theme.textSecondary,
759
797
  },
760
798
  emptyMembers: {
761
799
  opacity: 0.6,
762
800
  textAlign: 'center',
763
801
  paddingVertical: 8,
764
- color: '#141414',
802
+ color: theme.text,
765
803
  },
766
804
  memberRow: {
767
805
  flexDirection: 'row',
@@ -770,7 +808,7 @@ const styles = StyleSheet.create({
770
808
  },
771
809
  memberDivider: {
772
810
  borderTopWidth: StyleSheet.hairlineWidth,
773
- borderTopColor: '#EFEFF2',
811
+ borderTopColor: theme.border,
774
812
  },
775
813
  memberMain: {
776
814
  flex: 1,
@@ -784,20 +822,20 @@ const styles = StyleSheet.create({
784
822
  memberName: {
785
823
  fontSize: 16,
786
824
  fontWeight: '600',
787
- color: '#141414',
825
+ color: theme.text,
788
826
  },
789
827
  memberStatus: {
790
828
  fontSize: 13,
791
- color: '#8C8C8C',
829
+ color: theme.textSecondary,
792
830
  marginTop: 2,
793
831
  },
794
832
  memberRole: {
795
833
  fontSize: 13,
796
- color: '#8C8C8C',
834
+ color: theme.textSecondary,
797
835
  marginLeft: 8,
798
836
  },
799
837
  memberBanned: {
800
- color: '#E53935',
838
+ color: theme.danger,
801
839
  },
802
840
  memberRemove: {
803
841
  marginLeft: 12,
@@ -4,6 +4,7 @@ import { useDispatch, useSelector } from 'react-redux';
4
4
  import { getActiveRoom, RootState } from '../../../roomStore';
5
5
  import {
6
6
  CloseButton,
7
+ CloseButtonText,
7
8
  GroupContainer,
8
9
  ModalBackground,
9
10
  ModalContainer,
@@ -11,8 +12,8 @@ import {
11
12
  } from '../styledModalComponents';
12
13
  import { deleteRoom as deleteRoomApi } from '../../../networking/api-requests/rooms.api';
13
14
  import { deleteRoom as deleteRoomAction } from '../../../roomStore/roomsSlice';
14
- import { Text } from 'react-native';
15
15
  import { useToast } from '../../../context/ToastContext';
16
+ import { useTheme } from '../../../hooks/useTheme';
16
17
  import { useT } from '../../../i18n/useT';
17
18
 
18
19
  interface DeleteChatModalProps {
@@ -26,6 +27,7 @@ const DeleteChatModal: React.FC<DeleteChatModalProps> = ({
26
27
  }) => {
27
28
  const dispatch = useDispatch();
28
29
  const { showToast } = useToast();
30
+ const theme = useTheme();
29
31
  const t = useT();
30
32
  const activeRoom = useSelector((state: RootState) => getActiveRoom(state));
31
33
 
@@ -59,7 +61,7 @@ const DeleteChatModal: React.FC<DeleteChatModalProps> = ({
59
61
  <ModalBackground>
60
62
  <ModalContainer>
61
63
  <CloseButton onPress={handleCloseModal}>
62
- <Text style={{ fontSize: 24 }}>&times;</Text>
64
+ <CloseButtonText>&times;</CloseButtonText>
63
65
  </CloseButton>
64
66
  <ModalTitle>{t('modal.deleteChat.title')}</ModalTitle>
65
67
 
@@ -77,9 +79,9 @@ const DeleteChatModal: React.FC<DeleteChatModalProps> = ({
77
79
  style={{
78
80
  width: '100%',
79
81
  borderWidth: 1,
80
- borderColor: 'red',
82
+ borderColor: theme.danger,
81
83
  }}
82
- color="red"
84
+ color={theme.danger}
83
85
  unstyled
84
86
  variant="outlined"
85
87
  />
@@ -1,6 +1,6 @@
1
1
  /** @format */
2
2
 
3
- import React, { useState } from 'react';
3
+ import React, { useMemo, useState } from 'react';
4
4
  import {
5
5
  ActivityIndicator,
6
6
  Modal,
@@ -17,6 +17,8 @@ import { useToast } from '../../../context/ToastContext';
17
17
  import { useT } from '../../../i18n/useT';
18
18
  import { getIconColor } from '../../../helpers/getIconColor';
19
19
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
20
+ import { useTheme } from '../../../hooks/useTheme';
21
+ import type { ChatTheme } from '../../../theme/theme';
20
22
 
21
23
  /**
22
24
  * Category ids go to `POST /v1/chats/reports/{chatName}` as-is; the labels
@@ -50,6 +52,8 @@ const ReportChatModal: React.FC<ReportChatModalProps> = ({
50
52
  const [details, setDetails] = useState('');
51
53
  const [sending, setSending] = useState(false);
52
54
  const primary = getIconColor(config);
55
+ const theme = useTheme();
56
+ const styles = useMemo(() => createStyles(theme), [theme]);
53
57
 
54
58
  const close = () => {
55
59
  setCategory(null);
@@ -130,7 +134,7 @@ const ReportChatModal: React.FC<ReportChatModalProps> = ({
130
134
  testID="report-details"
131
135
  style={styles.input}
132
136
  placeholder={t('modal.report.otherDetails')}
133
- placeholderTextColor="#8C8C8C"
137
+ placeholderTextColor={theme.textMuted}
134
138
  value={details}
135
139
  onChangeText={setDetails}
136
140
  multiline
@@ -155,7 +159,7 @@ const ReportChatModal: React.FC<ReportChatModalProps> = ({
155
159
  onPress={submit}
156
160
  >
157
161
  {sending ? (
158
- <ActivityIndicator color="#FFFFFF" />
162
+ <ActivityIndicator color={theme.textOnPrimary} />
159
163
  ) : (
160
164
  <Text style={styles.submitLabel}>{t('action.send')}</Text>
161
165
  )}
@@ -167,10 +171,10 @@ const ReportChatModal: React.FC<ReportChatModalProps> = ({
167
171
  );
168
172
  };
169
173
 
170
- const styles = StyleSheet.create({
174
+ const createStyles = (theme: ChatTheme) => StyleSheet.create({
171
175
  backdrop: {
172
176
  flex: 1,
173
- backgroundColor: 'rgba(15,15,20,0.45)',
177
+ backgroundColor: theme.overlay,
174
178
  alignItems: 'center',
175
179
  justifyContent: 'center',
176
180
  padding: 24,
@@ -178,13 +182,13 @@ const styles = StyleSheet.create({
178
182
  card: {
179
183
  width: '100%',
180
184
  borderRadius: 16,
181
- backgroundColor: '#FFFFFF',
185
+ backgroundColor: theme.surface,
182
186
  padding: 20,
183
187
  },
184
188
  title: {
185
189
  fontSize: 18,
186
190
  fontWeight: '600',
187
- color: '#141414',
191
+ color: theme.text,
188
192
  marginBottom: 16,
189
193
  },
190
194
  categories: {
@@ -197,21 +201,21 @@ const styles = StyleSheet.create({
197
201
  paddingVertical: 8,
198
202
  borderRadius: 20,
199
203
  borderWidth: 1,
200
- borderColor: '#E4E4E9',
204
+ borderColor: theme.border,
201
205
  },
202
206
  categoryLabel: {
203
207
  fontSize: 14,
204
- color: '#141414',
208
+ color: theme.text,
205
209
  },
206
210
  input: {
207
211
  marginTop: 16,
208
212
  minHeight: 80,
209
213
  borderRadius: 12,
210
214
  borderWidth: 1,
211
- borderColor: '#E4E4E9',
215
+ borderColor: theme.border,
212
216
  padding: 12,
213
217
  fontSize: 14,
214
- color: '#141414',
218
+ color: theme.text,
215
219
  textAlignVertical: 'top',
216
220
  },
217
221
  buttons: {
@@ -227,17 +231,17 @@ const styles = StyleSheet.create({
227
231
  justifyContent: 'center',
228
232
  },
229
233
  cancel: {
230
- backgroundColor: '#F2F2F7',
234
+ backgroundColor: theme.surfaceSecondary,
231
235
  },
232
236
  cancelLabel: {
233
237
  fontSize: 16,
234
238
  fontWeight: '500',
235
- color: '#141414',
239
+ color: theme.text,
236
240
  },
237
241
  submitLabel: {
238
242
  fontSize: 16,
239
243
  fontWeight: '600',
240
- color: '#FFFFFF',
244
+ color: theme.textOnPrimary,
241
245
  },
242
246
  });
243
247
 
@@ -8,6 +8,7 @@ import {
8
8
  import { SaveIcon } from '../../../assets/icons';
9
9
  import ModalHeaderComponent from '../ModalHeaderComponent';
10
10
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
11
+ import { useTheme } from '../../../hooks/useTheme';
11
12
  import { chatTextStyle } from '../../../helpers/typography';
12
13
  import { useDispatch, useSelector } from 'react-redux';
13
14
  import Button from '../../styled/Button';
@@ -122,6 +123,10 @@ const FilePreviewModal: React.FC<FilePreviewModalProps> = ({
122
123
  const dispatch = useDispatch();
123
124
  const { showToast } = useToast();
124
125
  const { config } = useChatSettingState();
126
+ const theme = useTheme();
127
+ // Info / audio cards: light keeps its warm tint (not in the palette),
128
+ // dark sits them on the secondary surface.
129
+ const cardBackground = theme.dark ? theme.surfaceSecondary : '#FFF8ED';
125
130
 
126
131
  // Cache the SAF directory the user granted so saving several documents
127
132
  // in a row doesn't re-prompt for a folder every time (Android only).
@@ -335,11 +340,11 @@ const FilePreviewModal: React.FC<FilePreviewModalProps> = ({
335
340
  width: '100%',
336
341
  padding: 20,
337
342
  gap: 12,
338
- backgroundColor: '#FFF8ED',
343
+ backgroundColor: cardBackground,
339
344
  borderRadius: 16,
340
345
  }}
341
346
  >
342
- <Text style={{ fontSize: 16, fontWeight: '600' }}>
347
+ <Text style={{ fontSize: 16, fontWeight: '600', color: theme.text }}>
343
348
  Voice message
344
349
  </Text>
345
350
  <AudioMessage
@@ -372,11 +377,11 @@ const FilePreviewModal: React.FC<FilePreviewModalProps> = ({
372
377
  width: '100%',
373
378
  padding: 20,
374
379
  gap: 12,
375
- backgroundColor: '#FFF8ED',
380
+ backgroundColor: cardBackground,
376
381
  borderRadius: 16,
377
382
  }}
378
383
  >
379
- <Text style={{ fontSize: 16, fontWeight: '600' }}>
384
+ <Text style={{ fontSize: 16, fontWeight: '600', color: theme.text }}>
380
385
  {displayFileName}
381
386
  </Text>
382
387
  <AudioMessage
@@ -409,19 +414,19 @@ const FilePreviewModal: React.FC<FilePreviewModalProps> = ({
409
414
  return (
410
415
  <View
411
416
  style={{
412
- backgroundColor: '#FFF8ED',
417
+ backgroundColor: cardBackground,
413
418
  borderRadius: 16,
414
419
  padding: 20,
415
420
  gap: 8,
416
421
  }}
417
422
  >
418
- <Text style={{ fontSize: 16, fontWeight: '600' }}>
423
+ <Text style={{ fontSize: 16, fontWeight: '600', color: theme.text }}>
419
424
  {displayFileName}
420
425
  </Text>
421
- <Text style={{ color: '#666' }}>
426
+ <Text style={{ color: theme.textSecondary }}>
422
427
  {activeFile.mimetype || 'unknown type'}
423
428
  </Text>
424
- <Text style={{ marginTop: 8 }}>
429
+ <Text style={{ marginTop: 8, color: theme.text }}>
425
430
  This file format can't be previewed inline. Tap the save icon
426
431
  above to download it.
427
432
  </Text>
@@ -440,7 +445,7 @@ const FilePreviewModal: React.FC<FilePreviewModalProps> = ({
440
445
  rightMenu={
441
446
  <>
442
447
  <Button onPress={saveClick}>
443
- <SaveIcon />
448
+ <SaveIcon color={theme.textSecondary} />
444
449
  </Button>
445
450
  </>
446
451
  }
@@ -10,6 +10,7 @@ import { Text, StyleProp, TextStyle } from 'react-native';
10
10
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
11
11
  import { resolveHeaderHeight } from '../../helpers/headerLayout';
12
12
  import { useChatSettingState } from '../../hooks/useChatSettingState';
13
+ import { useTheme } from '../../hooks/useTheme';
13
14
 
14
15
  interface ModalHeaderComponentProps {
15
16
  handleCloseModal?: any;
@@ -34,6 +35,7 @@ const ModalHeaderComponent: React.FC<ModalHeaderComponentProps> = ({
34
35
  // (notch / Dynamic Island / nothing).
35
36
  const insets = useSafeAreaInsets();
36
37
  const { config } = useChatSettingState();
38
+ const theme = useTheme();
37
39
  // Same band height as the in-chat header, sitting BELOW the status-bar
38
40
  // inset. Total = inset + band; paddingTop carries the inset and the band
39
41
  // is the content area (centered via HeaderContainer's align-items:center),
@@ -52,8 +54,13 @@ const ModalHeaderComponent: React.FC<ModalHeaderComponentProps> = ({
52
54
  leftMenu
53
55
  ) : (
54
56
  <>
55
- <Button EndIcon={<BackIcon />} onPress={handleCloseModal} />
56
- <Text style={titleStyle}>{headerTitle ?? 'Go back'}</Text>
57
+ <Button
58
+ EndIcon={<BackIcon color={theme.textSecondary} />}
59
+ onPress={handleCloseModal}
60
+ />
61
+ <Text style={[{ color: theme.text }, titleStyle]}>
62
+ {headerTitle ?? 'Go back'}
63
+ </Text>
57
64
  </>
58
65
  )}
59
66
  </HeaderLeft>
@@ -1,6 +1,7 @@
1
1
  import { FC, useRef, useState } from 'react';
2
2
  import {
3
3
  CloseButton,
4
+ CloseButtonText,
4
5
  GroupContainer,
5
6
  ModalBackground,
6
7
  ModalContainer,
@@ -9,9 +10,10 @@ import {
9
10
  } from '../styledModalComponents';
10
11
  import { TextareaInput } from '../../styled/StyledInputComponents/StyledInputComponents';
11
12
  import Button from '../../styled/Button';
12
- import { Modal, Text, TextInput, View, StyleSheet } from 'react-native';
13
+ import { Modal, TextInput, View, StyleSheet } from 'react-native';
13
14
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
14
15
  import { getIconColor } from '../../../helpers/getIconColor';
16
+ import { useTheme } from '../../../hooks/useTheme';
15
17
 
16
18
  interface ModalWrapperProps {
17
19
  iconTitle?: any;
@@ -47,6 +49,7 @@ export const ModalWrapper: FC<ModalWrapperProps> = ({
47
49
  }) => {
48
50
  const textareaRef = useRef<TextInput>(null);
49
51
  const { config } = useChatSettingState();
52
+ const theme = useTheme();
50
53
 
51
54
  // const handleInput = () => {
52
55
  // const textarea = textareaRef.current;
@@ -59,7 +62,7 @@ export const ModalWrapper: FC<ModalWrapperProps> = ({
59
62
  const inner = (
60
63
  <>
61
64
  <CloseButton onPress={handleCloseModal}>
62
- <Text style={{ fontSize: 24 }}>&times;</Text>
65
+ <CloseButtonText>&times;</CloseButtonText>
63
66
  </CloseButton>
64
67
  {IconTitle ? <IconTitle /> : <ModalTitle>{title}</ModalTitle>}
65
68
  {description && <ModalDescription>{description}</ModalDescription>}
@@ -87,7 +90,7 @@ export const ModalWrapper: FC<ModalWrapperProps> = ({
87
90
  // White label on the filled (e.g. red Delete) button. Button
88
91
  // applies an inline `color: color || 'black'` that overrides
89
92
  // the filled-variant white, so pass it explicitly.
90
- color="#FFFFFF"
93
+ color={theme.textOnPrimary}
91
94
  style={{
92
95
  width: '100%',
93
96
  backgroundColor: backgroundColorButton,
@@ -115,7 +118,14 @@ export const ModalWrapper: FC<ModalWrapperProps> = ({
115
118
  // their own bounded View instead — never full-screen (#14).
116
119
  // (Upstream also shrank this modal; this keeps that intent while
117
120
  // adding the white filled-button label via `inner` below.)
118
- <View style={styles.compactDialog}>{inner}</View>
121
+ <View
122
+ style={[
123
+ styles.compactDialog,
124
+ { backgroundColor: theme.surface, shadowColor: theme.shadow },
125
+ ]}
126
+ >
127
+ {inner}
128
+ </View>
119
129
  ) : (
120
130
  <ModalContainer style={{ maxWidth: 640 }}>{inner}</ModalContainer>
121
131
  )}
@@ -129,11 +139,9 @@ const styles = StyleSheet.create({
129
139
  width: '85%',
130
140
  maxWidth: 360,
131
141
  alignSelf: 'center',
132
- backgroundColor: '#fff',
133
142
  borderRadius: 16,
134
143
  padding: 24,
135
144
  gap: 16,
136
- shadowColor: '#000',
137
145
  shadowOffset: { width: 0, height: 4 },
138
146
  shadowOpacity: 0.2,
139
147
  shadowRadius: 12,
@@ -3,6 +3,7 @@ import { PickedImage } from '../../../helpers/pickImageAsset';
3
3
  import {
4
4
  ModalContainer,
5
5
  CloseButton,
6
+ CloseButtonText,
6
7
  ModalTitle,
7
8
  GroupContainer,
8
9
  } from '../styledModalComponents';
@@ -13,7 +14,6 @@ import UsersList from '../../UsersList/UsersList';
13
14
  import { ProfileImagePlaceholder } from '../../MainComponents/ProfileImagePlaceholder';
14
15
  import { ChatAccessOption } from '../../../types/types';
15
16
  import { AddPhotoIcon } from '../../../assets/icons';
16
- import { Text } from 'react-native';
17
17
 
18
18
  type ModalContentProps = {
19
19
  activeTab: '0' | '1' | null;
@@ -58,7 +58,7 @@ const ModalContent: React.FC<ModalContentProps> = ({
58
58
  return (
59
59
  <ModalContainer>
60
60
  <CloseButton onPress={handleCloseModal}>
61
- <Text style={{ fontSize: 24 }}>&times;</Text>
61
+ <CloseButtonText>&times;</CloseButtonText>
62
62
  </CloseButton>
63
63
  {activeTab === '0' && (
64
64
  <>