@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
@@ -1,4 +1,4 @@
1
- import React, { useRef, useState } from 'react';
1
+ import React, { useMemo, useRef, useState } from 'react';
2
2
  import {
3
3
  View,
4
4
  Pressable,
@@ -39,6 +39,7 @@ import { useXmppClient } from '../../context/xmppProvider';
39
39
  import { useSendMessage } from '../../hooks/useSendMessage';
40
40
  import { MessageReaction } from './MessageReaction';
41
41
  import { MessageFooter } from '../styled/StyledComponents';
42
+ import { useTheme } from '../../hooks/useTheme';
42
43
 
43
44
  const CustomMessageContainer = styled.View<{ isUser: boolean; reply?: number }>`
44
45
  flex-direction: row;
@@ -73,12 +74,13 @@ const CustomMessageBubble = styled.View<{
73
74
  deleted,
74
75
  backgroundMessageUser,
75
76
  backgroundMessage,
77
+ theme,
76
78
  }) =>
77
79
  deleted
78
- ? '#f5f5f5'
80
+ ? theme.systemMessageBackground
79
81
  : isUser
80
- ? backgroundMessageUser || '#d1e7ff'
81
- : backgroundMessage || '#fff'};
82
+ ? backgroundMessageUser || theme.messageBackgroundUser
83
+ : backgroundMessage || theme.messageBackground};
82
84
  `;
83
85
 
84
86
  const CustomMessageText = styled.Text<{
@@ -90,8 +92,8 @@ const CustomMessageText = styled.Text<{
90
92
  }>`
91
93
  font-size: ${({ fontSize }) => fontSize ?? 16}px;
92
94
  ${({ fontWeight }) => (fontWeight ? `font-weight: ${fontWeight};` : '')}
93
- color: ${({ color, colorUser, isUser }) =>
94
- isUser ? colorUser || '#333' : color || '#333'};
95
+ color: ${({ color, colorUser, isUser, theme }) =>
96
+ isUser ? colorUser || theme.messageTextUser : color || theme.messageText};
95
97
  `;
96
98
 
97
99
  const CustomMessagePhoto = styled.Image`
@@ -115,7 +117,7 @@ const CustomUserName = styled.Text<{
115
117
  padding-bottom: 8px;
116
118
  padding-left: ${({media}) => media ? '16px': 0};
117
119
  padding-top: ${({media}) => media ? '8px': 0};
118
- color: ${({ color }) => color || '#333'};
120
+ color: ${({ color, theme }) => color || theme.text};
119
121
  `;
120
122
 
121
123
  const CustomMessageTimestamp = styled.Text<{
@@ -124,9 +126,8 @@ const CustomMessageTimestamp = styled.Text<{
124
126
  colorUser?: string;
125
127
  }>`
126
128
  font-size: 12px;
127
- color: #999;
128
- color: ${({ isUser, color, colorUser }) =>
129
- isUser ? colorUser || '#999' : color || '#999'};
129
+ color: ${({ isUser, color, colorUser, theme }) =>
130
+ isUser ? colorUser || theme.textMuted : color || theme.textMuted};
130
131
  margin-top: 5px;
131
132
  align-self: flex-end;
132
133
  `;
@@ -144,6 +145,17 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
144
145
  const dispatch = useDispatch();
145
146
  const { client } = useXmppClient();
146
147
  const { config, langSource, user, translateMode } = useChatSettingState();
148
+ // Single theme read per message; the two colour overrides below are the
149
+ // only per-render allocations added for theming (memoized on the theme
150
+ // object, which useTheme keeps stable across renders).
151
+ const theme = useTheme();
152
+ const themedStyles = useMemo(
153
+ () => ({
154
+ muted: { color: theme.textMuted },
155
+ failed: { color: theme.danger },
156
+ }),
157
+ [theme]
158
+ );
147
159
 
148
160
  // `enableTranslates` predates the `translates` config block; keep it
149
161
  // working so existing hosts don't lose translations on upgrade.
@@ -354,7 +366,16 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
354
366
  // Body text size/weight is set on the parser's leaf <Text>s — the markdown
355
367
  // wraps content in <View>s which break Text-style inheritance, so the bubble
356
368
  // wrapper's fontSize alone never reached the actual text.
357
- const bodyTextStyle = chatTextStyle(config?.typography?.messageText);
369
+ // The parser wraps paragraphs / list items in <View>s, so the bubble's
370
+ // text colour never reaches the leaf <Text>s by inheritance — put the
371
+ // ink on the base leaf style explicitly (theme-aware).
372
+ const bodyTextStyle = useMemo(
373
+ () => ({
374
+ ...chatTextStyle(config?.typography?.messageText),
375
+ color: isUser ? theme.messageTextUser : theme.messageText,
376
+ }),
377
+ [config?.typography?.messageText, isUser, theme]
378
+ );
358
379
  // In auto mode, render the translation as the primary body — but NEVER for
359
380
  // the reader's own messages (they wrote it; no point translating it back).
360
381
  const showInlineTranslation =
@@ -365,9 +386,10 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
365
386
  const messageText = config?.messageTextFilter?.enabled
366
387
  ? parseMessageBody(
367
388
  config?.messageTextFilter.filterFunction(bodyToRender),
368
- bodyTextStyle
389
+ bodyTextStyle,
390
+ theme
369
391
  )
370
- : parseMessageBody(bodyToRender, bodyTextStyle);
392
+ : parseMessageBody(bodyToRender, bodyTextStyle, theme);
371
393
 
372
394
  const isFailed = failedIdSet.has(message.id);
373
395
  const isPending =
@@ -452,12 +474,13 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
452
474
  isUser={isUser}
453
475
  deleted={message.isDeleted}
454
476
  isMedia={message?.isMediafile === 'true' && !message?.isDeleted}
455
- backgroundMessageUser={config?.messageColor?.backgroundMessageUser}
456
- backgroundMessage={config?.messageColor?.backgroundMessage}
457
477
  >
458
478
  {!isUser && hasRealSenderName && (
459
479
  <CustomUserName
460
- color={config?.colors?.primary}
480
+ // Historically `config.colors.primary` with a plain-text
481
+ // fallback; theme.primary carries the same value in light
482
+ // mode and the dark accent in dark mode.
483
+ color={config?.colors?.primary ? theme.primary : undefined}
461
484
  media={message?.isMediafile === 'true'}
462
485
  fontSize={config?.typography?.senderName?.fontSize}
463
486
  fontWeight={config?.typography?.senderName?.fontWeight as any}
@@ -470,7 +493,7 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
470
493
  handleReplyMessage={handleReplyMessage}
471
494
  isUser={isUser}
472
495
  text={JSON.parse(message.mainMessage).text}
473
- color={config?.colors?.primary}
496
+ color={theme.primary}
474
497
  />
475
498
  )}
476
499
 
@@ -489,8 +512,6 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
489
512
  ) : (
490
513
  <CustomMessageText
491
514
  isUser={isUser}
492
- colorUser={config?.messageColor?.colorUser}
493
- color={config?.messageColor?.color}
494
515
  fontSize={config?.typography?.messageText?.fontSize}
495
516
  fontWeight={config?.typography?.messageText?.fontWeight as any}
496
517
  >
@@ -501,7 +522,7 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
501
522
  <TranslatedMessageBody
502
523
  isUser={isUser}
503
524
  originalText={translationDisplay.originalText}
504
- accentColor={config?.colors?.primary}
525
+ accentColor={theme.primary}
505
526
  >
506
527
  <Text>{messageText}</Text>
507
528
  </TranslatedMessageBody>
@@ -528,12 +549,14 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
528
549
  {/* <View style={styles.timestampRow}> */}
529
550
  <CustomTimestampRow media={message?.isMediafile === 'true'}>
530
551
  {!config?.disableSentLogic && isUser && isPending && (
531
- <Text style={styles.timestampText}>sending...</Text>
552
+ <Text style={[styles.timestampText, themedStyles.muted]}>
553
+ sending...
554
+ </Text>
532
555
  )}
533
556
  {!config?.disableSentLogic && isUser && isFailed && (
534
557
  <Text
535
558
  onPress={onRetryPress}
536
- style={styles.failedText}
559
+ style={[styles.failedText, themedStyles.failed]}
537
560
  accessibilityRole="button"
538
561
  accessibilityLabel="Retry sending message"
539
562
  >
@@ -541,9 +564,9 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
541
564
  </Text>
542
565
  )}
543
566
  {message?.isEdited && !message?.isDeleted && (
544
- <Text style={styles.editedText}>edited</Text>
567
+ <Text style={[styles.editedText, themedStyles.muted]}>edited</Text>
545
568
  )}
546
- <Text style={styles.timestampText}>
569
+ <Text style={[styles.timestampText, themedStyles.muted]}>
547
570
  {new Date(message.date).toLocaleTimeString([], {
548
571
  hour: '2-digit',
549
572
  minute: '2-digit',
@@ -570,7 +593,7 @@ const Message: React.FC<MessageProps> = ({ message, isUser, isReply }) => {
570
593
  <MessageReaction
571
594
  reaction={message.reaction}
572
595
  changeReaction={handleReactionMessage}
573
- color={config?.colors?.primary || '#0052CD'}
596
+ color={theme.primary}
574
597
  userName={`${user.firstName} ${user.lastName}`}
575
598
  />
576
599
  )}
@@ -19,6 +19,7 @@ import {
19
19
  import * as Clipboard from 'expo-clipboard';
20
20
  import { useToast } from '../../context/ToastContext';
21
21
  import { useInteractionsOverlay } from './InteractionsOverlay';
22
+ import { useTheme } from '../../hooks/useTheme';
22
23
 
23
24
  interface MessageInteractionsProps {
24
25
  isReply?: boolean;
@@ -50,6 +51,14 @@ const MessageInteractions: React.FC<MessageInteractionsProps> = ({
50
51
  const { showToast } = useToast();
51
52
  const { present, dismiss, originX, originY } = useInteractionsOverlay();
52
53
  const overlayId = useId();
54
+ const theme = useTheme();
55
+ const themedStyles = useMemo(
56
+ () => ({
57
+ menu: { backgroundColor: theme.surface, shadowColor: theme.shadow },
58
+ text: { color: theme.text },
59
+ }),
60
+ [theme]
61
+ );
53
62
 
54
63
  const config = useSelector(
55
64
  (state: RootState) => state.chatSettingStore.config
@@ -180,11 +189,13 @@ const MessageInteractions: React.FC<MessageInteractionsProps> = ({
180
189
  <View style={styles.overlayFill}>
181
190
  <Pressable style={StyleSheet.absoluteFill} onPress={closeMenu} />
182
191
  <View
183
- style={[styles.contextMenu, localPosition]}
192
+ style={[styles.contextMenu, themedStyles.menu, localPosition]}
184
193
  onLayout={handleMenuLayout}
185
194
  >
186
195
  <MenuItem onPress={() => handleCopyMessage(message.body!)}>
187
- <Text style={styles.menuText}>{MESSAGE_INTERACTIONS.COPY}</Text>
196
+ <Text style={[styles.menuText, themedStyles.text]}>
197
+ {MESSAGE_INTERACTIONS.COPY}
198
+ </Text>
188
199
  <MESSAGE_INTERACTIONS_ICONS.COPY />
189
200
  </MenuItem>
190
201
  {isUser && (
@@ -195,7 +206,7 @@ const MessageInteractions: React.FC<MessageInteractionsProps> = ({
195
206
  <>
196
207
  <Delimeter />
197
208
  <MenuItem onPress={handleEditMessage}>
198
- <Text style={styles.menuText}>
209
+ <Text style={[styles.menuText, themedStyles.text]}>
199
210
  {MESSAGE_INTERACTIONS.EDIT}
200
211
  </Text>
201
212
  <MESSAGE_INTERACTIONS_ICONS.EDIT />
@@ -204,7 +215,9 @@ const MessageInteractions: React.FC<MessageInteractionsProps> = ({
204
215
  )}
205
216
  <Delimeter />
206
217
  <MenuItem onPress={handleDeleteMessage}>
207
- <Text style={styles.menuText}>{MESSAGE_INTERACTIONS.DELETE}</Text>
218
+ <Text style={[styles.menuText, themedStyles.text]}>
219
+ {MESSAGE_INTERACTIONS.DELETE}
220
+ </Text>
208
221
  <MESSAGE_INTERACTIONS_ICONS.DELETE />
209
222
  </MenuItem>
210
223
  </>
@@ -3,6 +3,7 @@ import React, { FC, useMemo, useState } from 'react';
3
3
  import { View, Text, TouchableOpacity, Animated } from 'react-native';
4
4
  import styled from 'styled-components/native';
5
5
  import { ReactionMessage } from '../../types/types';
6
+ import { useTheme } from '../../hooks/useTheme';
6
7
 
7
8
  const ReactionContainer = styled.View`
8
9
  flex-direction: row;
@@ -13,7 +14,8 @@ const ReactionContainer = styled.View`
13
14
  const ReactionBox = styled(TouchableOpacity)<{ active: boolean; color: string }>`
14
15
  padding: 4px 8px;
15
16
  border-radius: 20px;
16
- background-color: ${({ active, color }) => (active ? color : '#ffffff')};
17
+ background-color: ${({ active, color, theme }) =>
18
+ active ? color : theme.surface};
17
19
  flex-direction: row;
18
20
  align-items: center;
19
21
  justify-content: center;
@@ -42,6 +44,7 @@ export const MessageReaction: FC<MessageReactionProps> = ({
42
44
  changeReaction,
43
45
  userName,
44
46
  }) => {
47
+ const theme = useTheme();
45
48
  const [tooltipEmoji, setTooltipEmoji] = useState<string | null>(null);
46
49
  const fadeAnim = new Animated.Value(0);
47
50
 
@@ -104,7 +107,7 @@ export const MessageReaction: FC<MessageReactionProps> = ({
104
107
  style={{
105
108
  fontSize: 14,
106
109
  fontWeight: '600',
107
- color: isUserReacted ? '#fff' : color,
110
+ color: isUserReacted ? theme.textOnPrimary : color,
108
111
  }}
109
112
  >
110
113
  {details.count}
@@ -128,7 +131,9 @@ export const MessageReaction: FC<MessageReactionProps> = ({
128
131
  },
129
132
  ],
130
133
  opacity: fadeAnim,
131
- backgroundColor: '#333',
134
+ // Inverted pill: text colour as ground, surface as ink,
135
+ // so it stays high-contrast on both palettes.
136
+ backgroundColor: theme.text,
132
137
  borderRadius: 6,
133
138
  paddingHorizontal: 10,
134
139
  paddingVertical: 6,
@@ -136,7 +141,7 @@ export const MessageReaction: FC<MessageReactionProps> = ({
136
141
  zIndex: 999,
137
142
  }}
138
143
  >
139
- <Text style={{ color: '#fff', fontSize: 12 }}>
144
+ <Text style={{ color: theme.surface, fontSize: 12 }}>
140
145
  {details.users.join(', ')}
141
146
  </Text>
142
147
  </Animated.View>
@@ -6,6 +6,7 @@ import { useXmppClient } from '../../../context/xmppProvider';
6
6
  import {
7
7
  ActionButton,
8
8
  CloseButton,
9
+ CloseButtonText,
9
10
  GroupContainer,
10
11
  ModalBackground,
11
12
  ModalContainer,
@@ -20,7 +21,6 @@ import { addRoomViaApi } from '../../../roomStore/roomsSlice';
20
21
  import { createRoomFromApi } from '../../../helpers/createRoomFromApi';
21
22
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
22
23
  import { useAppDispatch } from '../../../hooks/hooks';
23
- import { Text } from 'react-native';
24
24
  import { useToast } from '../../../context/ToastContext';
25
25
 
26
26
  const AddMembersModal: React.FC = () => {
@@ -97,7 +97,7 @@ const AddMembersModal: React.FC = () => {
97
97
  <ModalBackground>
98
98
  <ModalContainer>
99
99
  <CloseButton onPress={handleCloseModal}>
100
- <Text style={{ fontSize: 24 }}>&times;</Text>
100
+ <CloseButtonText>&times;</CloseButtonText>
101
101
  </CloseButton>
102
102
  <ModalTitle>Add New Member</ModalTitle>
103
103
  <GroupContainer
@@ -17,6 +17,7 @@ import {
17
17
  } from 'react-native';
18
18
  import { CameraIcon, DocumentIcon } from '../../../assets/icons';
19
19
  import { useChatSettingState } from '../../../hooks/useChatSettingState';
20
+ import { useTheme } from '../../../hooks/useTheme';
20
21
  import { chatTextStyle } from '../../../helpers/typography';
21
22
  import { useT } from '../../../i18n/useT';
22
23
  import { getMediaLibrary } from '../../../helpers/mediaLibraryRuntime';
@@ -100,10 +101,17 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
100
101
  onGallery,
101
102
  onDocument,
102
103
  onPickMedia,
103
- primaryColor = '#0052CD',
104
+ primaryColor,
104
105
  }) => {
105
106
  const { config } = useChatSettingState();
107
+ const theme = useTheme();
106
108
  const ts = config?.typography?.attachSheet;
109
+ const accent = primaryColor || theme.primary;
110
+ // Sheet chrome tints. Light keeps the historical iOS-ish greys (not in
111
+ // the palette); dark reads everything off the theme.
112
+ const chromeText = theme.dark ? theme.text : '#1C1C1E';
113
+ const chromeMuted = theme.dark ? theme.textSecondary : '#8A8A8E';
114
+ const chromeHairline = theme.dark ? theme.divider : '#EFEFF2';
107
115
  const t = useT();
108
116
  const pendingRef = useRef<(() => void) | null>(null);
109
117
  const runPending = () => {
@@ -326,7 +334,13 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
326
334
  onDismiss={Platform.OS === 'ios' ? runPending : undefined}
327
335
  >
328
336
  <Animated.View
329
- style={[styles.backdrop, { opacity: backdropOpacity }]}
337
+ style={[
338
+ styles.backdrop,
339
+ {
340
+ opacity: backdropOpacity,
341
+ backgroundColor: theme.dark ? theme.overlay : 'rgba(15,15,20,0.45)',
342
+ },
343
+ ]}
330
344
  >
331
345
  <TouchableOpacity
332
346
  testID="attach-backdrop"
@@ -337,7 +351,11 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
337
351
  <Animated.View
338
352
  style={[
339
353
  styles.sheet,
340
- { transform: [{ translateY: sheetTranslateY }] },
354
+ {
355
+ backgroundColor: theme.surface,
356
+ shadowColor: theme.shadow,
357
+ transform: [{ translateY: sheetTranslateY }],
358
+ },
341
359
  ]}
342
360
  {...sheetPan.panHandlers}
343
361
  >
@@ -346,12 +364,23 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
346
364
  style={styles.grabberArea}
347
365
  {...grabberPan.panHandlers}
348
366
  >
349
- <View style={styles.grabber} />
367
+ <View
368
+ style={[
369
+ styles.grabber,
370
+ { backgroundColor: theme.dark ? theme.border : '#D9D9DE' },
371
+ ]}
372
+ />
350
373
  </View>
351
374
 
352
375
  {/* Photos & Videos ------------------------------------------------ */}
353
376
  <View style={styles.sectionHeader}>
354
- <Text style={[styles.sectionTitle, chatTextStyle(ts?.title)]}>
377
+ <Text
378
+ style={[
379
+ styles.sectionTitle,
380
+ { color: chromeText },
381
+ chatTextStyle(ts?.title),
382
+ ]}
383
+ >
355
384
  {t('attach.photosAndVideos')}
356
385
  </Text>
357
386
  <TouchableOpacity
@@ -363,7 +392,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
363
392
  <Text
364
393
  style={[
365
394
  styles.sectionAction,
366
- { color: primaryColor },
395
+ { color: accent },
367
396
  chatTextStyle(ts?.viewLibrary),
368
397
  ]}
369
398
  >
@@ -384,15 +413,21 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
384
413
  accessibilityRole="button"
385
414
  accessibilityLabel={t('attach.takePhoto')}
386
415
  activeOpacity={0.7}
387
- style={styles.cameraTile}
416
+ style={[
417
+ styles.cameraTile,
418
+ {
419
+ borderColor: theme.dark ? theme.border : '#E4E4E9',
420
+ backgroundColor: theme.dark ? theme.surfaceSecondary : '#FAFAFC',
421
+ },
422
+ ]}
388
423
  onPress={trigger(onCamera)}
389
424
  >
390
- <CameraIcon color="#8A8A8E" width={26} height={26} />
425
+ <CameraIcon color={chromeMuted} width={26} height={26} />
391
426
  </TouchableOpacity>
392
427
 
393
428
  {loadingRecents && recents.length === 0 && (
394
429
  <View style={styles.loadingTile}>
395
- <ActivityIndicator color="#8A8A8E" />
430
+ <ActivityIndicator color={chromeMuted} />
396
431
  </View>
397
432
  )}
398
433
 
@@ -401,7 +436,7 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
401
436
  key={item.id}
402
437
  testID={`attach-recent-${item.id}`}
403
438
  activeOpacity={0.8}
404
- style={styles.thumbWrap}
439
+ style={[styles.thumbWrap, { backgroundColor: chromeHairline }]}
405
440
  onPress={handleRecentPress(item)}
406
441
  >
407
442
  <Image
@@ -419,7 +454,9 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
419
454
  ))}
420
455
  </ScrollView>
421
456
 
422
- <View style={styles.rowsDivider} />
457
+ <View
458
+ style={[styles.rowsDivider, { backgroundColor: chromeHairline }]}
459
+ />
423
460
  {rows.map(({ id, label, Icon, handler }) => (
424
461
  <TouchableOpacity
425
462
  key={id}
@@ -429,9 +466,15 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
429
466
  onPress={trigger(handler)}
430
467
  >
431
468
  <View style={styles.rowIcon}>
432
- <Icon color="#1C1C1E" width={20} height={20} />
469
+ <Icon color={chromeText} width={20} height={20} />
433
470
  </View>
434
- <Text style={[styles.rowLabel, chatTextStyle(ts?.rowLabel)]}>
471
+ <Text
472
+ style={[
473
+ styles.rowLabel,
474
+ { color: chromeText },
475
+ chatTextStyle(ts?.rowLabel),
476
+ ]}
477
+ >
435
478
  {label}
436
479
  </Text>
437
480
  </TouchableOpacity>
@@ -443,18 +486,16 @@ const AttachSheet: React.FC<AttachSheetProps> = ({
443
486
  };
444
487
 
445
488
  const styles = StyleSheet.create({
489
+ // Colours live inline (theme-dependent); only layout stays here.
446
490
  backdrop: {
447
491
  flex: 1,
448
- backgroundColor: 'rgba(15,15,20,0.45)',
449
492
  justifyContent: 'flex-end',
450
493
  },
451
494
  sheet: {
452
- backgroundColor: '#fff',
453
495
  borderTopLeftRadius: 24,
454
496
  borderTopRightRadius: 24,
455
497
  paddingTop: 4,
456
498
  paddingBottom: Platform.OS === 'ios' ? 32 : 20,
457
- shadowColor: '#000',
458
499
  shadowOffset: { width: 0, height: -2 },
459
500
  shadowOpacity: 0.08,
460
501
  shadowRadius: 12,
@@ -469,7 +510,6 @@ const styles = StyleSheet.create({
469
510
  width: 40,
470
511
  height: 4,
471
512
  borderRadius: 2,
472
- backgroundColor: '#D9D9DE',
473
513
  },
474
514
  sectionHeader: {
475
515
  flexDirection: 'row',
@@ -481,7 +521,6 @@ const styles = StyleSheet.create({
481
521
  sectionTitle: {
482
522
  fontSize: 17,
483
523
  fontWeight: '700',
484
- color: '#1C1C1E',
485
524
  },
486
525
  sectionAction: {
487
526
  fontSize: 15,
@@ -497,8 +536,6 @@ const styles = StyleSheet.create({
497
536
  height: THUMB_SIZE,
498
537
  borderRadius: 16,
499
538
  borderWidth: 1,
500
- borderColor: '#E4E4E9',
501
- backgroundColor: '#FAFAFC',
502
539
  alignItems: 'center',
503
540
  justifyContent: 'center',
504
541
  },
@@ -513,7 +550,6 @@ const styles = StyleSheet.create({
513
550
  height: THUMB_SIZE,
514
551
  borderRadius: 16,
515
552
  overflow: 'hidden',
516
- backgroundColor: '#EFEFF2',
517
553
  },
518
554
  thumb: {
519
555
  width: '100%',
@@ -521,7 +557,6 @@ const styles = StyleSheet.create({
521
557
  },
522
558
  rowsDivider: {
523
559
  height: StyleSheet.hairlineWidth,
524
- backgroundColor: '#EFEFF2',
525
560
  },
526
561
  row: {
527
562
  flexDirection: 'row',
@@ -537,7 +572,6 @@ const styles = StyleSheet.create({
537
572
  rowLabel: {
538
573
  fontSize: 16,
539
574
  fontWeight: '500',
540
- color: '#1C1C1E',
541
575
  },
542
576
  });
543
577