@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
@@ -17,6 +17,8 @@ import Composing from '../styled/StyledInputComponents/Composing';
17
17
  import { Text, View } from 'react-native';
18
18
  import LastMessageItem from './LastMessageItem';
19
19
  import { LastRoomMessageText } from './styled/StyledRoomComponents';
20
+ import { useTheme } from '../../hooks/useTheme';
21
+ import { resolveTheme } from '../../theme/theme';
20
22
 
21
23
  interface ChatRoomItemProps {
22
24
  chat: IRoom;
@@ -31,6 +33,13 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
31
33
  isDriver,
32
34
  config,
33
35
  }) => {
36
+ // Rows can be rendered with an explicit `config` prop (tests, hosts
37
+ // composing their own list); honour its colours over the store's.
38
+ const storeTheme = useTheme();
39
+ const theme = useMemo(
40
+ () => (config ? resolveTheme(config) : storeTheme),
41
+ [config, storeTheme]
42
+ );
34
43
  // Room icons can live on the membership-gated secure-files host.
35
44
  const fileToken = useFileToken();
36
45
  const displayName = String(chat?.title || chat?.name || '').trim();
@@ -150,9 +159,9 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
150
159
  paddingVertical: 8,
151
160
  paddingRight: 8,
152
161
  borderBottomWidth: 1,
153
- // Reads against the list's #E8EDF2 ground; #F0F0F0 was lighter
154
- // than the ground itself, so the row separators vanished.
155
- borderBottomColor: '#C6CFDA',
162
+ // `divider` reads against the list ground; the lighter border
163
+ // tone was paler than the ground itself, so the separators vanished.
164
+ borderBottomColor: theme.divider,
156
165
  }}
157
166
  >
158
167
  <View
