@ethora/chat-component-rn 26.8.2 → 26.8.4

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 (547) hide show
  1. package/CHANGELOG.md +18 -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 +61 -7
  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 +145 -9
  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/helpers/preferencesStorage.js +44 -0
  142. package/lib/commonjs/helpers/preferencesStorage.js.map +1 -0
  143. package/lib/commonjs/hooks/useCustomTypingIndicator.js +7 -3
  144. package/lib/commonjs/hooks/useCustomTypingIndicator.js.map +1 -1
  145. package/lib/commonjs/hooks/useLogout.js +10 -3
  146. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  147. package/lib/commonjs/hooks/useTheme.js +35 -0
  148. package/lib/commonjs/hooks/useTheme.js.map +1 -0
  149. package/lib/commonjs/i18n/strings.js +60 -0
  150. package/lib/commonjs/i18n/strings.js.map +1 -1
  151. package/lib/commonjs/main.js +88 -0
  152. package/lib/commonjs/main.js.map +1 -1
  153. package/lib/commonjs/networking/api-requests/push.api.js +130 -45
  154. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  155. package/lib/commonjs/networking/api-requests/rooms.api.js +13 -0
  156. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  157. package/lib/commonjs/roomStore/chatSettingsSlice.js +17 -4
  158. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  159. package/lib/commonjs/services/pushRegistration.js +261 -0
  160. package/lib/commonjs/services/pushRegistration.js.map +1 -0
  161. package/lib/commonjs/services/pushSubscriptionService.js +0 -24
  162. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  163. package/lib/commonjs/theme/index.js +38 -0
  164. package/lib/commonjs/theme/index.js.map +1 -0
  165. package/lib/commonjs/theme/styled.d.js +4 -0
  166. package/lib/commonjs/theme/styled.d.js.map +1 -0
  167. package/lib/commonjs/theme/theme.js +161 -0
  168. package/lib/commonjs/theme/theme.js.map +1 -0
  169. package/lib/commonjs/version.js +1 -1
  170. package/lib/module/assets/EmptyChatIllustration.js +7 -6
  171. package/lib/module/assets/EmptyChatIllustration.js.map +1 -1
  172. package/lib/module/assets/icons.js +1 -1
  173. package/lib/module/assets/icons.js.map +1 -1
  174. package/lib/module/components/AuthForms/Login.js +23 -8
  175. package/lib/module/components/AuthForms/Login.js.map +1 -1
  176. package/lib/module/components/ContextMenu/ContextMenuComponents.js +12 -4
  177. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  178. package/lib/module/components/DropdownMenu/DropdownMenu.js +16 -9
  179. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  180. package/lib/module/components/ExampleComponents/CustomMessage.js +25 -7
  181. package/lib/module/components/ExampleComponents/CustomMessage.js.map +1 -1
  182. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  183. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  184. package/lib/module/components/Header/HeaderRoomList.js +9 -6
  185. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  186. package/lib/module/components/InputComponents/Search.js +13 -4
  187. package/lib/module/components/InputComponents/Search.js.map +1 -1
  188. package/lib/module/components/MainComponents/ChatHeader.js +9 -3
  189. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  190. package/lib/module/components/MainComponents/ChatRoom.js +6 -3
  191. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  192. package/lib/module/components/MainComponents/ChatWrapper.js +8 -6
  193. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  194. package/lib/module/components/MainComponents/LanguageSelectorModal.js +37 -10
  195. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  196. package/lib/module/components/MainComponents/MediaMessage.js +42 -19
  197. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  198. package/lib/module/components/MainComponents/MessageList.js +9 -3
  199. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  200. package/lib/module/components/MainComponents/RNStyled.js +12 -4
  201. package/lib/module/components/MainComponents/RNStyled.js.map +1 -1
  202. package/lib/module/components/MainComponents/ReduxWrapper.js +64 -10
  203. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  204. package/lib/module/components/MainComponents/RoomList.js +12 -9
  205. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  206. package/lib/module/components/MainComponents/Select.js +29 -8
  207. package/lib/module/components/MainComponents/Select.js.map +1 -1
  208. package/lib/module/components/Menu/HeaderRoomListMenu.js +24 -13
  209. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  210. package/lib/module/components/MessageBubble/BottomReplyContainer.js +24 -8
  211. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  212. package/lib/module/components/MessageBubble/Message.js +47 -25
  213. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  214. package/lib/module/components/MessageBubble/MessageInteractions.js +15 -4
  215. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  216. package/lib/module/components/MessageBubble/MessageReaction.js +10 -5
  217. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  218. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js +2 -6
  219. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  220. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +42 -27
  221. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  222. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +79 -26
  223. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  224. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +6 -8
  225. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  226. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +18 -16
  227. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  228. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +20 -9
  229. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  230. package/lib/module/components/Modals/ModalHeaderComponent.js +8 -2
  231. package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
  232. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +10 -10
  233. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  234. package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -6
  235. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  236. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +18 -15
  237. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  238. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +14 -9
  239. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -1
  240. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -8
  241. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  242. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  243. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  244. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  245. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  246. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  247. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  248. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  249. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  250. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  251. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  252. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +3 -2
  253. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  254. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +18 -15
  255. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  256. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +148 -12
  257. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  258. package/lib/module/components/Modals/styledModalComponents.js +59 -15
  259. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  260. package/lib/module/components/RoomComponents/ChatRoomItem.js +16 -10
  261. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  262. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  263. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  264. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  265. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  266. package/lib/module/components/Thread/ThreadWrapper.js +9 -2
  267. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  268. package/lib/module/components/Toast/Toast.js +3 -1
  269. package/lib/module/components/Toast/Toast.js.map +1 -1
  270. package/lib/module/components/styled/AudioMessage.js +16 -11
  271. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  272. package/lib/module/components/styled/Button.js +17 -9
  273. package/lib/module/components/styled/Button.js.map +1 -1
  274. package/lib/module/components/styled/DateLabel.js +8 -5
  275. package/lib/module/components/styled/DateLabel.js.map +1 -1
  276. package/lib/module/components/styled/MediaModal.js +29 -23
  277. package/lib/module/components/styled/MediaModal.js.map +1 -1
  278. package/lib/module/components/styled/RoomListComponents/index.js +62 -39
  279. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  280. package/lib/module/components/styled/SendInput.js +13 -8
  281. package/lib/module/components/styled/SendInput.js.map +1 -1
  282. package/lib/module/components/styled/StyledComponents.js +67 -23
  283. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  284. package/lib/module/components/styled/StyledInput.js +32 -18
  285. package/lib/module/components/styled/StyledInput.js.map +1 -1
  286. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  287. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  288. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  289. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  290. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +39 -18
  291. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  292. package/lib/module/components/styled/TreadLabel.js +6 -3
  293. package/lib/module/components/styled/TreadLabel.js.map +1 -1
  294. package/lib/module/context/MessageNotificationContext.js +14 -3
  295. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  296. package/lib/module/helpers/getChatBackground.js +5 -1
  297. package/lib/module/helpers/getChatBackground.js.map +1 -1
  298. package/lib/module/helpers/getDateLabelColor.js +4 -1
  299. package/lib/module/helpers/getDateLabelColor.js.map +1 -1
  300. package/lib/module/helpers/getIconColor.js +5 -1
  301. package/lib/module/helpers/getIconColor.js.map +1 -1
  302. package/lib/module/helpers/getSenderNameColor.js +4 -1
  303. package/lib/module/helpers/getSenderNameColor.js.map +1 -1
  304. package/lib/module/helpers/markdownParser.js +27 -5
  305. package/lib/module/helpers/markdownParser.js.map +1 -1
  306. package/lib/module/helpers/parseMessageBody.js +82 -24
  307. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  308. package/lib/module/helpers/preferencesStorage.js +36 -0
  309. package/lib/module/helpers/preferencesStorage.js.map +1 -0
  310. package/lib/module/hooks/useCustomTypingIndicator.js +8 -3
  311. package/lib/module/hooks/useCustomTypingIndicator.js.map +1 -1
  312. package/lib/module/hooks/useLogout.js +10 -3
  313. package/lib/module/hooks/useLogout.js.map +1 -1
  314. package/lib/module/hooks/useTheme.js +30 -0
  315. package/lib/module/hooks/useTheme.js.map +1 -0
  316. package/lib/module/i18n/strings.js +60 -0
  317. package/lib/module/i18n/strings.js.map +1 -1
  318. package/lib/module/main.js +4 -0
  319. package/lib/module/main.js.map +1 -1
  320. package/lib/module/networking/api-requests/push.api.js +119 -45
  321. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  322. package/lib/module/networking/api-requests/rooms.api.js +12 -0
  323. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  324. package/lib/module/roomStore/chatSettingsSlice.js +14 -3
  325. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  326. package/lib/module/services/pushRegistration.js +250 -0
  327. package/lib/module/services/pushRegistration.js.map +1 -0
  328. package/lib/module/services/pushSubscriptionService.js +0 -24
  329. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  330. package/lib/module/theme/index.js +7 -0
  331. package/lib/module/theme/index.js.map +1 -0
  332. package/lib/module/theme/styled.d.js +6 -0
  333. package/lib/module/theme/styled.d.js.map +1 -0
  334. package/lib/module/theme/theme.js +156 -0
  335. package/lib/module/theme/theme.js.map +1 -0
  336. package/lib/module/version.js +1 -1
  337. package/lib/typescript/assets/EmptyChatIllustration.d.ts +1 -0
  338. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -1
  339. package/lib/typescript/assets/icons.d.ts +8 -0
  340. package/lib/typescript/assets/icons.d.ts.map +1 -1
  341. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  342. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  343. package/lib/typescript/components/ExampleComponents/CustomMessage.d.ts.map +1 -1
  344. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  345. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  346. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  347. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  348. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  349. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
  350. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  351. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  352. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  353. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  354. package/lib/typescript/components/MainComponents/Select.d.ts.map +1 -1
  355. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  356. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  357. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  358. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  359. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  360. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  361. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  362. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  363. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -1
  364. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  365. package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
  366. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  367. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  368. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  369. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -1
  370. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  371. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  372. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  373. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +2 -2
  374. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  375. package/lib/typescript/components/Modals/SettingsModals/Visibility/RadioInput.d.ts.map +1 -1
  376. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  377. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  378. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  379. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  380. package/lib/typescript/components/Modals/styledModalComponents.d.ts +2 -0
  381. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  382. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  383. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  384. package/lib/typescript/components/RoomComponents/styled/StyledRoomComponents.d.ts.map +1 -1
  385. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  386. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  387. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  388. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  389. package/lib/typescript/components/styled/MediaModal.d.ts +2 -2
  390. package/lib/typescript/components/styled/MediaModal.d.ts.map +1 -1
  391. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  392. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  393. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  394. package/lib/typescript/components/styled/StyledInput.d.ts.map +1 -1
  395. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  396. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  397. package/lib/typescript/components/styled/TreadLabel.d.ts.map +1 -1
  398. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  399. package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
  400. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -1
  401. package/lib/typescript/helpers/getDateLabelColor.d.ts +3 -7
  402. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -1
  403. package/lib/typescript/helpers/getIconColor.d.ts +4 -7
  404. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -1
  405. package/lib/typescript/helpers/getSenderNameColor.d.ts +3 -7
  406. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -1
  407. package/lib/typescript/helpers/markdownParser.d.ts +8 -1
  408. package/lib/typescript/helpers/markdownParser.d.ts.map +1 -1
  409. package/lib/typescript/helpers/parseMessageBody.d.ts +8 -1
  410. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  411. package/lib/typescript/helpers/preferencesStorage.d.ts +11 -0
  412. package/lib/typescript/helpers/preferencesStorage.d.ts.map +1 -0
  413. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts +2 -0
  414. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts.map +1 -1
  415. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  416. package/lib/typescript/hooks/useTheme.d.ts +16 -0
  417. package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
  418. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  419. package/lib/typescript/main.d.ts +9 -0
  420. package/lib/typescript/main.d.ts.map +1 -1
  421. package/lib/typescript/networking/api-requests/push.api.d.ts +46 -3
  422. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  423. package/lib/typescript/networking/api-requests/rooms.api.d.ts +1 -0
  424. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  425. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +12 -1
  426. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  427. package/lib/typescript/services/pushRegistration.d.ts +21 -0
  428. package/lib/typescript/services/pushRegistration.d.ts.map +1 -0
  429. package/lib/typescript/services/pushSubscriptionService.d.ts +0 -4
  430. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  431. package/lib/typescript/theme/index.d.ts +5 -0
  432. package/lib/typescript/theme/index.d.ts.map +1 -0
  433. package/lib/typescript/theme/theme.d.ts +127 -0
  434. package/lib/typescript/theme/theme.d.ts.map +1 -0
  435. package/lib/typescript/types/models/room.model.d.ts +1 -0
  436. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  437. package/lib/typescript/types/types.d.ts +42 -0
  438. package/lib/typescript/types/types.d.ts.map +1 -1
  439. package/lib/typescript/version.d.ts +1 -1
  440. package/package.json +2 -2
  441. package/src/assets/EmptyChatIllustration.tsx +7 -5
  442. package/src/assets/icons.tsx +24 -0
  443. package/src/components/AuthForms/Login.tsx +11 -9
  444. package/src/components/ContextMenu/ContextMenuComponents.tsx +4 -4
  445. package/src/components/DropdownMenu/DropdownMenu.tsx +14 -6
  446. package/src/components/ExampleComponents/CustomMessage.tsx +9 -8
  447. package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +6 -6
  448. package/src/components/Header/HeaderRoomList.tsx +11 -6
  449. package/src/components/InputComponents/Search.tsx +7 -4
  450. package/src/components/MainComponents/ChatHeader.tsx +9 -3
  451. package/src/components/MainComponents/ChatRoom.tsx +5 -2
  452. package/src/components/MainComponents/ChatWrapper.tsx +8 -6
  453. package/src/components/MainComponents/LanguageSelectorModal.tsx +33 -7
  454. package/src/components/MainComponents/MediaMessage.tsx +37 -18
  455. package/src/components/MainComponents/MessageList.tsx +13 -3
  456. package/src/components/MainComponents/RNStyled.tsx +4 -4
  457. package/src/components/MainComponents/ReduxWrapper.tsx +67 -10
  458. package/src/components/MainComponents/RoomList.tsx +13 -7
  459. package/src/components/MainComponents/Select.tsx +13 -8
  460. package/src/components/Menu/HeaderRoomListMenu.tsx +30 -13
  461. package/src/components/MessageBubble/BottomReplyContainer.tsx +16 -11
  462. package/src/components/MessageBubble/Message.tsx +48 -25
  463. package/src/components/MessageBubble/MessageInteractions.tsx +17 -4
  464. package/src/components/MessageBubble/MessageReaction.tsx +9 -4
  465. package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +2 -2
  466. package/src/components/Modals/AttachSheet/AttachSheet.tsx +57 -23
  467. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +63 -25
  468. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +6 -4
  469. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +18 -14
  470. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +14 -9
  471. package/src/components/Modals/ModalHeaderComponent.tsx +9 -2
  472. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +14 -6
  473. package/src/components/Modals/NewChatModal/ModalContent.tsx +2 -2
  474. package/src/components/Modals/NewChatModal/NewChatModal.tsx +19 -15
  475. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +15 -8
  476. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +2 -3
  477. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +8 -6
  478. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +5 -3
  479. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +4 -4
  480. package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +9 -5
  481. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +7 -7
  482. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +3 -1
  483. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  484. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +171 -9
  485. package/src/components/Modals/styledModalComponents.tsx +23 -15
  486. package/src/components/RoomComponents/ChatRoomItem.tsx +19 -10
  487. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +4 -2
  488. package/src/components/RoomComponents/styled/StyledRoomComponents.ts +2 -0
  489. package/src/components/Thread/ThreadWrapper.tsx +6 -5
  490. package/src/components/Toast/Toast.tsx +1 -1
  491. package/src/components/styled/AudioMessage.tsx +12 -9
  492. package/src/components/styled/Button.tsx +15 -8
  493. package/src/components/styled/DateLabel.tsx +7 -3
  494. package/src/components/styled/MediaModal.tsx +30 -25
  495. package/src/components/styled/RoomListComponents/index.tsx +60 -35
  496. package/src/components/styled/SendInput.tsx +23 -8
  497. package/src/components/styled/StyledComponents.ts +30 -23
  498. package/src/components/styled/StyledInput.tsx +35 -21
  499. package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +8 -8
  500. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +20 -7
  501. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +15 -19
  502. package/src/components/styled/TreadLabel.tsx +9 -3
  503. package/src/context/MessageNotificationContext.tsx +18 -4
  504. package/src/helpers/getChatBackground.ts +3 -1
  505. package/src/helpers/getDateLabelColor.ts +5 -3
  506. package/src/helpers/getIconColor.ts +6 -3
  507. package/src/helpers/getSenderNameColor.ts +5 -3
  508. package/src/helpers/markdownParser.tsx +29 -5
  509. package/src/helpers/parseMessageBody.tsx +79 -26
  510. package/src/helpers/preferencesStorage.ts +40 -0
  511. package/src/hooks/useCustomTypingIndicator.tsx +7 -3
  512. package/src/hooks/useLogout.tsx +10 -3
  513. package/src/hooks/useTheme.ts +41 -0
  514. package/src/i18n/strings.ts +60 -0
  515. package/src/main.ts +33 -0
  516. package/src/networking/api-requests/push.api.ts +185 -62
  517. package/src/networking/api-requests/rooms.api.ts +9 -0
  518. package/src/roomStore/chatSettingsSlice.ts +24 -2
  519. package/src/services/pushRegistration.ts +369 -0
  520. package/src/services/pushSubscriptionService.ts +0 -34
  521. package/src/theme/index.ts +10 -0
  522. package/src/theme/styled.d.ts +9 -0
  523. package/src/theme/theme.ts +277 -0
  524. package/src/types/models/room.model.ts +1 -0
  525. package/src/types/types.ts +47 -0
  526. package/src/version.ts +1 -1
  527. package/lib/commonjs/context/PushNotificationProvider.js +0 -79
  528. package/lib/commonjs/context/PushNotificationProvider.js.map +0 -1
  529. package/lib/commonjs/hooks/usePushNotifications.js +0 -110
  530. package/lib/commonjs/hooks/usePushNotifications.js.map +0 -1
  531. package/lib/commonjs/services/pushNotifications.js +0 -143
  532. package/lib/commonjs/services/pushNotifications.js.map +0 -1
  533. package/lib/module/context/PushNotificationProvider.js +0 -79
  534. package/lib/module/context/PushNotificationProvider.js.map +0 -1
  535. package/lib/module/hooks/usePushNotifications.js +0 -106
  536. package/lib/module/hooks/usePushNotifications.js.map +0 -1
  537. package/lib/module/services/pushNotifications.js +0 -130
  538. package/lib/module/services/pushNotifications.js.map +0 -1
  539. package/lib/typescript/context/PushNotificationProvider.d.ts +0 -2
  540. package/lib/typescript/context/PushNotificationProvider.d.ts.map +0 -1
  541. package/lib/typescript/hooks/usePushNotifications.d.ts +0 -5
  542. package/lib/typescript/hooks/usePushNotifications.d.ts.map +0 -1
  543. package/lib/typescript/services/pushNotifications.d.ts +0 -10
  544. package/lib/typescript/services/pushNotifications.d.ts.map +0 -1
  545. package/src/context/PushNotificationProvider.tsx +0 -78
  546. package/src/hooks/usePushNotifications.ts +0 -131
  547. package/src/services/pushNotifications.ts +0 -170
