@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,130 +0,0 @@
1
- "use strict";
2
-
3
- import messaging from '@react-native-firebase/messaging';
4
- import { getApp } from '@react-native-firebase/app';
5
- import { Platform, PermissionsAndroid } from 'react-native';
6
- let appInstance;
7
- try {
8
- appInstance = getApp();
9
- } catch (error) {}
10
- const AuthorizationStatus = messaging.AuthorizationStatus;
11
- let cachedMessagingInstance = null;
12
- const getMessagingInstance = () => {
13
- if (cachedMessagingInstance) {
14
- return cachedMessagingInstance;
15
- }
16
- if (!appInstance) {
17
- try {
18
- appInstance = getApp();
19
- } catch (e) {}
20
- }
21
- cachedMessagingInstance = messaging();
22
- return cachedMessagingInstance;
23
- };
24
- export async function requestNotificationPermission() {
25
- const messagingInstance = getMessagingInstance();
26
- if (Platform.OS === 'ios') {
27
- const authStatus = await messagingInstance.requestPermission();
28
- return authStatus === AuthorizationStatus.AUTHORIZED || authStatus === AuthorizationStatus.PROVISIONAL;
29
- }
30
- if (Platform.OS === 'android' && Platform.Version >= 33) {
31
- const granted = await PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS);
32
- return granted === PermissionsAndroid.RESULTS.GRANTED;
33
- }
34
- return true;
35
- }
36
- export async function getFCMToken() {
37
- try {
38
- const messagingInstance = getMessagingInstance();
39
- if (!messagingInstance.isDeviceRegisteredForRemoteMessages) {
40
- await messagingInstance.registerDeviceForRemoteMessages();
41
- }
42
- if (Platform.OS === 'ios') {
43
- await new Promise(resolve => setTimeout(resolve, 2000));
44
- let apnsToken = await messagingInstance.getAPNSToken();
45
- if (!apnsToken) {
46
- await new Promise(resolve => setTimeout(resolve, 3000));
47
- apnsToken = await messagingInstance.getAPNSToken();
48
- }
49
-
50
- // No APNS token means push not configured - this is OK for development
51
- if (!apnsToken) {
52
- console.log('Push notifications not configured (missing APNs). App will work without push.');
53
- return null;
54
- }
55
- }
56
- const token = await messagingInstance.getToken();
57
- return token;
58
- } catch (error) {
59
- // Silently handle missing aps-environment (push not configured in Xcode)
60
- const errorMsg = error?.message || String(error);
61
- if (errorMsg.includes('aps-environment') || errorMsg.includes('messaging/unknown')) {
62
- console.log('Push notifications not configured in Xcode. App will work without push.');
63
- return null;
64
- }
65
- console.warn('Error getting FCM token:', error);
66
- return null;
67
- }
68
- }
69
- export function onForegroundMessage(callback) {
70
- const messagingInstance = getMessagingInstance();
71
- return messagingInstance.onMessage(callback);
72
- }
73
- export function setBackgroundMessageHandler(handler) {
74
- const messagingInstance = getMessagingInstance();
75
- messagingInstance.setBackgroundMessageHandler(handler);
76
- }
77
- export function onNotificationOpenedApp(callback) {
78
- const messagingInstance = getMessagingInstance();
79
- return messagingInstance.onNotificationOpenedApp(callback);
80
- }
81
- export async function getInitialNotification() {
82
- try {
83
- const messagingInstance = getMessagingInstance();
84
- const message = await messagingInstance.getInitialNotification();
85
- return message;
86
- } catch (error) {
87
- console.error('Error getting initial notification:', error);
88
- return null;
89
- }
90
- }
91
- export async function initPushNotifications() {
92
- const hasPermission = await requestNotificationPermission();
93
- if (!hasPermission) {
94
- console.error('Push notification permission denied');
95
- return null;
96
- }
97
- const token = await getFCMToken();
98
- return token;
99
- }
100
- export async function checkNotificationPermission() {
101
- try {
102
- const messagingInstance = getMessagingInstance();
103
- if (Platform.OS === 'ios') {
104
- try {
105
- const apnsToken = await messagingInstance.getAPNSToken();
106
- return apnsToken !== null;
107
- } catch (error) {
108
- return false;
109
- }
110
- }
111
- if (Platform.OS === 'android' && Platform.Version >= 33) {
112
- const granted = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS);
113
- return granted;
114
- }
115
- return true;
116
- } catch (error) {
117
- console.warn('Error checking notification permission:', error);
118
- return false;
119
- }
120
- }
121
- export async function disablePushNotifications() {
122
- try {
123
- const messagingInstance = getMessagingInstance();
124
- await messagingInstance.deleteToken();
125
- console.log('FCM token deleted successfully');
126
- } catch (error) {
127
- console.warn('Error deleting FCM token:', error);
128
- }
129
- }
130
- //# sourceMappingURL=pushNotifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["messaging","getApp","Platform","PermissionsAndroid","appInstance","error","AuthorizationStatus","cachedMessagingInstance","getMessagingInstance","e","requestNotificationPermission","messagingInstance","OS","authStatus","requestPermission","AUTHORIZED","PROVISIONAL","Version","granted","request","PERMISSIONS","POST_NOTIFICATIONS","RESULTS","GRANTED","getFCMToken","isDeviceRegisteredForRemoteMessages","registerDeviceForRemoteMessages","Promise","resolve","setTimeout","apnsToken","getAPNSToken","console","log","token","getToken","errorMsg","message","String","includes","warn","onForegroundMessage","callback","onMessage","setBackgroundMessageHandler","handler","onNotificationOpenedApp","getInitialNotification","initPushNotifications","hasPermission","checkNotificationPermission","check","disablePushNotifications","deleteToken"],"sourceRoot":"../../../src","sources":["services/pushNotifications.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAAkC,kCAAkC;AACpF,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;AAE3D,IAAIC,WAAgB;AACpB,IAAI;EACFA,WAAW,GAAGH,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC,OAAOI,KAAK,EAAE,CAChB;AAEA,MAAMC,mBAAmB,GAAIN,SAAS,CAASM,mBAAmB;AAElE,IAAIC,uBAA4B,GAAG,IAAI;AAEvC,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACjC,IAAID,uBAAuB,EAAE;IAC3B,OAAOA,uBAAuB;EAChC;EAEA,IAAI,CAACH,WAAW,EAAE;IAChB,IAAI;MACFA,WAAW,GAAGH,MAAM,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOQ,CAAC,EAAE,CACZ;EACF;EAEAF,uBAAuB,GAAGP,SAAS,CAAC,CAAC;EACrC,OAAOO,uBAAuB;AAChC,CAAC;AAED,OAAO,eAAeG,6BAA6BA,CAAA,EAAqB;EACtE,MAAMC,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;EAChD,IAAIN,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMC,UAAU,GAAG,MAAMF,iBAAiB,CAACG,iBAAiB,CAAC,CAAC;IAC9D,OACED,UAAU,KAAKP,mBAAmB,CAACS,UAAU,IAC7CF,UAAU,KAAKP,mBAAmB,CAACU,WAAW;EAElD;EAEA,IAAId,QAAQ,CAACU,EAAE,KAAK,SAAS,IAAIV,QAAQ,CAACe,OAAO,IAAI,EAAE,EAAE;IACvD,MAAMC,OAAO,GAAG,MAAMf,kBAAkB,CAACgB,OAAO,CAC9ChB,kBAAkB,CAACiB,WAAW,CAACC,kBACjC,CAAC;IACD,OAAOH,OAAO,KAAKf,kBAAkB,CAACmB,OAAO,CAACC,OAAO;EACvD;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,eAAeC,WAAWA,CAAA,EAA2B;EAC1D,IAAI;IACF,MAAMb,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;IAChD,IAAI,CAACG,iBAAiB,CAACc,mCAAmC,EAAE;MAC1D,MAAMd,iBAAiB,CAACe,+BAA+B,CAAC,CAAC;IAC3D;IAEA,IAAIxB,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;MACzB,MAAM,IAAIe,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,IAAI,CAAC,CAAC;MAEvD,IAAIE,SAAS,GAAG,MAAMnB,iBAAiB,CAACoB,YAAY,CAAC,CAAC;MAEtD,IAAI,CAACD,SAAS,EAAE;QACd,MAAM,IAAIH,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,IAAI,CAAC,CAAC;QACvDE,SAAS,GAAG,MAAMnB,iBAAiB,CAACoB,YAAY,CAAC,CAAC;MACpD;;MAEA;MACA,IAAI,CAACD,SAAS,EAAE;QACdE,OAAO,CAACC,GAAG,CAAC,+EAA+E,CAAC;QAC5F,OAAO,IAAI;MACb;IACF;IAEA,MAAMC,KAAK,GAAG,MAAMvB,iBAAiB,CAACwB,QAAQ,CAAC,CAAC;IAEhD,OAAOD,KAAK;EACd,CAAC,CAAC,OAAO7B,KAAU,EAAE;IACnB;IACA,MAAM+B,QAAQ,GAAG/B,KAAK,EAAEgC,OAAO,IAAIC,MAAM,CAACjC,KAAK,CAAC;IAChD,IAAI+B,QAAQ,CAACG,QAAQ,CAAC,iBAAiB,CAAC,IAAIH,QAAQ,CAACG,QAAQ,CAAC,mBAAmB,CAAC,EAAE;MAClFP,OAAO,CAACC,GAAG,CAAC,yEAAyE,CAAC;MACtF,OAAO,IAAI;IACb;IACAD,OAAO,CAACQ,IAAI,CAAC,0BAA0B,EAAEnC,KAAK,CAAC;IAC/C,OAAO,IAAI;EACb;AACF;AAEA,OAAO,SAASoC,mBAAmBA,CACjCC,QAAgC,EACpB;EACZ,MAAM/B,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;EAChD,OAAOG,iBAAiB,CAACgC,SAAS,CAACD,QAAQ,CAAC;AAC9C;AAEA,OAAO,SAASE,2BAA2BA,CACzCC,OAAwC,EAClC;EACN,MAAMlC,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;EAChDG,iBAAiB,CAACiC,2BAA2B,CAACC,OAAO,CAAC;AACxD;AAEA,OAAO,SAASC,uBAAuBA,CACrCJ,QAAgC,EACpB;EACZ,MAAM/B,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;EAChD,OAAOG,iBAAiB,CAACmC,uBAAuB,CAACJ,QAAQ,CAAC;AAC5D;AAEA,OAAO,eAAeK,sBAAsBA,CAAA,EAAwB;EAClE,IAAI;IACF,MAAMpC,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;IAChD,MAAM6B,OAAO,GAAG,MAAM1B,iBAAiB,CAACoC,sBAAsB,CAAC,CAAC;IAChE,OAAOV,OAAO;EAChB,CAAC,CAAC,OAAOhC,KAAK,EAAE;IACd2B,OAAO,CAAC3B,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;IAC3D,OAAO,IAAI;EACb;AACF;AAEA,OAAO,eAAe2C,qBAAqBA,CAAA,EAA2B;EAEpE,MAAMC,aAAa,GAAG,MAAMvC,6BAA6B,CAAC,CAAC;EAE3D,IAAI,CAACuC,aAAa,EAAE;IAClBjB,OAAO,CAAC3B,KAAK,CAAC,qCAAqC,CAAC;IACpD,OAAO,IAAI;EACb;EAEA,MAAM6B,KAAK,GAAG,MAAMV,WAAW,CAAC,CAAC;EAEjC,OAAOU,KAAK;AACd;AAEA,OAAO,eAAegB,2BAA2BA,CAAA,EAAqB;EACpE,IAAI;IACF,MAAMvC,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;IAChD,IAAIN,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;MACzB,IAAI;QACF,MAAMkB,SAAS,GAAG,MAAMnB,iBAAiB,CAACoB,YAAY,CAAC,CAAC;QACxD,OAAOD,SAAS,KAAK,IAAI;MAC3B,CAAC,CAAC,OAAOzB,KAAK,EAAE;QACd,OAAO,KAAK;MACd;IACF;IAEA,IAAIH,QAAQ,CAACU,EAAE,KAAK,SAAS,IAAIV,QAAQ,CAACe,OAAO,IAAI,EAAE,EAAE;MACvD,MAAMC,OAAO,GAAG,MAAMf,kBAAkB,CAACgD,KAAK,CAC5ChD,kBAAkB,CAACiB,WAAW,CAACC,kBACjC,CAAC;MACD,OAAOH,OAAO;IAChB;IAEA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOb,KAAK,EAAE;IACd2B,OAAO,CAACQ,IAAI,CAAC,yCAAyC,EAAEnC,KAAK,CAAC;IAC9D,OAAO,KAAK;EACd;AACF;AAEA,OAAO,eAAe+C,wBAAwBA,CAAA,EAAkB;EAC9D,IAAI;IACF,MAAMzC,iBAAiB,GAAGH,oBAAoB,CAAC,CAAC;IAChD,MAAMG,iBAAiB,CAAC0C,WAAW,CAAC,CAAC;IACrCrB,OAAO,CAACC,GAAG,CAAC,gCAAgC,CAAC;EAC/C,CAAC,CAAC,OAAO5B,KAAK,EAAE;IACd2B,OAAO,CAACQ,IAAI,CAAC,2BAA2B,EAAEnC,KAAK,CAAC;EAClD;AACF","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=PushNotificationProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PushNotificationProvider.d.ts","sourceRoot":"","sources":["../../../src/context/PushNotificationProvider.tsx"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export declare function usePushNotifications(): {
2
- fcmToken: string | null;
3
- notification: any;
4
- };
5
- //# sourceMappingURL=usePushNotifications.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePushNotifications.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePushNotifications.ts"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB;;;EAmHnC"}
@@ -1,10 +0,0 @@
1
- export declare function requestNotificationPermission(): Promise<boolean>;
2
- export declare function getFCMToken(): Promise<string | null>;
3
- export declare function onForegroundMessage(callback: (message: any) => void): () => void;
4
- export declare function setBackgroundMessageHandler(handler: (message: any) => Promise<void>): void;
5
- export declare function onNotificationOpenedApp(callback: (message: any) => void): () => void;
6
- export declare function getInitialNotification(): Promise<any | null>;
7
- export declare function initPushNotifications(): Promise<string | null>;
8
- export declare function checkNotificationPermission(): Promise<boolean>;
9
- export declare function disablePushNotifications(): Promise<void>;
10
- //# sourceMappingURL=pushNotifications.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pushNotifications.d.ts","sourceRoot":"","sources":["../../../src/services/pushNotifications.ts"],"names":[],"mappings":"AA8BA,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBtE;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAqC1D;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAC/B,MAAM,IAAI,CAGZ;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GACvC,IAAI,CAGN;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAC/B,MAAM,IAAI,CAGZ;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CASlE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYpE;AAED,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,OAAO,CAAC,CAwBpE;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ9D"}
@@ -1,78 +0,0 @@
1
- // /**
2
- // * Push Notification Provider
3
- // * Initializes and manages push notifications for the chat
4
- // */
5
-
6
- // import React, { createContext, useContext, useEffect, ReactNode } from 'react';
7
- // import { useSelector, useDispatch } from 'react-redux';
8
- // import { usePushNotifications } from '../hooks/usePushNotifications';
9
- // import { RootState } from '../roomStore';
10
- // import { setCurrentRoom } from '../roomStore/roomsSlice';
11
- // import { IConfig } from '../types/types';
12
-
13
- // interface PushNotificationContextType {
14
- // fcmToken: string | null;
15
- // isInitialized: boolean;
16
- // error: string | null;
17
- // }
18
-
19
- // const PushNotificationContext = createContext<PushNotificationContextType>({
20
- // fcmToken: null,
21
- // isInitialized: false,
22
- // error: null,
23
- // });
24
-
25
- // interface PushNotificationProviderProps {
26
- // children: ReactNode;
27
- // config?: IConfig;
28
- // }
29
-
30
- // export const PushNotificationProvider: React.FC<PushNotificationProviderProps> = ({
31
- // children,
32
- // config,
33
- // }) => {
34
- // const dispatch = useDispatch();
35
- // const rooms = useSelector((state: RootState) => state.rooms.rooms);
36
-
37
- // // Handle notification press - navigate to chat
38
- // const handleNotificationPress = (data: any) => {
39
- // console.log('[PushProvider] Notification pressed:', data);
40
-
41
- // if (data?.chatJid) {
42
- // // Find the room and set it as current
43
- // const room = rooms.find((r) => r.jid === data.chatJid);
44
- // if (room) {
45
- // dispatch(setCurrentRoom({ roomJID: room.jid }));
46
- // }
47
- // }
48
-
49
- // // Call custom handler if provided
50
- // config?.pushNotifications?.onNotificationPress?.(data);
51
- // };
52
-
53
- // const { fcmToken, isInitialized, error } = usePushNotifications({
54
- // enabled: config?.pushNotifications?.enabled ?? false,
55
- // pushApiUrl: config?.pushNotifications?.pushApiUrl,
56
- // onNotificationPress: handleNotificationPress,
57
- // });
58
-
59
- // useEffect(() => {
60
- // if (isInitialized) {
61
- // console.log('[PushProvider] Push notifications initialized');
62
- // }
63
- // if (error) {
64
- // console.error('[PushProvider] Push error:', error);
65
- // }
66
- // }, [isInitialized, error]);
67
-
68
- // return (
69
- // <PushNotificationContext.Provider value={{ fcmToken, isInitialized, error }}>
70
- // {children}
71
- // </PushNotificationContext.Provider>
72
- // );
73
- // };
74
-
75
- // export const usePushNotificationContext = () => useContext(PushNotificationContext);
76
-
77
- // export default PushNotificationProvider;
78
-
@@ -1,131 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- import { Alert, Platform } from 'react-native';
3
- import {
4
- initPushNotifications,
5
- onForegroundMessage,
6
- onNotificationOpenedApp,
7
- getInitialNotification,
8
- } from '../services/pushNotifications';
9
- import { pushSubscriptionService } from '../services/pushSubscriptionService';
10
- import { useSelector, useDispatch } from 'react-redux';
11
- import { RootState } from '../roomStore';
12
- import { useLocalStorage } from './useLocalStorage';
13
- import { setPendingNotificationJid } from '../roomStore/roomsSlice';
14
- import { handleCallPush } from '../helpers/incomingCallFromPush';
15
-
16
- export function usePushNotifications() {
17
- const [fcmToken, setFcmToken] = useState<string | null>(null);
18
- const [notification, setNotification] = useState<any>(null);
19
- const { user, config } = useSelector((state: RootState) => state.chatSettingStore);
20
- const rooms = useSelector((state: RootState) => state.rooms.rooms);
21
- const dispatch = useDispatch();
22
-
23
- const { set, get } = useLocalStorage('fcmToken');
24
-
25
- const handleNotificationPress = (remoteMessage: any) => {
26
- // Tapping a call notification (or launching the app from one) should
27
- // land on the ring screen, not on the chat room.
28
- if (handleCallPush(remoteMessage?.data)) {
29
- return;
30
- }
31
-
32
- const jid = remoteMessage?.data?.jid || remoteMessage?.data?.chatJid || remoteMessage?.jid;
33
-
34
- if (jid) {
35
- dispatch(setPendingNotificationJid(jid));
36
- } else {
37
- console.warn('No JID found in notification data:', remoteMessage?.data);
38
- }
39
- };
40
-
41
- const initToken = async () => {
42
- try {
43
-
44
- const token = await get();
45
- if (token) {
46
- setFcmToken(token as string);
47
- return;
48
- }
49
- const newToken = await initPushNotifications();
50
-
51
- setFcmToken(newToken);
52
- set(newToken as string);
53
- } catch (error) {
54
- console.error('Failed to init token:', error);
55
- }
56
- };
57
-
58
- useEffect(() => {
59
- // initToken is async — `initToken()` without `.catch` leaves any
60
- // rejection unhandled (showed as `Uncaught (in promise, id: X)` red
61
- // screen in dev). The inner try/catch covers most paths but any
62
- // synchronous throw before the try-block ran would still leak.
63
- initToken().catch((err) =>
64
- console.warn('[usePushNotifications] initToken rejected', err)
65
- );
66
-
67
- const unsubscribeForeground = onForegroundMessage((message) => {
68
- // Calls first: a call push must open the ring screen, never an
69
- // "OK / Open" alert. handleCallPush returns true for anything
70
- // call-shaped, so we bail before the chat-notification path.
71
- if (handleCallPush(message?.data)) {
72
- return;
73
- }
74
-
75
- setNotification(message);
76
-
77
- const { notification: notif } = message;
78
- if (notif) {
79
- Alert.alert(
80
- notif.title || 'Notification',
81
- notif.body || '',
82
- [
83
- { text: 'OK' },
84
- {
85
- text: 'Open',
86
- onPress: () => handleNotificationPress(message),
87
- },
88
- ]
89
- );
90
- }
91
- });
92
-
93
- const unsubscribeOpened = onNotificationOpenedApp((message) => {
94
- console.log('[usePushNotifications] App opened from notification:', JSON.stringify(message, null, 2));
95
- setNotification(message);
96
- handleNotificationPress(message);
97
- });
98
-
99
- getInitialNotification()
100
- .then((message) => {
101
- if (message) {
102
- console.log('[usePushNotifications] Initial notification:', JSON.stringify(message, null, 2));
103
- setNotification(message);
104
- handleNotificationPress(message);
105
- }
106
- })
107
- .catch((err) =>
108
- console.warn(
109
- '[usePushNotifications] getInitialNotification failed',
110
- err
111
- )
112
- );
113
-
114
- return () => {
115
- unsubscribeForeground();
116
- unsubscribeOpened();
117
- };
118
- }, [rooms]);
119
-
120
- useEffect(() => {
121
- if (fcmToken && user && user.xmppPassword && user.defaultWallet?.walletAddress) {
122
- pushSubscriptionService
123
- .subscribeToPush(fcmToken, user, config?.projectName || '')
124
- .catch((error) => {
125
- console.error('Failed to subscribe to push:', error);
126
- });
127
- }
128
- }, [fcmToken, user?.defaultWallet?.walletAddress, user?.xmppPassword]);
129
-
130
- return { fcmToken, notification };
131
- }
@@ -1,170 +0,0 @@
1
- import messaging, { FirebaseMessagingTypes } from '@react-native-firebase/messaging';
2
- import { getApp } from '@react-native-firebase/app';
3
- import { Platform, PermissionsAndroid } from 'react-native';
4
-
5
- let appInstance: any;
6
- try {
7
- appInstance = getApp();
8
- } catch (error) {
9
- }
10
-
11
- const AuthorizationStatus = (messaging as any).AuthorizationStatus;
12
-
13
- let cachedMessagingInstance: any = null;
14
-
15
- const getMessagingInstance = () => {
16
- if (cachedMessagingInstance) {
17
- return cachedMessagingInstance;
18
- }
19
-
20
- if (!appInstance) {
21
- try {
22
- appInstance = getApp();
23
- } catch (e) {
24
- }
25
- }
26
-
27
- cachedMessagingInstance = messaging();
28
- return cachedMessagingInstance;
29
- };
30
-
31
- export async function requestNotificationPermission(): Promise<boolean> {
32
- const messagingInstance = getMessagingInstance();
33
- if (Platform.OS === 'ios') {
34
- const authStatus = await messagingInstance.requestPermission();
35
- return (
36
- authStatus === AuthorizationStatus.AUTHORIZED ||
37
- authStatus === AuthorizationStatus.PROVISIONAL
38
- );
39
- }
40
-
41
- if (Platform.OS === 'android' && Platform.Version >= 33) {
42
- const granted = await PermissionsAndroid.request(
43
- PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS
44
- );
45
- return granted === PermissionsAndroid.RESULTS.GRANTED;
46
- }
47
-
48
- return true;
49
- }
50
-
51
- export async function getFCMToken(): Promise<string | null> {
52
- try {
53
- const messagingInstance = getMessagingInstance();
54
- if (!messagingInstance.isDeviceRegisteredForRemoteMessages) {
55
- await messagingInstance.registerDeviceForRemoteMessages();
56
- }
57
-
58
- if (Platform.OS === 'ios') {
59
- await new Promise(resolve => setTimeout(resolve, 2000));
60
-
61
- let apnsToken = await messagingInstance.getAPNSToken();
62
-
63
- if (!apnsToken) {
64
- await new Promise(resolve => setTimeout(resolve, 3000));
65
- apnsToken = await messagingInstance.getAPNSToken();
66
- }
67
-
68
- // No APNS token means push not configured - this is OK for development
69
- if (!apnsToken) {
70
- console.log('Push notifications not configured (missing APNs). App will work without push.');
71
- return null;
72
- }
73
- }
74
-
75
- const token = await messagingInstance.getToken();
76
-
77
- return token;
78
- } catch (error: any) {
79
- // Silently handle missing aps-environment (push not configured in Xcode)
80
- const errorMsg = error?.message || String(error);
81
- if (errorMsg.includes('aps-environment') || errorMsg.includes('messaging/unknown')) {
82
- console.log('Push notifications not configured in Xcode. App will work without push.');
83
- return null;
84
- }
85
- console.warn('Error getting FCM token:', error);
86
- return null;
87
- }
88
- }
89
-
90
- export function onForegroundMessage(
91
- callback: (message: any) => void
92
- ): () => void {
93
- const messagingInstance = getMessagingInstance();
94
- return messagingInstance.onMessage(callback);
95
- }
96
-
97
- export function setBackgroundMessageHandler(
98
- handler: (message: any) => Promise<void>
99
- ): void {
100
- const messagingInstance = getMessagingInstance();
101
- messagingInstance.setBackgroundMessageHandler(handler);
102
- }
103
-
104
- export function onNotificationOpenedApp(
105
- callback: (message: any) => void
106
- ): () => void {
107
- const messagingInstance = getMessagingInstance();
108
- return messagingInstance.onNotificationOpenedApp(callback);
109
- }
110
-
111
- export async function getInitialNotification(): Promise<any | null> {
112
- try {
113
- const messagingInstance = getMessagingInstance();
114
- const message = await messagingInstance.getInitialNotification();
115
- return message;
116
- } catch (error) {
117
- console.error('Error getting initial notification:', error);
118
- return null;
119
- }
120
- }
121
-
122
- export async function initPushNotifications(): Promise<string | null> {
123
-
124
- const hasPermission = await requestNotificationPermission();
125
-
126
- if (!hasPermission) {
127
- console.error('Push notification permission denied');
128
- return null;
129
- }
130
-
131
- const token = await getFCMToken();
132
-
133
- return token;
134
- }
135
-
136
- export async function checkNotificationPermission(): Promise<boolean> {
137
- try {
138
- const messagingInstance = getMessagingInstance();
139
- if (Platform.OS === 'ios') {
140
- try {
141
- const apnsToken = await messagingInstance.getAPNSToken();
142
- return apnsToken !== null;
143
- } catch (error) {
144
- return false;
145
- }
146
- }
147
-
148
- if (Platform.OS === 'android' && Platform.Version >= 33) {
149
- const granted = await PermissionsAndroid.check(
150
- PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS
151
- );
152
- return granted;
153
- }
154
-
155
- return true;
156
- } catch (error) {
157
- console.warn('Error checking notification permission:', error);
158
- return false;
159
- }
160
- }
161
-
162
- export async function disablePushNotifications(): Promise<void> {
163
- try {
164
- const messagingInstance = getMessagingInstance();
165
- await messagingInstance.deleteToken();
166
- console.log('FCM token deleted successfully');
167
- } catch (error) {
168
- console.warn('Error deleting FCM token:', error);
169
- }
170
- }