@@ -167,7 +176,7 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
167
176
  {stamp ? (
168
177
  <UserCount
169
178
  style={{
170
- color: '#8C8C8C',
179
+ color: theme.textSecondary,
171
180
  fontSize: 12,
172
181
  }}
173
182
  text={stamp}
@@ -239,7 +248,7 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
239
248
  <View
240
249
  style={{
241
250
  borderRadius: 8,
242
- backgroundColor: config?.colors?.primary,
251
+ backgroundColor: theme.primary,
243
252
  padding: 2,
244
253
  minWidth: 24,
245
254
  minHeight: 24,
@@ -252,7 +261,7 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
252
261
  <Text
253
262
  style={{
254
263
  // color: isChatActive ? "#141414" : "#fff",
255
- color: '#141414',
264
+ color: theme.text,
256
265
  fontSize: 14,
257
266
  fontWeight: '600',
258
267
  }}
@@ -263,11 +272,11 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
263
272
  ) : null}
264
273
  </View>
265
274
  {isDriver && (
266
- // Darker than the list's own ground (#E8EDF2), otherwise the
267
- // separator disappears into it — white and the old #0052CD0D
268
- // hairline both did.
275
+ // Darker than the list's own ground, otherwise the separator
276
+ // disappears into it — white and the old highlight hairline both
277
+ // did.
269
278
  <View
270
- style={{ height: 1, backgroundColor: '#C6CFDA', marginTop: 8 }}
279
+ style={{ height: 1, backgroundColor: theme.divider, marginTop: 8 }}
271
280
  />
272
281
  )}
273
282
  </View>
@@ -8,6 +8,7 @@ import { LastMessage } from '../../../types/types';
8
8
  import styled from 'styled-components/native';
9
9
  import { View } from 'react-native';
10
10
  import { PlayIcon } from '../../../assets/icons';
11
+ import { useTheme } from '../../../hooks/useTheme';
11
12
 
12
13
  interface LastMessageEmojiProps extends Pick<LastMessage, 'user' | 'body'> {}
13
14
 
@@ -18,7 +19,7 @@ const PlayButton = styled.View`
18
19
  display: flex;
19
20
  justify-content: center;
20
21
  align-items: center;
21
- background-color: #d8ecff;
22
+ background-color: ${({ theme }) => (theme.dark ? theme.surfaceSecondary : '#d8ecff')};
22
23
  margin-top: 1px;
23
24
  `;
24
25
 
@@ -29,12 +30,13 @@ const AudioRow = styled.View`
29
30
  `;
30
31
 
31
32
  const LastAudioMessage: FC<LastMessageEmojiProps> = ({ user, body }) => {
33
+ const theme = useTheme();
32
34
  return (
33
35
  <LastRoomMessageContainer>
34
36
  <LastRoomMessageName numberOfLines={1}>{user?.name ?? ''}</LastRoomMessageName>
35
37
  <AudioRow>
36
38
  <PlayButton>
37
- <PlayIcon width={10} height={10} color="#1F2937" />
39
+ <PlayIcon width={10} height={10} color={theme.dark ? theme.text : '#1F2937'} />
38
40
  </PlayButton>
39
41
  <LastRoomMessageText numberOfLines={1}>
40
42
  {body?.trim() ? body : 'audio'}
@@ -12,9 +12,11 @@ export const LastRoomMessageContainer = styled.View`
12
12
  export const LastRoomMessageName = styled.Text`
13
13
  font-weight: 600;
14
14
  max-width: 190px;
15
+ color: ${({ theme }) => theme.text};
15
16
  `;
16
17
 
17
18
  export const LastRoomMessageText = styled.Text`
19
+ color: ${({ theme }) => theme.textSecondary};
18
20
  max-width: 190px;
19
21
  flex-shrink: 1;
20
22
  flex-wrap: nowrap;
@@ -22,6 +22,7 @@ import { useSendMessage } from '../../hooks/useSendMessage';
22
22
  import { createMainMessageForThread } from '../../helpers/createMainMessageForThread';
23
23
  import { useRoomState } from '../../hooks/useRoomState';
24
24
  import { useChatSettingState } from '../../hooks/useChatSettingState';
25
+ import { useTheme } from '../../hooks/useTheme';
25
26
  import {
26
27
  Animated,
27
28
  Text,
@@ -51,6 +52,7 @@ const ThreadWrapper: FC<ThreadWrapperProps> = ({
51
52
 
52
53
  const { loading, roomsList, editAction, activeRoomJID } = useRoomState();
53
54
  const { config } = useChatSettingState();
55
+ const theme = useTheme();
54
56
  const { sendMessage: sendMs, sendMedia: sendMessageMedia, sendEditMessage, isLastMessageFromUserAndProcessing } = useSendMessage();
55
57
 
56
58
  const [isLoadingMore, setIsLoadingMore] = useState<boolean>(false);
@@ -179,6 +181,7 @@ const ThreadWrapper: FC<ThreadWrapperProps> = ({
179
181
  {...panResponder.panHandlers}
180
182
  style={[
181
183
  styles.threadContainer,
184
+ { backgroundColor: theme.chatBackground },
182
185
  { transform: [{ translateX: slideAnim }] },
183
186
  // ...config?.chatRoomStyles,
184
187
  ]}
@@ -199,17 +202,15 @@ const ThreadWrapper: FC<ThreadWrapperProps> = ({
199
202
  />
200
203
  <AlsoContainer onPress={() => setIsChecked((prev) => !prev)}>
201
204
  <AlsoCheckbox
202
- accentColor={
203
- isChecked ? config?.colors?.primary || '#0052CD' : '#fff'
204
- }
205
+ accentColor={isChecked ? theme.primary : theme.surface}
205
206
  // checked={isChecked}
206
207
  // onPress={() => setIsChecked(!isChecked)}
207
208
  />
208
- <Text>Also send to</Text>
209
+ <Text style={{ color: theme.text }}>Also send to</Text>
209
210
  <TouchableOpacity onPress={closeThread}>
210
211
  <Text
211
212
  style={{
212
- color: config?.colors?.primary || '#0052CD',
213
+ color: theme.primary,
213
214
  fontWeight: 500,
214
215
  }}
215
216
  >
@@ -32,7 +32,7 @@ const ToastContainer = styled(Animated.View)<{ type: string }>`
32
32
  border-radius: 6px;
33
33
  margin-bottom: 8px;
34
34
  width: 240px;
35
- shadow-color: #000;
35
+ shadow-color: ${({ theme }) => theme.shadow};
36
36
  shadow-offset: 0px 2px;
37
37
  shadow-opacity: 0.2;
38
38
  shadow-radius: 4px;
@@ -17,7 +17,7 @@ import {
17
17
  import * as FileSystem from 'expo-file-system/legacy';
18
18
  import { WebView, WebViewMessageEvent } from 'react-native-webview';
19
19
  import { PauseIcon, PlayIcon } from '../../assets/icons';
20
- import { useChatSettingState } from '../../hooks/useChatSettingState';
20
+ import { useTheme } from '../../hooks/useTheme';
21
21
  import { getIosAudioPlaybackCacheExtension } from '../../helpers/mimeToExtension';
22
22
  import { pushLog as devPushLog } from '../../utils/devLogger';
23
23
 
@@ -319,7 +319,7 @@ const AudioMessage = ({
319
319
  fileName,
320
320
  originalName,
321
321
  }: AudioMessageProps) => {
322
- const { config } = useChatSettingState();
322
+ const theme = useTheme();
323
323
  const soundRef = useRef<AudioPlayer | null>(null);
324
324
  // expo-audio delivers progress through an event subscription instead of
325
325
  // expo-av's `onPlaybackStatusUpdate` callback argument, so the handle has
@@ -339,7 +339,10 @@ const AudioMessage = ({
339
339
  const [position, setPosition] = useState(0);
340
340
  const [duration, setDuration] = useState(0);
341
341
  const [webViewEnabled, setWebViewEnabled] = useState(false);
342
- const primaryColor = config?.colors?.primary || '#0A84FF';
342
+ const primaryColor = theme.primary;
343
+ const onPrimary = theme.textOnPrimary;
344
+ const trackStyle = { backgroundColor: theme.border };
345
+ const timeStyle = { color: theme.textSecondary };
343
346
 
344
347
  const clearLoadingGuard = () => {
345
348
  if (loadingTimerRef.current) {
@@ -760,19 +763,19 @@ const AudioMessage = ({
760
763
  activeOpacity={0.85}
761
764
  >
762
765
  {isLoading ? (
763
- <ActivityIndicator size="small" color="#fff" />
766
+ <ActivityIndicator size="small" color={onPrimary} />
764
767
  ) : (
765
768
  <View style={styles.iconWrap}>
766
769
  {isPlaying ? (
767
- <PauseIcon width={18} height={18} color="#fff" />
770
+ <PauseIcon width={18} height={18} color={onPrimary} />
768
771
  ) : (
769
- <PlayIcon width={18} height={18} color="#fff" />
772
+ <PlayIcon width={18} height={18} color={onPrimary} />
770
773
  )}
771
774
  </View>
772
775
  )}
773
776
  </TouchableOpacity>
774
777
  <View style={styles.progressContainer}>
775
- <View style={styles.progressTrack}>
778
+ <View style={[styles.progressTrack, trackStyle]}>
776
779
  <View
777
780
  style={[
778
781
  styles.progressFill,
@@ -781,12 +784,12 @@ const AudioMessage = ({
781
784
  />
782
785
  </View>
783
786
  <View style={styles.progressRow}>
784
- <Text style={styles.time}>
787
+ <Text style={[styles.time, timeStyle]}>
785
788
  {playbackError ? 'Audio unavailable' : formatTime(position)}
786
789
  </Text>
787
790
  {/* Always render the right slot (empty until known) so the row
788
791
  never reflows when the duration appears after decoding. */}
789
- <Text style={styles.time}>
792
+ <Text style={[styles.time, timeStyle]}>
790
793
  {!playbackError && duration > 0 ? formatTime(duration) : ''}
791
794
  </Text>
792
795
  </View>
@@ -1,5 +1,5 @@
1
- import React, { ReactElement, ReactNode } from 'react';
2
- import styled from 'styled-components/native';
1
+ import React, { ReactElement, ReactNode, useContext } from 'react';
2
+ import styled, { ThemeContext } from 'styled-components/native';
3
3
  import {
4
4
  TouchableOpacity,
5
5
  View,
@@ -20,10 +20,10 @@ const CustomButton = styled(TouchableOpacity)<{
20
20
  variant?: 'default' | 'filled' | 'outlined';
21
21
  }>`
22
22
  border-width: ${({ variant }) => (variant === 'outlined' ? 1 : 0)}px;
23
- border-color: ${({ borderColor }) => borderColor || '#0052CD'};
23
+ border-color: ${({ borderColor, theme }) => borderColor || theme.primary};
24
24
  border-radius: 20px;
25
- background-color: ${({ variant, backgroundColor }) =>
26
- variant === 'filled' ? backgroundColor || '#0052CD' : 'transparent'};
25
+ background-color: ${({ variant, backgroundColor, theme }) =>
26
+ variant === 'filled' ? backgroundColor || theme.primary : 'transparent'};
27
27
  flex-direction: row;
28
28
  justify-content: center;
29
29
  align-items: center;
@@ -38,8 +38,10 @@ const ButtonText = styled.Text<{
38
38
  variant?: 'default' | 'filled' | 'outlined';
39
39
  backgroundColor?: string;
40
40
  }>`
41
- color: ${({ variant, backgroundColor }) =>
42
- variant === 'filled' ? '#FFFFFF' : backgroundColor || '#0052CD'};
41
+ color: ${({ variant, backgroundColor, theme }) =>
42
+ variant === 'filled'
43
+ ? theme.textOnPrimary
44
+ : backgroundColor || theme.primary};
43
45
  font-size: ${PixelRatio.getFontScale() * 14}px;
44
46
  font-weight: bold;
45
47
  `;
@@ -83,6 +85,11 @@ const Button: React.FC<ButtonProps> = ({
83
85
  accessibilityLabel,
84
86
  }) => {
85
87
  const iconOnly = !loading && !children && !text && !StartIcon && !!EndIcon;
88
+ // Theme from the styled ThemeProvider. `useContext` (not styled's
89
+ // `useTheme`) so rendering outside the provider — isolated tests — does
90
+ // not throw; the inline label colour then falls back to the historical
91
+ // black.
92
+ const theme = useContext(ThemeContext);
86
93
 
87
94
  return (
88
95
  <CustomButton
@@ -100,7 +107,7 @@ const Button: React.FC<ButtonProps> = ({
100
107
  {!loading && children}
101
108
  {!loading && !children && typeof text !== 'undefined' && (
102
109
  <ButtonText
103
- style={[{ color: color || 'black' }]}
110
+ style={[{ color: color || theme?.text || 'black' }]}
104
111
  variant={variant}
105
112
  backgroundColor={backgroundColor}
106
113
  >
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import styled from 'styled-components/native';
3
3
  import { Line } from './StyledComponents';
4
4
  import { Text } from 'react-native';
5
- import { getDateLabelColor } from '../../helpers/getDateLabelColor';
5
+ import { useTheme } from '../../hooks/useTheme';
6
6
  import { useT, useUiLocale } from '../../i18n/useT';
7
7
 
8
8
  interface DateLabelProps {
@@ -71,12 +71,16 @@ const DateLabel: React.FC<DateLabelProps> = ({ date, colors }) => {
71
71
  label = date.toLocaleDateString(uiLocale, options);
72
72
  }
73
73
 
74
- const textColor = getDateLabelColor({ colors });
74
+ // Theme-aware: dark mode ignores the light-only `colors` knobs (the
75
+ // theme already folds `colors.dateLabel` / `colors.primary` in light).
76
+ const theme = useTheme();
77
+ const textColor = theme.dateLabel;
78
+ const bgColor = theme.dark ? theme.surfaceSecondary : colors?.secondary;
75
79
 
76
80
  return (
77
81
  <Container>
78
82
  <Line />
79
- <StyledDateLabel bgColor={colors?.secondary}>
83
+ <StyledDateLabel bgColor={bgColor}>
80
84
  <StyledDateText color={textColor}>{label}</StyledDateText>
81
85
  </StyledDateLabel>
82
86
  <Line />
@@ -1,7 +1,8 @@
1
1
  /** @format */
2
2
 
3
- import React from 'react';
4
- import { View, Modal, StyleSheet, ViewStyle, Text } from 'react-native';
3
+ import React from "react";
4
+ import { View, Modal, StyleSheet, ViewStyle, Text } from "react-native";
5
+ import { useTheme } from "../../hooks/useTheme";
5
6
 
6
7
  interface OverlayProps {
7
8
  children?: React.ReactNode;
@@ -9,18 +10,23 @@ interface OverlayProps {
9
10
  style?: ViewStyle;
10
11
  }
11
12
 
12
- export const Overlay = ({ children, visible, style }: OverlayProps) => (
13
- <Modal
14
- transparent={true}
15
- animationType="fade"
16
- visible={visible}
17
- onRequestClose={() => {
18
- // Implement logic to close the modal if needed
19
- }}
20
- >
21
- <View style={[styles.modal, style]}>{children}</View>
22
- </Modal>
23
- );
13
+ export const Overlay = ({ children, visible, style }: OverlayProps) => {
14
+ const theme = useTheme();
15
+ return (
16
+ <Modal
17
+ transparent={true}
18
+ animationType="fade"
19
+ visible={visible}
20
+ onRequestClose={() => {
21
+ // Implement logic to close the modal if needed
22
+ }}
23
+ >
24
+ <View style={[styles.modal, { backgroundColor: theme.surface }, style]}>
25
+ {children}
26
+ </View>
27
+ </Modal>
28
+ );
29
+ };
24
30
 
25
31
  export const StyledModal = ({
26
32
  children,
@@ -34,22 +40,21 @@ export const StyledModal = ({
34
40
 
35
41
  const styles = StyleSheet.create({
36
42
  overlay: {
37
- backgroundColor: 'rgba(0, 0, 0, 0.75)',
43
+ backgroundColor: "rgba(0, 0, 0, 0.75)",
38
44
  flex: 1,
39
- justifyContent: 'center',
40
- alignItems: 'center',
45
+ justifyContent: "center",
46
+ alignItems: "center",
41
47
  zIndex: 999, // Use zIndex for stacking, although this won't work in all cases, Android uses elevation.
42
48
  elevation: 999, // Added to give the overlay layer a higher stacking context on Android.
43
49
  },
44
50
  modal: {
45
51
  flex: 1,
46
- width: '100%',
47
- height: '100%',
48
- backgroundColor: 'white',
52
+ width: "100%",
53
+ height: "100%",
54
+ backgroundColor: "white",
49
55
  padding: 0,
50
- display: 'flex',
51
- justifyContent: 'center',
52
- alignItems: 'center',
56
+ display: "flex",
57
+ justifyContent: "center",
58
+ alignItems: "center",
53
59
  },
54
- })
55
-
60
+ });
@@ -7,6 +7,7 @@ import {
7
7
  TextStyle,
8
8
  } from 'react-native';
9
9
  import { getTintedColor } from '../../../helpers/getTintedColor';
10
+ import { useTheme } from '../../../hooks/useTheme';
10
11
 
11
12
  // Container with burger menu support
12
13
  export const Container = ({
@@ -17,24 +18,34 @@ export const Container = ({
17
18
  burgerMenu?: boolean;
18
19
  open?: boolean;
19
20
  children: React.ReactNode;
20
- }) => (
21
- <View
22
- style={[
23
- styles.container,
24
- burgerMenu && open ? styles.containerOpen : styles.containerClosed,
25
- burgerMenu && styles.burgerMenu,
26
- ]}
27
- >
28
- {children}
29
- </View>
30
- );
21
+ }) => {
22
+ const theme = useTheme();
23
+ return (
24
+ <View
25
+ style={[
26
+ styles.container,
27
+ { backgroundColor: theme.surface },
28
+ burgerMenu && open ? styles.containerOpen : styles.containerClosed,
29
+ burgerMenu && [
30
+ styles.burgerMenu,
31
+ { backgroundColor: theme.surface, borderRightColor: theme.border },
32
+ ],
33
+ ]}
34
+ >
35
+ {children}
36
+ </View>
37
+ );
38
+ };
31
39
 
32
40
  // Button for the burger menu
33
- export const BurgerButton = ({ onPress }: { onPress: () => void }) => (
34
- <TouchableOpacity style={styles.burgerButton} onPress={onPress}>
35
- <Text style={styles.burgerButtonText}>☰</Text>
36
- </TouchableOpacity>
37
- );
41
+ export const BurgerButton = ({ onPress }: { onPress: () => void }) => {
42
+ const theme = useTheme();
43
+ return (
44
+ <TouchableOpacity style={styles.burgerButton} onPress={onPress}>
45
+ <Text style={[styles.burgerButtonText, { color: theme.text }]}>☰</Text>
46
+ </TouchableOpacity>
47
+ );
48
+ };
38
49
 
39
50
  // Chat item
40
51
  const ColorContext = createContext<string | undefined>(undefined);
@@ -71,17 +82,31 @@ export const ChatInfo = ({ children }: { children: React.ReactNode }) => (
71
82
  // One line, ellipsised. Without this a long room title (or a display name
72
83
  // that happens to be an email) wrapped to three or four lines and pushed
73
84
  // the whole row's height around.
74
- export const ChatName = ({ text }: { text: string }) => (
75
- <Text style={styles.chatName} numberOfLines={1} ellipsizeMode="tail">
76
- {text}
77
- </Text>
78
- );
85
+ export const ChatName = ({ text }: { text: string }) => {
86
+ const theme = useTheme();
87
+ return (
88
+ <Text
89
+ style={[styles.chatName, { color: theme.text }]}
90
+ numberOfLines={1}
91
+ ellipsizeMode="tail"
92
+ >
93
+ {text}
94
+ </Text>
95
+ );
96
+ };
79
97
 
80
- export const LastMessage = ({ children }: { children: React.ReactNode }) => (
81
- <Text style={styles.lastMessage} numberOfLines={1} ellipsizeMode="tail">
82
- {children}
83
- </Text>
84
- );
98
+ export const LastMessage = ({ children }: { children: React.ReactNode }) => {
99
+ const theme = useTheme();
100
+ return (
101
+ <Text
102
+ style={[styles.lastMessage, { color: theme.textMuted }]}
103
+ numberOfLines={1}
104
+ ellipsizeMode="tail"
105
+ >
106
+ {children}
107
+ </Text>
108
+ );
109
+ };
85
110
 
86
111
  // User count display for the chat
87
112
  export const UserCount = ({
@@ -92,13 +117,19 @@ export const UserCount = ({
92
117
  style: TextStyle;
93
118
  }) => <Text style={[styles.userCount, style]}>{text}</Text>;
94
119
 
95
- export const Viewider = () => <View style={styles.viewider} />;
120
+ export const Viewider = () => {
121
+ const theme = useTheme();
122
+ return (
123
+ <View
124
+ style={[styles.viewider, { backgroundColor: theme.surfaceHighlight }]}
125
+ />
126
+ );
127
+ };
96
128
 
97
129
  const styles = StyleSheet.create({
98
130
  container: {
99
131
  padding: 16,
100
132
  paddingTop: 0,
101
- backgroundColor: '#fff',
102
133
  overflow: 'hidden',
103
134
  },
104
135
  burgerMenu: {
@@ -110,10 +141,8 @@ const styles = StyleSheet.create({
110
141
  transform: [{ translateX: -300 }],
111
142
  display: 'flex',
112
143
  flexDirection: 'column',
113
- backgroundColor: '#fff',
114
144
  padding: 16,
115
145
  borderRightWidth: 1,
116
- borderRightColor: '#f0f0f0',
117
146
  },
118
147
  containerOpen: {
119
148
  transform: [{ translateX: 0 }],
@@ -129,7 +158,6 @@ const styles = StyleSheet.create({
129
158
  },
130
159
  burgerButtonText: {
131
160
  fontSize: 24,
132
- color: '#333',
133
161
  },
134
162
  chatItem: {
135
163
  borderRadius: 16,
@@ -162,15 +190,12 @@ const styles = StyleSheet.create({
162
190
  chatName: {
163
191
  fontWeight: 'bold',
164
192
  },
165
- lastMessage: {
166
- color: '#999',
167
- },
193
+ lastMessage: {},
168
194
  userCount: {
169
195
  marginLeft: 'auto',
170
196
  },
171
197
  viewider: {
172
198
  height: 1,
173
199
  width: '100%',
174
- backgroundColor: '#0052cd0d',
175
200
  },
176
201
  });
@@ -14,6 +14,7 @@ import AttachSheet, { PickedMedia } from '../Modals/AttachSheet/AttachSheet';
14
14
  import { MediaFilePreview } from './MediaFilePreview';
15
15
  import { getIconColor } from '../../helpers/getIconColor';
16
16
  import { getElementFont } from '../../helpers/getElementFont';
17
+ import { useTheme } from '../../hooks/useTheme';
17
18
  import { useT } from '../../i18n/useT';
18
19
  import { getMediaLibrary } from '../../helpers/mediaLibraryRuntime';
19
20
  import * as ImagePicker from 'expo-image-picker';
@@ -99,6 +100,7 @@ const SendInput: React.FC<SendInputProps> = ({
99
100
  isMessageProcessing,
100
101
  }) => {
101
102
  const t = useT();
103
+ const theme = useTheme();
102
104
  const [message, setMessage] = useState('');
103
105
  const [isRecording, setIsRecording] = useState(false);
104
106
  // Live counter (seconds) for the recording overlay. Updated by a
@@ -630,7 +632,8 @@ const SendInput: React.FC<SendInputProps> = ({
630
632
  fontSize={config?.typography?.input?.fontSize}
631
633
  fontWeight={config?.typography?.input?.fontWeight as any}
632
634
  placeholder={t('input.placeholder')}
633
- placeholderTextColor="#999"
635
+ placeholderTextColor={theme.textMuted}
636
+ keyboardAppearance={theme.dark ? 'dark' : 'light'}
634
637
  value={message}
635
638
  onChangeText={(text) => {
636
639
  messageRef.current = text;
@@ -678,11 +681,21 @@ const SendInput: React.FC<SendInputProps> = ({
678
681
  borderRadius: 20,
679
682
  alignItems: 'center',
680
683
  justifyContent: 'center',
681
- backgroundColor: '#FEE2E2',
684
+ // Light keeps its pale-red chip; on a dark ground the
685
+ // danger tint on the glyph alone carries the meaning.
686
+ backgroundColor: theme.dark ? theme.surfaceSecondary : '#FEE2E2',
682
687
  }}
683
688
  activeOpacity={0.7}
684
689
  >
685
- <Text style={{ color: '#B91C1C', fontWeight: '700', fontSize: 18 }}>×</Text>
690
+ <Text
691
+ style={{
692
+ color: theme.dark ? theme.danger : '#B91C1C',
693
+ fontWeight: '700',
694
+ fontSize: 18,
695
+ }}
696
+ >
697
+ ×
698
+ </Text>
686
699
  </TouchableOpacity>
687
700
  {/* Live elapsed time + red recording dot. flex:1 so it
688
701
  * occupies the middle slot the input used to have. */}
@@ -701,14 +714,14 @@ const SendInput: React.FC<SendInputProps> = ({
701
714
  width: 10,
702
715
  height: 10,
703
716
  borderRadius: 5,
704
- backgroundColor: '#EF4444',
717
+ backgroundColor: theme.dark ? theme.danger : '#EF4444',
705
718
  }}
706
719
  />
707
- <Text style={{ fontSize: 16, color: '#1F2937', fontWeight: '500' }}>
720
+ <Text style={{ fontSize: 16, color: theme.text, fontWeight: '500' }}>
708
721
  {Math.floor(recordingDuration / 60)}:
709
722
  {(recordingDuration % 60).toString().padStart(2, '0')}
710
723
  </Text>
711
- <Text style={{ fontSize: 13, color: '#6B7280' }}>Recording…</Text>
724
+ <Text style={{ fontSize: 13, color: theme.textSecondary }}>Recording…</Text>
712
725
  </View>
713
726
  </>
714
727
  )}
@@ -742,9 +755,11 @@ const SendInput: React.FC<SendInputProps> = ({
742
755
  disabled={disabled}
743
756
  EndIcon={
744
757
  showMic ? (
745
- <RecordIcon color="#FFFFFF" />
758
+ <RecordIcon color={theme.textOnPrimary} />
746
759
  ) : (
747
- <SendIcon color={filled ? '#FFFFFF' : '#D4D4D8'} />
760
+ <SendIcon
761
+ color={filled ? theme.textOnPrimary : theme.textMuted}
762
+ />
748
763
  )
749
764
  }
750
765
  style={{