@@ -13,8 +13,9 @@ export const MessageContainer = styled.View<{ isUser: boolean }>`
13
13
  `;
14
14
 
15
15
  export const MessageBubble = styled.View<{ isUser: boolean }>`
16
- background-color: ${(props) => (!props.isUser ? '#f1f0f0' : '#0052CD')};
17
- color: ${(props) => (!props.isUser ? '#000' : '#fff')};
16
+ background-color: ${({ isUser, theme }) =>
17
+ !isUser ? theme.surfaceSecondary : theme.primary};
18
+ color: ${({ isUser, theme }) => (!isUser ? theme.text : theme.textOnPrimary)};
18
19
  border-radius: 12px;
19
20
  padding: 10px;
20
21
  max-width: 60%;
@@ -27,14 +28,14 @@ export const MessageText = styled.View`
27
28
 
28
29
  export const UserName = styled.Text<{ isUser: boolean; color?: string }>`
29
30
  font-weight: bold;
30
- color: ${(props) =>
31
- props.color ? props.color : props.isUser ? '#0052CD' : '#333'};
31
+ color: ${({ color, isUser, theme }) =>
32
+ color ? color : isUser ? theme.primary : theme.text};
32
33
  margin-right: 8px;
33
34
  `;
34
35
 
35
36
  export const MessageTimestamp = styled.Text`
36
37
  font-size: 13px;
37
- color: #999;
38
+ color: ${({ theme }) => theme.textMuted};
38
39
  margin-left: 8px;
39
40
  `;
40
41
 
@@ -50,8 +51,8 @@ export const MessagePhotoContainer = styled.Text`
50
51
  `;
51
52
 
52
53
  export const SystemMessage = styled.Text`
53
- background-color: #e0e0e0;
54
- color: #555;
54
+ background-color: ${({ theme }) => theme.systemMessageBackground};
55
+ color: ${({ theme }) => theme.textSecondary};
55
56
  text-align: center;
56
57
  padding: 8px;
57
58
  border-radius: 8px;
@@ -62,7 +63,7 @@ export const SystemMessage = styled.Text`
62
63
  export const SystemMessageText = styled.Text`
63
64
  margin: 0;
64
65
  font-size: 14px;
65
- color: #333;
66
+ color: ${({ theme }) => theme.text};
66
67
  `;
67
68
 
68
69
  const CustomMessageExample = forwardRef<View, MessageProps>(
@@ -96,7 +96,7 @@ const Dot = styled(Animated.View)`
96
96
  width: 6px;
97
97
  height: 6px;
98
98
  border-radius: 3px;
99
- background-color: #666;
99
+ background-color: ${({ theme }) => theme.textSecondary};
100
100
  margin: 0 2px;
101
101
  `;
102
102
 
@@ -132,7 +132,7 @@ export const MinimalTypingIndicator: React.FC<Props> = ({ isVisible }) => {
132
132
  };
133
133
 
134
134
  const Bubble = styled.View`
135
- background-color: #f0f0f0;
135
+ background-color: ${({ theme }) => theme.surfaceSecondary};
136
136
  border-radius: 18px;
137
137
  padding: 8px 16px;
138
138
  margin: 4px 0;
@@ -142,7 +142,7 @@ const Bubble = styled.View`
142
142
 
143
143
  const BubbleText = styled.Text`
144
144
  font-size: 14px;
145
- color: #666;
145
+ color: ${({ theme }) => theme.textSecondary};
146
146
  `;
147
147
 
148
148
  const BubbleTail = styled.View`
@@ -156,7 +156,7 @@ const BubbleTail = styled.View`
156
156
  border-top-width: 6px;
157
157
  border-left-color: transparent;
158
158
  border-right-color: transparent;
159
- border-top-color: #f0f0f0;
159
+ border-top-color: ${({ theme }) => theme.surfaceSecondary};
160
160
  `;
161
161
 
162
162
  const BubbleWrapper = styled.View`
@@ -187,7 +187,7 @@ const ProgressWrap = styled.View`
187
187
 
188
188
  const ProgressLabel = styled.Text`
189
189
  font-size: 12px;
190
- color: #666;
190
+ color: ${({ theme }) => theme.textSecondary};
191
191
  margin-right: 8px;
192
192
  `;
193
193
 
@@ -202,7 +202,7 @@ const Bar = styled.View`
202
202
  const Runner = styled(Animated.View)`
203
203
  width: 60px;
204
204
  height: 4px;
205
- background-color: #007bff;
205
+ background-color: ${({ theme }) => theme.primary};
206
206
  `;
207
207
 
208
208
  export const ProgressTypingIndicator: React.FC<Props> = ({ text, isVisible }) => {
@@ -7,6 +7,7 @@ import { ProfileImagePlaceholder } from '../MainComponents/ProfileImagePlacehold
7
7
  import { useChatSettingState } from '../../hooks/useChatSettingState';
8
8
  import { BurgerMenuIcon } from '../../assets/icons';
9
9
  import Button from '../styled/Button';
10
+ import { useTheme } from '../../hooks/useTheme';
10
11
  import { useT } from '../../i18n/useT';
11
12
 
12
13
  interface HeaderRoomListProps {
@@ -15,6 +16,7 @@ interface HeaderRoomListProps {
15
16
 
16
17
  export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
17
18
  const { config, user, selectedUser } = useChatSettingState();
19
+ const theme = useTheme();
18
20
  const t = useT();
19
21
  const insets = useSafeAreaInsets();
20
22
  const topInset = config?.headerLayout?.safeAreaTop ? insets.top : 0;
@@ -39,7 +41,13 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
39
41
  }, [config?.backgroundChat?.image]);
40
42
 
41
43
  return (
42
- <View style={[styles.headerContainer, topInset ? { paddingTop: 16 + topInset } : null]}>
44
+ <View
45
+ style={[
46
+ styles.headerContainer,
47
+ { backgroundColor: theme.surface, shadowColor: theme.shadow },
48
+ topInset ? { paddingTop: 16 + topInset } : null,
49
+ ]}
50
+ >
43
51
  {!config?.disableRoomMenu && config?.headerMenu ? (
44
52
  <View style={styles.leftContainer}>
45
53
  <Button
@@ -47,7 +55,7 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
47
55
  style={styles.menuButton}
48
56
  color="black"
49
57
  unstyled
50
- EndIcon={<BurgerMenuIcon color={config?.colors?.primary} />}
58
+ EndIcon={<BurgerMenuIcon color={theme.icon} />}
51
59
  onPress={() =>
52
60
  typeof config?.headerMenu === 'function'
53
61
  ? config.headerMenu()
@@ -62,7 +70,7 @@ export const HeaderRoomList: FC<HeaderRoomListProps> = ({ setDrawerOpen }) => {
62
70
  {config?.headerLogo ? (
63
71
  HeaderLogo
64
72
  ) : (
65
- <Text style={{ fontWeight: 500, fontSize: 18 }}>
73
+ <Text style={{ fontWeight: 500, fontSize: 18, color: theme.text }}>
66
74
  {t('roomList.title')}
67
75
  </Text>
68
76
  )}
@@ -91,11 +99,8 @@ const styles = StyleSheet.create({
91
99
  paddingBottom: 12,
92
100
  minHeight: 56,
93
101
  justifyContent: 'space-between',
94
- backgroundColor: '#FFFFFF',
95
102
  borderBottomLeftRadius: 20,
96
103
  borderBottomRightRadius: 20,
97
- // Lifts the header off the page ground behind it.
98
- shadowColor: '#101828',
99
104
  shadowOffset: { width: 0, height: 4 },
100
105
  shadowOpacity: 0.06,
101
106
  shadowRadius: 12,
@@ -6,6 +6,7 @@ import {
6
6
  TouchableOpacity,
7
7
  TextInputProps,
8
8
  } from 'react-native';
9
+ import { useTheme } from '../../hooks/useTheme';
9
10
 
10
11
  const shouldForwardProp = (prop: string) =>
11
12
  prop !== 'animated' && prop !== 'expanded' && prop !== 'direction';
@@ -18,7 +19,7 @@ const SearchInputWrapper = styled.View.withConfig({ shouldForwardProp })<{
18
19
  position: relative;
19
20
  flex-direction: row;
20
21
  align-items: center;
21
- background-color: #fff;
22
+ background-color: ${({ theme }) => theme.surface};
22
23
  border-radius: 16px;
23
24
  height: 44px;
24
25
  padding: 0 12px;
@@ -40,7 +41,7 @@ const SearchIcon = styled(TouchableOpacity)<{
40
41
  margin-right: 8px;
41
42
  align-items: center;
42
43
  justify-content: center;
43
- color: #999;
44
+ color: ${({ theme }) => theme.textMuted};
44
45
  `;
45
46
 
46
47
  const StyledInput = styled(TextInput)<{
@@ -51,7 +52,7 @@ const StyledInput = styled(TextInput)<{
51
52
  border: none;
52
53
  flex: 1;
53
54
  font-size: 16px;
54
- color: #000;
55
+ color: ${({ theme }) => theme.text};
55
56
  opacity: ${({ animated, expanded }) => (animated && !expanded ? 0 : 1)};
56
57
  display: ${({ animated, expanded }) =>
57
58
  animated && !expanded ? 'none' : 'flex'};
@@ -77,6 +78,7 @@ const SearchInput: React.FC<SearchInputProps> = ({
77
78
  placeholder,
78
79
  ...props
79
80
  }) => {
81
+ const theme = useTheme();
80
82
  const [isExpanded, setIsExpanded] = useState(false);
81
83
  const [isTyping, setIsTyping] = useState(false);
82
84
  const inputRef = useRef<TextInput | null>(null);
@@ -128,7 +130,8 @@ const SearchInput: React.FC<SearchInputProps> = ({
128
130
  expanded={isExpanded}
129
131
  onChangeText={handleInput}
130
132
  placeholder={placeholder}
131
- placeholderTextColor="#999"
133
+ placeholderTextColor={theme.textMuted}
134
+ keyboardAppearance={theme.dark ? 'dark' : 'light'}
132
135
  {...props}
133
136
  />
134
137
  </SearchInputWrapper>
@@ -33,6 +33,7 @@ import { useFileToken } from '../../hooks/useFileToken';
33
33
  import { appendFileToken } from '../../helpers/secureFileUrl';
34
34
  import { View, StyleSheet, Text, Keyboard } from 'react-native';
35
35
  import { getIconColor } from '../../helpers/getIconColor';
36
+ import { useTheme } from '../../hooks/useTheme';
36
37
  import { resolveHeaderHeight } from '../../helpers/headerLayout';
37
38
  import { getElementFont } from '../../helpers/getElementFont';
38
39
  import { useT } from '../../i18n/useT';
@@ -54,6 +55,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
54
55
  const roomState = useRoomState(currentRoom.jid).room;
55
56
  const composing = roomState?.composing;
56
57
  const { config } = useChatSettingState();
58
+ const theme = useTheme();
57
59
  const t = useT();
58
60
 
59
61
  const handleChangeChat = (chat: IRoom) => {
@@ -100,7 +102,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
100
102
  {handleBackClick && !config?.headerChatMenu ? (
101
103
  <View style={styles.leftContainer}>
102
104
  <Button
103
- EndIcon={<BackIcon />}
105
+ EndIcon={<BackIcon color={theme.textSecondary} />}
104
106
  onPress={() => handleBackClick(false)}
105
107
  />
106
108
  </View>
@@ -108,7 +110,7 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
108
110
  <View style={styles.leftContainer}>
109
111
  <Button
110
112
  style={styles.menuButton}
111
- color="black"
113
+ color={theme.text}
112
114
  unstyled
113
115
  EndIcon={<BurgerMenuIcon color={getIconColor(config)} />}
114
116
  onPress={handleHeaderChatMenu}
@@ -180,7 +182,11 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
180
182
  <Composing usersTyping={currentRoom?.composingList} />
181
183
  ) : config?.disableUserCount ? undefined : (
182
184
  <ChatContainerHeaderLabel
183
- style={[styles.subLabel, getElementFont(config, 'headerSubtitle')]}
185
+ style={[
186
+ styles.subLabel,
187
+ { color: theme.textSecondary },
188
+ getElementFont(config, 'headerSubtitle'),
189
+ ]}
184
190
  >
185
191
  <Text>
186
192
  {t(
@@ -30,6 +30,7 @@ import { IConfig } from '../../types/models/config.model';
30
30
  import { useRoomInitialization } from '../../hooks/useRoomInitialization';
31
31
  import { useRoomState } from '../../hooks/useRoomState';
32
32
  import { useChatSettingState } from '../../hooks/useChatSettingState';
33
+ import { useTheme } from '../../hooks/useTheme';
33
34
  import { isOwnMessage } from '../../helpers/isOwnMessage';
34
35
  import CustomTypingIndicator from '../styled/StyledInputComponents/CustomTypingIndicator';
35
36
  // import {PanGestureHandler} from 'react-native-gesture-handler';
@@ -82,6 +83,7 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
82
83
  const { client } = useXmppClient();
83
84
  const dispatch = useDispatch();
84
85
  const insets = useSafeAreaInsets();
86
+ const theme = useTheme();
85
87
 
86
88
  const [isLoadingMore, setIsLoadingMore] = useState<boolean>(false);
87
89
 
@@ -408,10 +410,10 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
408
410
  // a square white block behind a rounded composer just hid the corners.
409
411
  style: {
410
412
  paddingBottom: inputDockPaddingBottom,
411
- backgroundColor: '#fff',
413
+ backgroundColor: theme.surface,
412
414
  borderTopLeftRadius: 20,
413
415
  borderTopRightRadius: 20,
414
- shadowColor: '#101828',
416
+ shadowColor: theme.shadow,
415
417
  shadowOffset: { width: 0, height: -4 },
416
418
  shadowOpacity: 0.06,
417
419
  shadowRadius: 12,
@@ -464,6 +466,7 @@ const ChatRoom: React.FC<ChatRoomProps> = React.memo(
464
466
  >
465
467
  <EmptyChatIllustration
466
468
  color={getIconColor(configWithEventHandlers)}
469
+ panelColor={theme.dark ? theme.surfaceSecondary : undefined}
467
470
  />
468
471
  </View>
469
472
  ) : !roomMessages || roomMessages.length === 0 ? (
@@ -35,6 +35,7 @@ import Modal from '../Modals/Modal/Modal';
35
35
  import ThreadWrapper from '../Thread/ThreadWrapper';
36
36
  import {ModalWrapper} from '../Modals/ModalWrapper/ModalWrapper';
37
37
  import {useChatSettingState} from '../../hooks/useChatSettingState';
38
+ import {useTheme} from '../../hooks/useTheme';
38
39
  import { usePendingNotification } from '../../hooks/usePendingNotification';
39
40
  import {DeviceEventEmitter, Pressable, Text, View} from 'react-native';
40
41
  import {pushLog as devPushLog} from '../../utils/devLogger';
@@ -68,6 +69,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
68
69
  } = useChatSettingState();
69
70
 
70
71
  usePendingNotification();
72
+ const theme = useTheme();
71
73
 
72
74
  const [isInited, setInited] = useState(false);
73
75
  const [showModal, setShowModal] = useState(false);
@@ -437,7 +439,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
437
439
  <View
438
440
  style={{
439
441
  padding: 20,
440
- backgroundColor: '#fff',
442
+ backgroundColor: theme.surface,
441
443
  borderRadius: 12,
442
444
  maxWidth: 320,
443
445
  alignItems: 'stretch',
@@ -447,11 +449,11 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
447
449
  fontSize: 16,
448
450
  fontWeight: '600',
449
451
  marginBottom: 8,
450
- color: '#222',
452
+ color: theme.text,
451
453
  }}>
452
454
  Connection error
453
455
  </Text>
454
- <Text style={{fontSize: 13, color: '#444', marginBottom: 16}}>
456
+ <Text style={{fontSize: 13, color: theme.textSecondary, marginBottom: 16}}>
455
457
  {errorMsg ?? 'Something went wrong while connecting to chat.'}
456
458
  </Text>
457
459
  <Pressable
@@ -468,10 +470,10 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
468
470
  paddingVertical: 10,
469
471
  paddingHorizontal: 16,
470
472
  borderRadius: 6,
471
- backgroundColor: pressed ? '#0040A0' : '#0052CD',
473
+ backgroundColor: pressed ? '#0040A0' : theme.primary,
472
474
  alignItems: 'center',
473
475
  })}>
474
- <Text style={{color: '#fff', fontWeight: '600'}}>Retry</Text>
476
+ <Text style={{color: theme.textOnPrimary, fontWeight: '600'}}>Retry</Text>
475
477
  </Pressable>
476
478
  </View>
477
479
  </Overlay>
@@ -521,7 +523,7 @@ const ChatWrapper: FC<ChatWrapperProps> = ({
521
523
  title="Delete Message"
522
524
  description="Are you sure you want to delete this message?"
523
525
  buttonText="Delete"
524
- backgroundColorButton="#E53935"
526
+ backgroundColorButton={theme.danger}
525
527
  handleClick={handleDeleteClick}
526
528
  handleCloseModal={handleCloseDeleteModal}
527
529
  compact
@@ -24,6 +24,7 @@ import {
24
24
  import { useT } from '../../i18n/useT';
25
25
  import { toBaseLanguage } from '../../i18n/strings';
26
26
  import { getIconColor } from '../../helpers/getIconColor';
27
+ import { useTheme } from '../../hooks/useTheme';
27
28
 
28
29
  const TEXT_PRIMARY = '#141414';
29
30
  const TEXT_MUTED = '#8C8C8C';
@@ -73,6 +74,7 @@ export const LanguageSelectorModal: FC<{
73
74
  const dispatch = useDispatch();
74
75
  const t = useT();
75
76
  const { config, langSource, translateMode } = useChatSettingState();
77
+ const theme = useTheme();
76
78
 
77
79
  const translates = config?.translates;
78
80
  const effectiveMode = resolveTranslateMode(translates, translateMode);
@@ -97,16 +99,34 @@ export const LanguageSelectorModal: FC<{
97
99
  >
98
100
  {/* Backdrop closes on tap; the card swallows the press so a tap
99
101
  inside it doesn't dismiss. */}
100
- <Pressable style={styles.backdrop} onPress={onClose}>
101
- <Pressable style={styles.card} onPress={() => {}}>
102
- <Text style={styles.title}>{t('language.select')}</Text>
102
+ <Pressable
103
+ style={[
104
+ styles.backdrop,
105
+ // Keep the historical 0.4 scrim in light; the dark palette's
106
+ // heavier overlay is needed to separate the card from the ground.
107
+ theme.dark && { backgroundColor: theme.overlay },
108
+ ]}
109
+ onPress={onClose}
110
+ >
111
+ <Pressable
112
+ style={[styles.card, { backgroundColor: theme.surface }]}
113
+ onPress={() => {}}
114
+ >
115
+ <Text style={[styles.title, { color: theme.text }]}>
116
+ {t('language.select')}
117
+ </Text>
103
118
 
104
119
  {showModeSwitcher && (
105
120
  <View style={styles.section}>
106
- <Text style={styles.sectionLabel}>
121
+ <Text style={[styles.sectionLabel, { color: theme.textSecondary }]}>
107
122
  {t('translation.modeLabel')}
108
123
  </Text>
109
- <View style={styles.segmented}>
124
+ <View
125
+ style={[
126
+ styles.segmented,
127
+ { backgroundColor: theme.surfaceSecondary },
128
+ ]}
129
+ >
110
130
  {(['auto', 'manual'] as const).map((mode) => {
111
131
  const selected = effectiveMode === mode;
112
132
  return (
@@ -118,12 +138,15 @@ export const LanguageSelectorModal: FC<{
118
138
  style={[
119
139
  styles.segment,
120
140
  selected && styles.segmentSelected,
141
+ selected && { backgroundColor: theme.surface },
121
142
  ]}
122
143
  >
123
144
  <Text
124
145
  style={[
125
146
  styles.segmentText,
147
+ { color: theme.textSecondary },
126
148
  selected && styles.segmentTextSelected,
149
+ selected && { color: theme.text },
127
150
  ]}
128
151
  >
129
152
  {mode === 'auto'
@@ -139,7 +162,9 @@ export const LanguageSelectorModal: FC<{
139
162
 
140
163
  {showLanguageList && (
141
164
  <View style={styles.section}>
142
- <Text style={styles.sectionLabel}>{t('language.select')}</Text>
165
+ <Text style={[styles.sectionLabel, { color: theme.textSecondary }]}>
166
+ {t('language.select')}
167
+ </Text>
143
168
  <ScrollView style={styles.list}>
144
169
  {LANGUAGE_OPTIONS.map((option) => {
145
170
  // Compare on the base language so a reader on "fr" still
@@ -153,11 +178,12 @@ export const LanguageSelectorModal: FC<{
153
178
  accessibilityRole="radio"
154
179
  accessibilityState={{ selected }}
155
180
  onPress={() => selectLanguage(option.id)}
156
- style={styles.listRow}
181
+ style={[styles.listRow, { borderBottomColor: theme.border }]}
157
182
  >
158
183
  <Text
159
184
  style={[
160
185
  styles.listRowText,
186
+ { color: theme.text },
161
187
  selected && styles.listRowTextSelected,
162
188
  ]}
163
189
  >
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { IMessage } from '../../types/types';
3
3
  import FileDownload from '../styled/UnsupportedType';
4
4
  import CustomMessageImage from '../styled/MessageImage';
@@ -15,9 +15,9 @@ import { isLikelyAudio } from '../../helpers/mimeToExtension';
15
15
  import { getDisplayFileName } from '../../helpers/getDisplayFileName';
16
16
  import { FileIcon, PlayIcon } from '../../assets/icons';
17
17
  import { defaultMediaDims } from '../../helpers/mediaDimensions';
18
- import { useChatSettingState } from '../../hooks/useChatSettingState';
19
18
  import { useFileToken } from '../../hooks/useFileToken';
20
19
  import { appendFileToken } from '../../helpers/secureFileUrl';
20
+ import { useTheme } from '../../hooks/useTheme';
21
21
 
22
22
  interface MediaMessageProps {
23
23
  mimeType?: string;
@@ -52,23 +52,37 @@ const PendingMediaMessage: React.FC<{
52
52
  isUser: boolean;
53
53
  size?: string;
54
54
  }> = ({ fileName, mimeType, previewUri, isUser, size }) => {
55
- const { config } = useChatSettingState();
55
+ const theme = useTheme();
56
56
  const statusLabel = getPendingStatusLabel(mimeType);
57
57
  const isImage = mimeType?.startsWith('image/');
58
58
  const isVideo = mimeType?.startsWith('video/');
59
59
  const isAudio =
60
60
  mimeType?.startsWith('audio/') ||
61
61
  mimeType?.includes('application/octet-stream');
62
- const primaryColor = config?.colors?.primary || '#0A84FF';
62
+ const primaryColor = theme.primary;
63
+ // Colour overrides only; layout stays in the static StyleSheet below.
64
+ const t = useMemo(
65
+ () => ({
66
+ card: { backgroundColor: theme.surfaceSecondary },
67
+ preview: { backgroundColor: theme.surfaceHighlight },
68
+ text: { color: theme.text },
69
+ secondary: { color: theme.textSecondary },
70
+ track: { backgroundColor: theme.border },
71
+ pill: { backgroundColor: theme.surface },
72
+ }),
73
+ [theme]
74
+ );
63
75
 
64
76
  if (isImage && previewUri) {
65
77
  return (
66
- <View style={styles.pendingImageWrapper}>
78
+ <View style={[styles.pendingImageWrapper, t.card]}>
67
79
  <Image
68
80
  source={{ uri: previewUri }}
69
81
  style={styles.pendingImage}
70
82
  resizeMode="cover"
71
83
  />
84
+ {/* Scrim + white label sit on top of the image itself, so they
85
+ stay hard-coded: they must read on the photo, not the theme. */}
72
86
  <View style={styles.pendingImageOverlay}>
73
87
  <ActivityIndicator size="small" color="#FFFFFF" />
74
88
  <Text style={styles.pendingOverlayText}>{statusLabel}</Text>
@@ -79,32 +93,34 @@ const PendingMediaMessage: React.FC<{
79
93
 
80
94
  if (isVideo) {
81
95
  return (
82
- <View style={styles.pendingVideoCard}>
83
- <View style={styles.pendingVideoPreview}>
96
+ <View style={[styles.pendingVideoCard, t.card]}>
97
+ <View style={[styles.pendingVideoPreview, t.preview]}>
84
98
  <View style={styles.pendingVideoIcon}>
85
99
  <PlayIcon width={24} height={24} />
86
100
  </View>
87
- <ActivityIndicator size="small" color="#5B6B8C" />
101
+ <ActivityIndicator size="small" color={theme.textSecondary} />
88
102
  </View>
89
- <Text style={styles.pendingVideoLabel}>{fileName}</Text>
90
- <Text style={styles.pendingVideoStatus}>{statusLabel}</Text>
103
+ <Text style={[styles.pendingVideoLabel, t.text]}>{fileName}</Text>
104
+ <Text style={[styles.pendingVideoStatus, t.secondary]}>
105
+ {statusLabel}
106
+ </Text>
91
107
  </View>
92
108
  );
93
109
  }
94
110
 
95
111
  if (isAudio) {
96
112
  return (
97
- <View style={styles.pendingAudioCard}>
113
+ <View style={[styles.pendingAudioCard, t.card]}>
98
114
  <View
99
115
  style={[
100
116
  styles.pendingAudioButton,
101
117
  { backgroundColor: primaryColor },
102
118
  ]}
103
119
  >
104
- <PlayIcon width={18} height={18} color="#fff" />
120
+ <PlayIcon width={18} height={18} color={theme.textOnPrimary} />
105
121
  </View>
106
122
  <View style={styles.pendingAudioContent}>
107
- <View style={styles.pendingAudioTrack}>
123
+ <View style={[styles.pendingAudioTrack, t.track]}>
108
124
  <View
109
125
  style={[
110
126
  styles.pendingAudioTrackFill,
@@ -113,10 +129,12 @@ const PendingMediaMessage: React.FC<{
113
129
  />
114
130
  </View>
115
131
  <View style={styles.pendingAudioMeta}>
116
- <Text style={styles.pendingAudioTime}>0:00</Text>
117
- <View style={styles.pendingAudioStatusPill}>
118
- <ActivityIndicator size="small" color="#5B6B8C" />
119
- <Text style={styles.pendingAudioStatusText}>{statusLabel}</Text>
132
+ <Text style={[styles.pendingAudioTime, t.secondary]}>0:00</Text>
133
+ <View style={[styles.pendingAudioStatusPill, t.pill]}>
134
+ <ActivityIndicator size="small" color={theme.textSecondary} />
135
+ <Text style={[styles.pendingAudioStatusText, t.secondary]}>
136
+ {statusLabel}
137
+ </Text>
120
138
  </View>
121
139
  </View>
122
140
  </View>
@@ -145,6 +163,7 @@ const MediaMessage: React.FC<MediaMessageProps> = ({
145
163
  isUser,
146
164
  }) => {
147
165
  const fileToken = useFileToken();
166
+ const theme = useTheme();
148
167
  const location = appendFileToken(rawLocation, fileToken);
149
168
  const messageText = appendFileToken(rawMessageText, fileToken);
150
169
 
@@ -263,7 +282,7 @@ const MediaMessage: React.FC<MediaMessageProps> = ({
263
282
  }
264
283
  }
265
284
  }
266
- return <Text>Unsupported media type</Text>;
285
+ return <Text style={{ color: theme.text }}>Unsupported media type</Text>;
267
286
  };
268
287
 
269
288
  export default MediaMessage;
@@ -29,6 +29,7 @@ import { ArowDownIcon } from '../../assets/icons';
29
29
  import CustomTypingIndicator from '../styled/StyledInputComponents/CustomTypingIndicator';
30
30
  import { getIconColor } from '../../helpers/getIconColor';
31
31
  import { getChatBackgroundColor } from '../../helpers/getChatBackground';
32
+ import { useTheme } from '../../hooks/useTheme';
32
33
  import { isOwnMessage } from '../../helpers/isOwnMessage';
33
34
 
34
35
  interface MessageListProps<TMessage extends IMessage> {
@@ -81,6 +82,7 @@ const MessageList = <TMessage extends IMessage>({
81
82
  }: MessageListProps<TMessage>) => {
82
83
  const { composing, messages, composingList } = useRoomState(roomJID)
83
84
  .room! as IRoom;
85
+ const theme = useTheme();
84
86
  const [isUserAtBottom, setIsUserAtBottom] = useState(true);
85
87
  const [showNewMessageIndicator, setShowNewMessageIndicator] = useState(false);
86
88
  const [isLoadingMore, setIsLoadingMore] = useState(false);
@@ -473,16 +475,24 @@ const MessageList = <TMessage extends IMessage>({
473
475
  <TouchableOpacity
474
476
  style={[
475
477
  styles.newMessageIndicator,
476
- { backgroundColor: getIconColor(config) },
478
+ {
479
+ backgroundColor: getIconColor(config),
480
+ shadowColor: theme.shadow,
481
+ },
477
482
  ]}
478
483
  onPress={handleNewMessageIndicatorPress}
479
484
  >
480
485
  {/* White chevron on the saturated FAB. The icon's default
481
486
  color is white, which was invisible against the previous
482
487
  light `secondary` background — hence "no icon". */}
483
- <ArowDownIcon color="#FFFFFF" width={22} height={22} />
488
+ <ArowDownIcon color={theme.textOnPrimary} width={22} height={22} />
484
489
  {unreadWhileScrolledUp > 0 && (
485
- <View style={styles.newMessageBadge}>
490
+ <View
491
+ style={[
492
+ styles.newMessageBadge,
493
+ { backgroundColor: theme.danger, borderColor: theme.surface },
494
+ ]}
495
+ >
486
496
  <Text style={styles.newMessageBadgeText}>
487
497
  {unreadWhileScrolledUp > 99 ? '99+' : unreadWhileScrolledUp}
488
498
  </Text>
@@ -12,23 +12,23 @@ export const Container = styled.View`
12
12
 
13
13
  export const Message = styled.Text`
14
14
  font-size: 16px;
15
- color: #333;
15
+ color: ${({theme}) => theme.text};
16
16
  `;
17
17
 
18
18
  export const OrDelimiter = styled.Text`
19
19
  font-size: 14px;
20
- color: #666;
20
+ color: ${({theme}) => theme.textSecondary};
21
21
  `;
22
22
 
23
23
  export const CustomButton = styled.TouchableOpacity`
24
24
  width: 100%;
25
- background-color: #007bff;
25
+ background-color: ${({theme}) => theme.primary};
26
26
  padding: 10px;
27
27
  border-radius: 4px;
28
28
  align-items: center;
29
29
  `;
30
30
 
31
31
  export const ButtonText = styled.Text`
32
- color: #fff;
32
+ color: ${({theme}) => theme.textOnPrimary};
33
33
  font-size: 16px;
34
34
  `;