@ethora/chat-component-rn 26.10.4 → 26.10.6

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 (451) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +15 -0
  3. package/app.plugin.js +2 -0
  4. package/lib/commonjs/assets/icons.js +2 -2
  5. package/lib/commonjs/assets/icons.js.map +1 -1
  6. package/lib/commonjs/components/MainComponents/AlbumGrid.js +152 -0
  7. package/lib/commonjs/components/MainComponents/AlbumGrid.js.map +1 -0
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js +2 -2
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/MediaMessage.js +199 -123
  11. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/MediaUploadOverlay.js +109 -0
  13. package/lib/commonjs/components/MainComponents/MediaUploadOverlay.js.map +1 -0
  14. package/lib/commonjs/components/MessageBubble/MediaCaption.js +51 -0
  15. package/lib/commonjs/components/MessageBubble/MediaCaption.js.map +1 -0
  16. package/lib/commonjs/components/MessageBubble/Message.js +40 -1
  17. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  18. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +2 -1
  19. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  20. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +75 -0
  21. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  22. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +20 -4
  23. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  24. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +3 -2
  25. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  26. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -2
  27. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  28. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -2
  29. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  30. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -2
  31. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  32. package/lib/commonjs/components/Thread/ThreadWrapper.js +3 -2
  33. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  34. package/lib/commonjs/components/VideoCalls/ActiveCallBar.js +61 -16
  35. package/lib/commonjs/components/VideoCalls/ActiveCallBar.js.map +1 -1
  36. package/lib/commonjs/components/VideoCalls/CallIcons.js +41 -16
  37. package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -1
  38. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +183 -9
  39. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  40. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +40 -15
  41. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  42. package/lib/commonjs/components/VideoCalls/callSessionController.js +49 -26
  43. package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -1
  44. package/lib/commonjs/components/VideoCalls/callUiStore.js +33 -4
  45. package/lib/commonjs/components/VideoCalls/callUiStore.js.map +1 -1
  46. package/lib/commonjs/components/VideoCalls/livekitRuntime.js +9 -1
  47. package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -1
  48. package/lib/commonjs/components/VideoCalls/useCallKeep.js +197 -28
  49. package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
  50. package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js +88 -0
  51. package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js.map +1 -0
  52. package/lib/commonjs/components/VideoCalls/usePipTile.js +232 -0
  53. package/lib/commonjs/components/VideoCalls/usePipTile.js.map +1 -0
  54. package/lib/commonjs/components/styled/MediaFilePreview.js +60 -47
  55. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  56. package/lib/commonjs/components/styled/MessageImage.js +16 -6
  57. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  58. package/lib/commonjs/components/styled/SendInput.js +99 -68
  59. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  60. package/lib/commonjs/components/styled/VideoMessage.js +24 -10
  61. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  62. package/lib/commonjs/context/xmppProvider.js +46 -0
  63. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  64. package/lib/commonjs/e2ee/fileEnvelope.js +6 -0
  65. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -1
  66. package/lib/commonjs/e2ee/sealedBody.js +32 -2
  67. package/lib/commonjs/e2ee/sealedBody.js.map +1 -1
  68. package/lib/commonjs/helpers/albumLayout.js +150 -0
  69. package/lib/commonjs/helpers/albumLayout.js.map +1 -0
  70. package/lib/commonjs/helpers/attachments.js +255 -0
  71. package/lib/commonjs/helpers/attachments.js.map +1 -0
  72. package/lib/commonjs/helpers/caption.js +214 -0
  73. package/lib/commonjs/helpers/caption.js.map +1 -0
  74. package/lib/commonjs/helpers/createMainMessageForThread.js +5 -1
  75. package/lib/commonjs/helpers/createMainMessageForThread.js.map +1 -1
  76. package/lib/commonjs/helpers/createMessageFromXml.js +19 -5
  77. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  78. package/lib/commonjs/helpers/fileKind.js +40 -0
  79. package/lib/commonjs/helpers/fileKind.js.map +1 -0
  80. package/lib/commonjs/helpers/getDataFromXml.js +6 -1
  81. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  82. package/lib/commonjs/helpers/mapWithConcurrency.js +41 -0
  83. package/lib/commonjs/helpers/mapWithConcurrency.js.map +1 -0
  84. package/lib/commonjs/helpers/mediaLimits.js +33 -0
  85. package/lib/commonjs/helpers/mediaLimits.js.map +1 -0
  86. package/lib/commonjs/helpers/mediaSendRetry.js +64 -0
  87. package/lib/commonjs/helpers/mediaSendRetry.js.map +1 -0
  88. package/lib/commonjs/helpers/mediaWireData.js +62 -0
  89. package/lib/commonjs/helpers/mediaWireData.js.map +1 -0
  90. package/lib/commonjs/helpers/mentionSpans.js +19 -0
  91. package/lib/commonjs/helpers/mentionSpans.js.map +1 -0
  92. package/lib/commonjs/helpers/mimeToExtension.js +45 -0
  93. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  94. package/lib/commonjs/helpers/readReceipts.js +173 -0
  95. package/lib/commonjs/helpers/readReceipts.js.map +1 -0
  96. package/lib/commonjs/helpers/repairFilenameEncoding.js +79 -0
  97. package/lib/commonjs/helpers/repairFilenameEncoding.js.map +1 -0
  98. package/lib/commonjs/helpers/safeJson.js +18 -0
  99. package/lib/commonjs/helpers/safeJson.js.map +1 -0
  100. package/lib/commonjs/helpers/updateMessagesTillLast.js +3 -1
  101. package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
  102. package/lib/commonjs/hooks/useSendMessage.js +384 -193
  103. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  104. package/lib/commonjs/i18n/strings.js +144 -0
  105. package/lib/commonjs/i18n/strings.js.map +1 -1
  106. package/lib/commonjs/main.js.map +1 -1
  107. package/lib/commonjs/networking/api-requests/auth.api.js +62 -3
  108. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  109. package/lib/commonjs/networking/stanzaHandlers.js +100 -3
  110. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  111. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +4 -2
  112. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  113. package/lib/commonjs/networking/xmpp/sendDisplayedMarker.xmpp.js +28 -0
  114. package/lib/commonjs/networking/xmpp/sendDisplayedMarker.xmpp.js.map +1 -0
  115. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +53 -2
  116. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  117. package/lib/commonjs/networking/xmpp/sendReceivedReceipt.xmpp.js +28 -0
  118. package/lib/commonjs/networking/xmpp/sendReceivedReceipt.xmpp.js.map +1 -0
  119. package/lib/commonjs/networking/xmppClient.js +64 -0
  120. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  121. package/lib/commonjs/roomStore/persistence.js +78 -5
  122. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  123. package/lib/commonjs/roomStore/roomHeapSlice.js +4 -0
  124. package/lib/commonjs/roomStore/roomHeapSlice.js.map +1 -1
  125. package/lib/commonjs/roomStore/roomsSlice.js +114 -1
  126. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  127. package/lib/commonjs/types/models/attachment.model.js +2 -0
  128. package/lib/commonjs/types/models/attachment.model.js.map +1 -0
  129. package/lib/commonjs/version.js +1 -1
  130. package/lib/module/assets/icons.js +1 -1
  131. package/lib/module/assets/icons.js.map +1 -1
  132. package/lib/module/components/MainComponents/AlbumGrid.js +146 -0
  133. package/lib/module/components/MainComponents/AlbumGrid.js.map +1 -0
  134. package/lib/module/components/MainComponents/ChatRoom.js +2 -2
  135. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  136. package/lib/module/components/MainComponents/MediaMessage.js +200 -124
  137. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  138. package/lib/module/components/MainComponents/MediaUploadOverlay.js +104 -0
  139. package/lib/module/components/MainComponents/MediaUploadOverlay.js.map +1 -0
  140. package/lib/module/components/MessageBubble/MediaCaption.js +46 -0
  141. package/lib/module/components/MessageBubble/MediaCaption.js.map +1 -0
  142. package/lib/module/components/MessageBubble/Message.js +44 -5
  143. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  144. package/lib/module/components/MessageBubble/MessageInteractions.js +2 -1
  145. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  146. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +75 -0
  147. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  148. package/lib/module/components/RoomComponents/LastMessageItem.js +20 -4
  149. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  150. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +3 -2
  151. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  152. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -2
  153. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  154. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -2
  155. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  156. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -2
  157. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  158. package/lib/module/components/Thread/ThreadWrapper.js +3 -2
  159. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  160. package/lib/module/components/VideoCalls/ActiveCallBar.js +63 -18
  161. package/lib/module/components/VideoCalls/ActiveCallBar.js.map +1 -1
  162. package/lib/module/components/VideoCalls/CallIcons.js +38 -15
  163. package/lib/module/components/VideoCalls/CallIcons.js.map +1 -1
  164. package/lib/module/components/VideoCalls/VideoCallOverlay.js +185 -11
  165. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  166. package/lib/module/components/VideoCalls/VideoCallSession.js +41 -16
  167. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  168. package/lib/module/components/VideoCalls/callSessionController.js +46 -24
  169. package/lib/module/components/VideoCalls/callSessionController.js.map +1 -1
  170. package/lib/module/components/VideoCalls/callUiStore.js +30 -3
  171. package/lib/module/components/VideoCalls/callUiStore.js.map +1 -1
  172. package/lib/module/components/VideoCalls/livekitRuntime.js +9 -1
  173. package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -1
  174. package/lib/module/components/VideoCalls/useCallKeep.js +198 -29
  175. package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
  176. package/lib/module/components/VideoCalls/useOngoingCallNotification.js +84 -0
  177. package/lib/module/components/VideoCalls/useOngoingCallNotification.js.map +1 -0
  178. package/lib/module/components/VideoCalls/usePipTile.js +228 -0
  179. package/lib/module/components/VideoCalls/usePipTile.js.map +1 -0
  180. package/lib/module/components/styled/MediaFilePreview.js +61 -48
  181. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  182. package/lib/module/components/styled/MessageImage.js +16 -6
  183. package/lib/module/components/styled/MessageImage.js.map +1 -1
  184. package/lib/module/components/styled/SendInput.js +99 -68
  185. package/lib/module/components/styled/SendInput.js.map +1 -1
  186. package/lib/module/components/styled/VideoMessage.js +24 -10
  187. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  188. package/lib/module/context/xmppProvider.js +46 -0
  189. package/lib/module/context/xmppProvider.js.map +1 -1
  190. package/lib/module/e2ee/fileEnvelope.js +1 -1
  191. package/lib/module/e2ee/fileEnvelope.js.map +1 -1
  192. package/lib/module/e2ee/sealedBody.js +32 -2
  193. package/lib/module/e2ee/sealedBody.js.map +1 -1
  194. package/lib/module/helpers/albumLayout.js +143 -0
  195. package/lib/module/helpers/albumLayout.js.map +1 -0
  196. package/lib/module/helpers/attachments.js +245 -0
  197. package/lib/module/helpers/attachments.js.map +1 -0
  198. package/lib/module/helpers/caption.js +207 -0
  199. package/lib/module/helpers/caption.js.map +1 -0
  200. package/lib/module/helpers/createMainMessageForThread.js +5 -1
  201. package/lib/module/helpers/createMainMessageForThread.js.map +1 -1
  202. package/lib/module/helpers/createMessageFromXml.js +20 -6
  203. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  204. package/lib/module/helpers/fileKind.js +34 -0
  205. package/lib/module/helpers/fileKind.js.map +1 -0
  206. package/lib/module/helpers/getDataFromXml.js +6 -1
  207. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  208. package/lib/module/helpers/mapWithConcurrency.js +37 -0
  209. package/lib/module/helpers/mapWithConcurrency.js.map +1 -0
  210. package/lib/module/helpers/mediaLimits.js +27 -0
  211. package/lib/module/helpers/mediaLimits.js.map +1 -0
  212. package/lib/module/helpers/mediaSendRetry.js +55 -0
  213. package/lib/module/helpers/mediaSendRetry.js.map +1 -0
  214. package/lib/module/helpers/mediaWireData.js +58 -0
  215. package/lib/module/helpers/mediaWireData.js.map +1 -0
  216. package/lib/module/helpers/mentionSpans.js +14 -0
  217. package/lib/module/helpers/mentionSpans.js.map +1 -0
  218. package/lib/module/helpers/mimeToExtension.js +43 -0
  219. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  220. package/lib/module/helpers/readReceipts.js +160 -0
  221. package/lib/module/helpers/readReceipts.js.map +1 -0
  222. package/lib/module/helpers/repairFilenameEncoding.js +74 -0
  223. package/lib/module/helpers/repairFilenameEncoding.js.map +1 -0
  224. package/lib/module/helpers/safeJson.js +13 -0
  225. package/lib/module/helpers/safeJson.js.map +1 -0
  226. package/lib/module/helpers/updateMessagesTillLast.js +3 -1
  227. package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
  228. package/lib/module/hooks/useSendMessage.js +387 -195
  229. package/lib/module/hooks/useSendMessage.js.map +1 -1
  230. package/lib/module/i18n/strings.js +144 -0
  231. package/lib/module/i18n/strings.js.map +1 -1
  232. package/lib/module/main.js.map +1 -1
  233. package/lib/module/networking/api-requests/auth.api.js +62 -3
  234. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  235. package/lib/module/networking/stanzaHandlers.js +97 -4
  236. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  237. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +5 -3
  238. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  239. package/lib/module/networking/xmpp/sendDisplayedMarker.xmpp.js +25 -0
  240. package/lib/module/networking/xmpp/sendDisplayedMarker.xmpp.js.map +1 -0
  241. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +53 -2
  242. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  243. package/lib/module/networking/xmpp/sendReceivedReceipt.xmpp.js +25 -0
  244. package/lib/module/networking/xmpp/sendReceivedReceipt.xmpp.js.map +1 -0
  245. package/lib/module/networking/xmppClient.js +64 -0
  246. package/lib/module/networking/xmppClient.js.map +1 -1
  247. package/lib/module/roomStore/persistence.js +78 -5
  248. package/lib/module/roomStore/persistence.js.map +1 -1
  249. package/lib/module/roomStore/roomHeapSlice.js +4 -0
  250. package/lib/module/roomStore/roomHeapSlice.js.map +1 -1
  251. package/lib/module/roomStore/roomsSlice.js +109 -0
  252. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  253. package/lib/module/types/models/attachment.model.js +2 -0
  254. package/lib/module/types/models/attachment.model.js.map +1 -0
  255. package/lib/module/version.js +1 -1
  256. package/lib/typescript/assets/icons.d.ts +6 -1
  257. package/lib/typescript/assets/icons.d.ts.map +1 -1
  258. package/lib/typescript/components/MainComponents/AlbumGrid.d.ts +21 -0
  259. package/lib/typescript/components/MainComponents/AlbumGrid.d.ts.map +1 -0
  260. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  261. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  262. package/lib/typescript/components/MainComponents/MediaUploadOverlay.d.ts +17 -0
  263. package/lib/typescript/components/MainComponents/MediaUploadOverlay.d.ts.map +1 -0
  264. package/lib/typescript/components/MessageBubble/MediaCaption.d.ts +12 -0
  265. package/lib/typescript/components/MessageBubble/MediaCaption.d.ts.map +1 -0
  266. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  267. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  268. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  269. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  270. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts +2 -0
  271. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  272. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +2 -0
  273. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  274. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +2 -0
  275. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  276. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +2 -0
  277. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  278. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  279. package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts +9 -3
  280. package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts.map +1 -1
  281. package/lib/typescript/components/VideoCalls/CallIcons.d.ts +9 -0
  282. package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -1
  283. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
  284. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  285. package/lib/typescript/components/VideoCalls/callSessionController.d.ts +7 -0
  286. package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -1
  287. package/lib/typescript/components/VideoCalls/callUiStore.d.ts +13 -0
  288. package/lib/typescript/components/VideoCalls/callUiStore.d.ts.map +1 -1
  289. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +5 -0
  290. package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -1
  291. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +12 -0
  292. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
  293. package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts +10 -0
  294. package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts.map +1 -0
  295. package/lib/typescript/components/VideoCalls/usePipTile.d.ts +46 -0
  296. package/lib/typescript/components/VideoCalls/usePipTile.d.ts.map +1 -0
  297. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  298. package/lib/typescript/components/styled/MessageImage.d.ts +10 -0
  299. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  300. package/lib/typescript/components/styled/SendInput.d.ts +7 -1
  301. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  302. package/lib/typescript/components/styled/VideoMessage.d.ts +7 -0
  303. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  304. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  305. package/lib/typescript/e2ee/fileEnvelope.d.ts +1 -1
  306. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -1
  307. package/lib/typescript/e2ee/sealedBody.d.ts +16 -0
  308. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -1
  309. package/lib/typescript/helpers/albumLayout.d.ts +66 -0
  310. package/lib/typescript/helpers/albumLayout.d.ts.map +1 -0
  311. package/lib/typescript/helpers/attachments.d.ts +55 -0
  312. package/lib/typescript/helpers/attachments.d.ts.map +1 -0
  313. package/lib/typescript/helpers/caption.d.ts +64 -0
  314. package/lib/typescript/helpers/caption.d.ts.map +1 -0
  315. package/lib/typescript/helpers/createMainMessageForThread.d.ts.map +1 -1
  316. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  317. package/lib/typescript/helpers/fileKind.d.ts +20 -0
  318. package/lib/typescript/helpers/fileKind.d.ts.map +1 -0
  319. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  320. package/lib/typescript/helpers/mapWithConcurrency.d.ts +9 -0
  321. package/lib/typescript/helpers/mapWithConcurrency.d.ts.map +1 -0
  322. package/lib/typescript/helpers/mediaLimits.d.ts +13 -0
  323. package/lib/typescript/helpers/mediaLimits.d.ts.map +1 -0
  324. package/lib/typescript/helpers/mediaSendRetry.d.ts +26 -0
  325. package/lib/typescript/helpers/mediaSendRetry.d.ts.map +1 -0
  326. package/lib/typescript/helpers/mediaWireData.d.ts +16 -0
  327. package/lib/typescript/helpers/mediaWireData.d.ts.map +1 -0
  328. package/lib/typescript/helpers/mentionSpans.d.ts +8 -0
  329. package/lib/typescript/helpers/mentionSpans.d.ts.map +1 -0
  330. package/lib/typescript/helpers/mimeToExtension.d.ts +7 -0
  331. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  332. package/lib/typescript/helpers/readReceipts.d.ts +82 -0
  333. package/lib/typescript/helpers/readReceipts.d.ts.map +1 -0
  334. package/lib/typescript/helpers/repairFilenameEncoding.d.ts +12 -0
  335. package/lib/typescript/helpers/repairFilenameEncoding.d.ts.map +1 -0
  336. package/lib/typescript/helpers/safeJson.d.ts +2 -0
  337. package/lib/typescript/helpers/safeJson.d.ts.map +1 -0
  338. package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
  339. package/lib/typescript/hooks/useSendMessage.d.ts +2 -1
  340. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  341. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  342. package/lib/typescript/main.d.ts +1 -1
  343. package/lib/typescript/main.d.ts.map +1 -1
  344. package/lib/typescript/networking/api-requests/auth.api.d.ts +2 -0
  345. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  346. package/lib/typescript/networking/stanzaHandlers.d.ts +7 -3
  347. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  348. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  349. package/lib/typescript/networking/xmpp/sendDisplayedMarker.xmpp.d.ts +3 -0
  350. package/lib/typescript/networking/xmpp/sendDisplayedMarker.xmpp.d.ts.map +1 -0
  351. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts +12 -0
  352. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  353. package/lib/typescript/networking/xmpp/sendReceivedReceipt.xmpp.d.ts +3 -0
  354. package/lib/typescript/networking/xmpp/sendReceivedReceipt.xmpp.d.ts.map +1 -0
  355. package/lib/typescript/networking/xmppClient.d.ts +15 -0
  356. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  357. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  358. package/lib/typescript/roomStore/roomHeapSlice.d.ts +22 -1
  359. package/lib/typescript/roomStore/roomHeapSlice.d.ts.map +1 -1
  360. package/lib/typescript/roomStore/roomsSlice.d.ts +67 -3
  361. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  362. package/lib/typescript/types/models/attachment.model.d.ts +52 -0
  363. package/lib/typescript/types/models/attachment.model.d.ts.map +1 -0
  364. package/lib/typescript/types/models/message.model.d.ts +26 -0
  365. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  366. package/lib/typescript/types/models/modal.model.d.ts +7 -0
  367. package/lib/typescript/types/models/modal.model.d.ts.map +1 -1
  368. package/lib/typescript/types/models/room.model.d.ts +2 -0
  369. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  370. package/lib/typescript/types/types.d.ts +69 -1
  371. package/lib/typescript/types/types.d.ts.map +1 -1
  372. package/lib/typescript/version.d.ts +1 -1
  373. package/package.json +4 -1
  374. package/plugins/notification-service/Info.plist +31 -0
  375. package/plugins/notification-service/NotificationService.swift +82 -0
  376. package/plugins/withNotificationServiceExtension.js +137 -0
  377. package/src/assets/icons.tsx +20 -2
  378. package/src/components/MainComponents/AlbumGrid.tsx +183 -0
  379. package/src/components/MainComponents/ChatRoom.tsx +4 -2
  380. package/src/components/MainComponents/MediaMessage.tsx +246 -130
  381. package/src/components/MainComponents/MediaUploadOverlay.tsx +102 -0
  382. package/src/components/MessageBubble/MediaCaption.tsx +45 -0
  383. package/src/components/MessageBubble/Message.tsx +71 -3
  384. package/src/components/MessageBubble/MessageInteractions.tsx +2 -1
  385. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +64 -0
  386. package/src/components/RoomComponents/LastMessageItem.tsx +15 -4
  387. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +6 -3
  388. package/src/components/RoomComponents/styled/LastMessageFile.tsx +6 -2
  389. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +6 -2
  390. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +6 -2
  391. package/src/components/Thread/ThreadWrapper.tsx +5 -9
  392. package/src/components/VideoCalls/ActiveCallBar.tsx +56 -10
  393. package/src/components/VideoCalls/CallIcons.tsx +36 -12
  394. package/src/components/VideoCalls/VideoCallOverlay.tsx +205 -8
  395. package/src/components/VideoCalls/VideoCallSession.tsx +45 -13
  396. package/src/components/VideoCalls/callSessionController.ts +51 -20
  397. package/src/components/VideoCalls/callUiStore.ts +33 -3
  398. package/src/components/VideoCalls/livekitRuntime.ts +13 -0
  399. package/src/components/VideoCalls/useCallKeep.ts +204 -33
  400. package/src/components/VideoCalls/useOngoingCallNotification.ts +113 -0
  401. package/src/components/VideoCalls/usePipTile.ts +214 -0
  402. package/src/components/styled/MediaFilePreview.tsx +49 -34
  403. package/src/components/styled/MessageImage.tsx +21 -5
  404. package/src/components/styled/SendInput.tsx +101 -87
  405. package/src/components/styled/VideoMessage.tsx +34 -9
  406. package/src/context/xmppProvider.tsx +32 -0
  407. package/src/e2ee/fileEnvelope.ts +1 -1
  408. package/src/e2ee/sealedBody.ts +44 -5
  409. package/src/helpers/albumLayout.ts +207 -0
  410. package/src/helpers/attachments.ts +316 -0
  411. package/src/helpers/caption.ts +283 -0
  412. package/src/helpers/createMainMessageForThread.ts +6 -1
  413. package/src/helpers/createMessageFromXml.ts +21 -5
  414. package/src/helpers/fileKind.ts +38 -0
  415. package/src/helpers/getDataFromXml.ts +5 -1
  416. package/src/helpers/mapWithConcurrency.ts +32 -0
  417. package/src/helpers/mediaLimits.ts +27 -0
  418. package/src/helpers/mediaSendRetry.ts +59 -0
  419. package/src/helpers/mediaWireData.ts +57 -0
  420. package/src/helpers/mentionSpans.ts +17 -0
  421. package/src/helpers/mimeToExtension.ts +51 -0
  422. package/src/helpers/readReceipts.ts +219 -0
  423. package/src/helpers/repairFilenameEncoding.ts +82 -0
  424. package/src/helpers/safeJson.ts +11 -0
  425. package/src/helpers/updateMessagesTillLast.tsx +2 -1
  426. package/src/hooks/useSendMessage.tsx +448 -249
  427. package/src/i18n/strings.ts +144 -0
  428. package/src/main.ts +3 -0
  429. package/src/networking/api-requests/auth.api.ts +60 -3
  430. package/src/networking/stanzaHandlers.ts +91 -2
  431. package/src/networking/xmpp/handleStanzas.xmpp.ts +6 -2
  432. package/src/networking/xmpp/sendDisplayedMarker.xmpp.ts +31 -0
  433. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +60 -3
  434. package/src/networking/xmpp/sendReceivedReceipt.xmpp.ts +31 -0
  435. package/src/networking/xmppClient.ts +48 -0
  436. package/src/roomStore/persistence.ts +94 -3
  437. package/src/roomStore/roomHeapSlice.ts +23 -1
  438. package/src/roomStore/roomsSlice.ts +112 -1
  439. package/src/types/models/attachment.model.ts +51 -0
  440. package/src/types/models/message.model.ts +29 -0
  441. package/src/types/models/modal.model.ts +7 -0
  442. package/src/types/models/room.model.ts +2 -0
  443. package/src/types/types.ts +83 -1
  444. package/src/version.ts +1 -1
  445. package/lib/commonjs/components/VideoCalls/useDraggable.js +0 -59
  446. package/lib/commonjs/components/VideoCalls/useDraggable.js.map +0 -1
  447. package/lib/module/components/VideoCalls/useDraggable.js +0 -55
  448. package/lib/module/components/VideoCalls/useDraggable.js.map +0 -1
  449. package/lib/typescript/components/VideoCalls/useDraggable.d.ts +0 -19
  450. package/lib/typescript/components/VideoCalls/useDraggable.d.ts.map +0 -1
  451. package/src/components/VideoCalls/useDraggable.ts +0 -46
@@ -1 +1 @@
1
- {"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","undefined","rn","require","core","Room","RoomEvent","Track","ConnectionState","VideoPresets","VideoTrack","AudioSession","registerGlobals","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA,IAAIA,MAAyC;AAE7C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAeC,WAAW,CAAC,CAAC,KAAK,IAAI;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAGA,CAAA,KAA6B;EACtD,IAAIF,MAAM,KAAKG,SAAS,EAAE;IACxB,OAAOH,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMI,EAAE,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAC3C;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGD,OAAO,CAAC,gBAAgB,CAAC;IAEtCL,MAAM,GAAG;MACPO,IAAI,EAAED,IAAI,CAACC,IAAI;MACfC,SAAS,EAAEF,IAAI,CAACE,SAAS;MACzBC,KAAK,EAAEH,IAAI,CAACG,KAAK;MACjBC,eAAe,EAAEJ,IAAI,CAACI,eAAe;MACrCC,YAAY,EAAEL,IAAI,CAACK,YAAY;MAC/BC,UAAU,EAAER,EAAE,CAACQ,UAAU;MACzBC,YAAY,EAAET,EAAE,CAACS,YAAY;MAC7BC,eAAe,EAAEV,EAAE,CAACU;IACtB,CAAC;EACH,CAAC,CAAC,MAAM;IACNd,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,IAAIe,iBAAiB,GAAG,KAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAW;EACrE,IAAIF,iBAAiB,EAAE;IAAC;EAAO;EAC/B,IAAI;IACFE,OAAO,CAACH,eAAe,GAAG,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN;EAAA;EAEFC,iBAAiB,GAAG,IAAI;AAC1B,CAAC;;AAED;AACA,OAAO,MAAMG,6BAA6B,GAAGA,CAAA,KAAY;EACvDlB,MAAM,GAAGG,SAAS;EAClBY,iBAAiB,GAAG,KAAK;AAC3B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["cached","isLiveKitAvailable","loadLiveKit","undefined","rn","require","core","webrtc","Room","RoomEvent","Track","ConnectionState","VideoPresets","VideoTrack","AudioSession","registerGlobals","RTCAudioSession","globalsRegistered","ensureLiveKitGlobals","runtime","__resetLiveKitRuntimeForTests"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/livekitRuntime.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA,IAAIA,MAAyC;AAE7C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAeC,WAAW,CAAC,CAAC,KAAK,IAAI;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,WAAW,GAAGA,CAAA,KAA6B;EACtD,IAAIF,MAAM,KAAKG,SAAS,EAAE;IACxB,OAAOH,MAAM;EACf;EAEA,IAAI;IACF;IACA,MAAMI,EAAE,GAAGC,OAAO,CAAC,uBAAuB,CAAC;IAC3C;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAI,GAAGD,OAAO,CAAC,gBAAgB,CAAC;IACtC,IAAIE,MAAW,GAAG,IAAI;IACtB,IAAI;MACF;MACAA,MAAM,GAAGF,OAAO,CAAC,8BAA8B,CAAC;IAClD,CAAC,CAAC,MAAM;MACN;IAAA;IAGFL,MAAM,GAAG;MACPQ,IAAI,EAAEF,IAAI,CAACE,IAAI;MACfC,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBC,KAAK,EAAEJ,IAAI,CAACI,KAAK;MACjBC,eAAe,EAAEL,IAAI,CAACK,eAAe;MACrCC,YAAY,EAAEN,IAAI,CAACM,YAAY;MAC/BC,UAAU,EAAET,EAAE,CAACS,UAAU;MACzBC,YAAY,EAAEV,EAAE,CAACU,YAAY;MAC7BC,eAAe,EAAEX,EAAE,CAACW,eAAe;MACnCC,eAAe,EAAET,MAAM,EAAES,eAAe,IAAI;IAC9C,CAAC;EACH,CAAC,CAAC,MAAM;IACNhB,MAAM,GAAG,IAAI;EACf;EAEA,OAAOA,MAAM;AACf,CAAC;AAED,IAAIiB,iBAAiB,GAAG,KAAK;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAAuB,IAAW;EACrE,IAAIF,iBAAiB,EAAE;IAAC;EAAO;EAC/B,IAAI;IACFE,OAAO,CAACJ,eAAe,GAAG,CAAC;EAC7B,CAAC,CAAC,MAAM;IACN;EAAA;EAEFE,iBAAiB,GAAG,IAAI;AAC1B,CAAC;;AAED;AACA,OAAO,MAAMG,6BAA6B,GAAGA,CAAA,KAAY;EACvDpB,MAAM,GAAGG,SAAS;EAClBc,iBAAiB,GAAG,KAAK;AAC3B,CAAC","ignoreList":[]}
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useMemo, useRef } from 'react';
3
+ import { useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Platform } from 'react-native';
5
5
  import { useDispatch, useSelector } from 'react-redux';
6
6
  import { store } from '../../roomStore';
7
7
  import { acceptIncomingCall, declineIncomingCall } from '../../roomStore/callSlice';
8
8
  import { sendCallStateSignal } from '../../networking/callTokenStanza';
9
+ import { terminateActiveCall } from './callActions';
10
+ import { setCallMicEnabled, useCallSession } from './callSessionController';
11
+ import { loadLiveKit } from './livekitRuntime';
12
+ import { setCallSystemRinging } from './callUiStore';
9
13
 
10
14
  /**
11
15
  * Native incoming-call UI (Android ConnectionService / iOS CallKit) via
@@ -16,6 +20,12 @@ import { sendCallStateSignal } from '../../networking/callTokenStanza';
16
20
  * loaded lazily exactly like the LiveKit packages, so hosts that don't
17
21
  * install it get the plain in-app ring screen and nothing breaks.
18
22
  *
23
+ * On iOS every call, incoming or outgoing, is also reported to CallKit for
24
+ * as long as it lasts. That is what puts it in the Dynamic Island / the
25
+ * green status-bar pill when the app is in the background, with the
26
+ * system's own mute and end buttons, and what keeps the call's audio
27
+ * running in the background.
28
+ *
19
29
  * Platform reality, stated plainly:
20
30
  * - Android: full value. A ConnectionService call shows the system
21
31
  * incoming-call screen over the lock screen.
@@ -74,16 +84,31 @@ const toUuid = seed => {
74
84
  const hex = bytes.map(b => b.toString(16).padStart(2, '0')).join('');
75
85
  return [hex.slice(0, 8), hex.slice(8, 12), '4' + hex.slice(13, 16), (parseInt(hex[16], 16) & 0x3 | 0x8).toString(16) + hex.slice(17, 20), hex.slice(20, 32)].join('-');
76
86
  };
87
+ const trace = (...args) => {
88
+ if (__DEV__) {
89
+ console.log('[calls] CallKit:', ...args);
90
+ }
91
+ };
77
92
  export const useCallKeep = () => {
78
93
  const dispatch = useDispatch();
79
94
  const call = useSelector(state => state.call);
95
+ const session = useCallSession();
80
96
  const callKeep = useMemo(() => loadCallKeep(), []);
97
+ const [ready, setReady] = useState(false);
81
98
  const activeUuidRef = useRef(null);
82
- const readyRef = useRef(false);
99
+ // The CallKit call has been answered (from the system screen or in-app).
100
+ const answeredRef = useRef(false);
101
+ const outgoingReportedRef = useRef('none');
102
+ const isIOS = Platform.OS === 'ios';
83
103
 
84
104
  // One-time native setup.
85
105
  useEffect(() => {
86
106
  if (!callKeep) {
107
+ if (isIOS) {
108
+ // The usual reason for "no Dynamic Island": the JS package is there
109
+ // but the binary was built without the RNCallKeep pod.
110
+ trace('unavailable (react-native-callkeep is not linked in this build)');
111
+ }
87
112
  return;
88
113
  }
89
114
  let cancelled = false;
@@ -92,7 +117,12 @@ export const useCallKeep = () => {
92
117
  await callKeep.setup({
93
118
  ios: {
94
119
  appName: 'Ethora',
95
- supportsVideo: true
120
+ supportsVideo: true,
121
+ maximumCallGroups: '1',
122
+ maximumCallsPerCallGroup: '1',
123
+ // Our calls are not phone calls: keep them out of the Phone
124
+ // app's Recents, whose entries would dial back into nowhere.
125
+ includesCallsInRecents: false
96
126
  },
97
127
  android: {
98
128
  alertTitle: 'Permissions required',
@@ -111,28 +141,35 @@ export const useCallKeep = () => {
111
141
  return;
112
142
  }
113
143
  callKeep.setAvailable?.(true);
114
- readyRef.current = true;
115
- } catch {
144
+ trace('ready');
145
+ setReady(true);
146
+ } catch (error) {
147
+ trace('setup failed', error);
116
148
  // Host didn't grant phone-account permission, or the module isn't
117
149
  // linked. The in-app ring screen still works, so stay quiet.
118
- readyRef.current = false;
150
+ setReady(false);
119
151
  }
120
152
  })();
121
153
  return () => {
122
154
  cancelled = true;
123
155
  };
124
- }, [callKeep]);
156
+ }, [callKeep, isIOS]);
125
157
 
126
- // Bridge native answer/end actions back into Redux.
158
+ // Bridge native actions back into the call.
127
159
  useEffect(() => {
128
160
  if (!callKeep) {
129
161
  return;
130
162
  }
131
163
  const onAnswer = () => {
164
+ answeredRef.current = true;
132
165
  // The user answered from the system screen, which on Android may
133
166
  // mean the app was not even in the foreground.
134
167
  callKeep.backToForeground?.();
135
- if (store.getState().call.direction === 'incoming') {
168
+ // Only from the ring: CallKit also reports the answer we make on its
169
+ // behalf after an in-app accept, and re-accepting then would drop an
170
+ // in-progress call back to 'connecting'.
171
+ const current = store.getState().call;
172
+ if (current.direction === 'incoming' && current.phase === 'ringing-incoming') {
136
173
  dispatch(acceptIncomingCall());
137
174
  }
138
175
  };
@@ -144,54 +181,190 @@ export const useCallKeep = () => {
144
181
  if (snapshot.direction === 'incoming' && snapshot.phase === 'ringing-incoming') {
145
182
  sendCallStateSignal('declined');
146
183
  dispatch(declineIncomingCall());
184
+ return;
185
+ }
186
+ // Ended from the Dynamic Island, the lock screen or a headset.
187
+ if (snapshot.phase === 'error') {
188
+ return;
189
+ }
190
+ terminateActiveCall(snapshot.phase === 'requesting' ? 'cancelled' : 'ended');
191
+ };
192
+
193
+ // The system mute button (Dynamic Island, lock screen, CarPlay).
194
+ const onMuted = ({
195
+ muted
196
+ }) => {
197
+ void setCallMicEnabled(!muted);
198
+ };
199
+
200
+ // Another call (e.g. a phone call) put ours on hold: stop sending audio.
201
+ const onHold = ({
202
+ hold
203
+ }) => {
204
+ if (hold) {
205
+ void setCallMicEnabled(false);
206
+ }
207
+ };
208
+
209
+ // CallKit owns the iOS audio session: WebRTC may only start its audio
210
+ // unit once CallKit has activated the session.
211
+ const onAudioActivated = () => {
212
+ try {
213
+ loadLiveKit()?.RTCAudioSession?.audioSessionDidActivate?.();
214
+ } catch {
215
+ // Older webrtc builds manage the session on their own.
216
+ }
217
+ };
218
+ const onAudioDeactivated = () => {
219
+ try {
220
+ loadLiveKit()?.RTCAudioSession?.audioSessionDidDeactivate?.();
221
+ } catch {
222
+ // noop
147
223
  }
148
224
  };
149
225
  callKeep.addEventListener('answerCall', onAnswer);
150
226
  callKeep.addEventListener('endCall', onEnd);
227
+ callKeep.addEventListener('didPerformSetMutedCallAction', onMuted);
228
+ callKeep.addEventListener('didToggleHoldCallAction', onHold);
229
+ callKeep.addEventListener('didActivateAudioSession', onAudioActivated);
230
+ // CallKit rejected or dropped our calls (e.g. a build without the voip
231
+ // background mode): there is nothing to end any more.
232
+ const onReset = () => {
233
+ trace('provider reset');
234
+ };
235
+ callKeep.addEventListener('didResetProvider', onReset);
236
+ // The system's verdict on displayIncomingCall ("Unentitled" means the
237
+ // app lacks the voip background mode).
238
+ const onDisplayed = ({
239
+ error,
240
+ errorCode
241
+ }) => {
242
+ trace('incoming call shown', error ? `failed: ${errorCode || ''} ${error}` : 'ok');
243
+ // CallKit refused it (Do Not Disturb, unentitled...): bring the
244
+ // in-app ring card back so the call can still be answered.
245
+ if (error) {
246
+ setCallSystemRinging(false);
247
+ }
248
+ };
249
+ callKeep.addEventListener('didDisplayIncomingCall', onDisplayed);
250
+ callKeep.addEventListener('didDeactivateAudioSession', onAudioDeactivated);
151
251
  return () => {
152
252
  callKeep.removeEventListener('answerCall');
153
253
  callKeep.removeEventListener('endCall');
254
+ callKeep.removeEventListener('didPerformSetMutedCallAction');
255
+ callKeep.removeEventListener('didToggleHoldCallAction');
256
+ callKeep.removeEventListener('didActivateAudioSession');
257
+ callKeep.removeEventListener('didDeactivateAudioSession');
258
+ callKeep.removeEventListener('didResetProvider');
259
+ callKeep.removeEventListener('didDisplayIncomingCall');
154
260
  };
155
261
  }, [callKeep, dispatch]);
262
+ const displayName = call.roomName || 'Ethora';
263
+ const isRinging = call.direction === 'incoming' && call.phase === 'ringing-incoming';
264
+ const isLive = call.phase === 'connecting' || call.phase === 'in-call';
265
+ const isOutgoing = call.direction === 'outgoing';
266
+ const peerConnected = session.anchorAt !== null;
156
267
 
157
- // Show / dismiss the native screen as the call state changes.
268
+ // Report the call to the system as its state changes.
158
269
  useEffect(() => {
159
- if (!callKeep || !readyRef.current) {
270
+ if (!callKeep || !ready) {
160
271
  return;
161
272
  }
162
- const isRinging = call.direction === 'incoming' && call.phase === 'ringing-incoming';
163
- if (isRinging && !activeUuidRef.current) {
273
+ const release = () => {
274
+ if (!activeUuidRef.current) {
275
+ return;
276
+ }
277
+ try {
278
+ callKeep.endCall(activeUuidRef.current);
279
+ } catch {
280
+ // Screen already gone.
281
+ }
282
+ activeUuidRef.current = null;
283
+ answeredRef.current = false;
284
+ outgoingReportedRef.current = 'none';
285
+ };
286
+ if (call.phase === 'idle' || call.phase === 'error') {
287
+ release();
288
+ return;
289
+ }
290
+ if (isRinging) {
291
+ if (activeUuidRef.current) {
292
+ return;
293
+ }
164
294
  const uuid = toUuid(call.callId || call.roomJid || String(Date.now()));
165
295
  activeUuidRef.current = uuid;
296
+ answeredRef.current = false;
297
+ // iOS: the system banner is the ring UI (Telegram-style); the in-app
298
+ // card would only cover the screen under it.
299
+ if (isIOS) {
300
+ setCallSystemRinging(true);
301
+ }
166
302
  try {
167
- callKeep.displayIncomingCall(uuid, call.peerXmppUsername || call.roomName || 'Ethora', call.roomName || undefined, 'generic', call.kind === 'video');
303
+ callKeep.displayIncomingCall(uuid, displayName, displayName, 'generic', call.kind === 'video');
168
304
  } catch {
169
305
  activeUuidRef.current = null;
306
+ setCallSystemRinging(false);
170
307
  }
171
308
  return;
172
309
  }
173
310
 
174
- // Any exit from ringing (answered in-app, declined, peer cancelled)
175
- // must tear the system screen down or it hangs around ringing.
176
- if (!isRinging && activeUuidRef.current && call.phase !== 'connecting' && call.phase !== 'in-call') {
311
+ // iOS: an outgoing call is a CallKit call from the first ring, so it
312
+ // shows in the Dynamic Island even before the peer answers.
313
+ if (isIOS && isOutgoing && !activeUuidRef.current && callKeep.startCall) {
314
+ // Unique per call: CallKit refuses a UUID it has seen before, and
315
+ // the callId only arrives with the token.
316
+ const uuid = toUuid(`${call.roomJid || ''}|${call.startedAt || Date.now()}`);
317
+ activeUuidRef.current = uuid;
318
+ outgoingReportedRef.current = 'none';
319
+ trace('startCall', uuid);
177
320
  try {
178
- callKeep.endCall(activeUuidRef.current);
321
+ callKeep.startCall(uuid, displayName, displayName, 'generic', call.kind === 'video');
179
322
  } catch {
180
- // Screen already gone.
323
+ activeUuidRef.current = null;
181
324
  }
182
- activeUuidRef.current = null;
325
+ return;
326
+ }
327
+ const uuid = activeUuidRef.current;
328
+ if (!uuid) {
329
+ return;
330
+ }
331
+ if (isIOS && isOutgoing) {
332
+ if (peerConnected && outgoingReportedRef.current !== 'connected') {
333
+ outgoingReportedRef.current = 'connected';
334
+ callKeep.reportConnectedOutgoingCallWithUUID?.(uuid);
335
+ } else if (isLive && !peerConnected && outgoingReportedRef.current === 'none') {
336
+ outgoingReportedRef.current = 'connecting';
337
+ callKeep.reportConnectingOutgoingCallWithUUID?.(uuid);
338
+ }
339
+ return;
183
340
  }
184
- if (call.phase === 'idle' && activeUuidRef.current) {
341
+
342
+ // Incoming, accepted with the in-app button: tell CallKit, or its
343
+ // screen keeps ringing on top of the call.
344
+ if (isIOS && isLive && !answeredRef.current) {
345
+ answeredRef.current = true;
185
346
  try {
186
- callKeep.endCall(activeUuidRef.current);
347
+ callKeep.answerIncomingCall?.(uuid);
187
348
  } catch {
188
349
  // noop
189
350
  }
190
- activeUuidRef.current = null;
191
351
  }
192
- }, [callKeep, call.direction, call.phase, call.callId, call.roomJid, call.roomName, call.peerXmppUsername, call.kind]);
352
+ }, [callKeep, ready, isIOS, isRinging, isLive, isOutgoing, peerConnected, displayName, call.phase, call.callId, call.roomJid, call.startedAt, call.kind]);
193
353
 
194
- // Nothing to clean up on unmount beyond the active screen: this hook
354
+ // Keep the system mute button in step with ours.
355
+ useEffect(() => {
356
+ const uuid = activeUuidRef.current;
357
+ if (!callKeep || !ready || !isIOS || !uuid || !isLive) {
358
+ return;
359
+ }
360
+ try {
361
+ callKeep.setMutedCall?.(uuid, !session.micOn);
362
+ } catch {
363
+ // noop
364
+ }
365
+ }, [callKeep, ready, isIOS, isLive, session.micOn]);
366
+
367
+ // Nothing to clean up on unmount beyond the active call: this hook
195
368
  // lives for the lifetime of the provider.
196
369
  useEffect(() => () => {
197
370
  if (callKeep && activeUuidRef.current) {
@@ -202,9 +375,5 @@ export const useCallKeep = () => {
202
375
  }
203
376
  }
204
377
  }, [callKeep]);
205
-
206
- // iOS-only note kept as a runtime no-op so the import isn't unused when
207
- // the platform check is tree-shaken in release builds.
208
- void Platform.OS;
209
378
  };
210
379
  //# sourceMappingURL=useCallKeep.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","Platform","useDispatch","useSelector","store","acceptIncomingCall","declineIncomingCall","sendCallStateSignal","cachedCallKeep","loadCallKeep","undefined","NativeModules","require","RNCallKeep","mod","default","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","useCallKeep","dispatch","call","state","callKeep","activeUuidRef","readyRef","cancelled","setup","ios","appName","supportsVideo","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","current","onAnswer","backToForeground","getState","direction","onEnd","snapshot","phase","addEventListener","removeEventListener","isRinging","uuid","callId","roomJid","String","Date","now","displayIncomingCall","peerXmppUsername","roomName","kind","endCall","OS"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","useState","Platform","useDispatch","useSelector","store","acceptIncomingCall","declineIncomingCall","sendCallStateSignal","terminateActiveCall","setCallMicEnabled","useCallSession","loadLiveKit","setCallSystemRinging","cachedCallKeep","loadCallKeep","undefined","NativeModules","require","RNCallKeep","mod","default","toUuid","seed","hash","bytes","i","ch","charCodeAt","Math","max","length","imul","push","hex","map","b","toString","padStart","join","slice","parseInt","trace","args","__DEV__","console","log","useCallKeep","dispatch","call","state","session","callKeep","ready","setReady","activeUuidRef","answeredRef","outgoingReportedRef","isIOS","OS","cancelled","setup","ios","appName","supportsVideo","maximumCallGroups","maximumCallsPerCallGroup","includesCallsInRecents","android","alertTitle","alertDescription","cancelButton","okButton","additionalPermissions","foregroundService","channelId","channelName","notificationTitle","setAvailable","error","onAnswer","current","backToForeground","getState","direction","phase","onEnd","snapshot","onMuted","muted","onHold","hold","onAudioActivated","RTCAudioSession","audioSessionDidActivate","onAudioDeactivated","audioSessionDidDeactivate","addEventListener","onReset","onDisplayed","errorCode","removeEventListener","displayName","roomName","isRinging","isLive","isOutgoing","peerConnected","anchorAt","release","endCall","uuid","callId","roomJid","String","Date","now","displayIncomingCall","kind","startCall","startedAt","reportConnectedOutgoingCallWithUUID","reportConnectingOutgoingCallWithUUID","answerIncomingCall","setMutedCall","micOn"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useCallKeep.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { useSelector } from 'react-redux';
5
+ import { useT } from '../../i18n/useT';
6
+ import { terminateActiveCall } from './callActions';
7
+ import { toggleCallCamera, toggleCallMic, useCallSession } from './callSessionController';
8
+ import { setCallMinimized } from './callUiStore';
9
+
10
+ /**
11
+ * Drives the host's ongoing-call notification (`videoCalls.
12
+ * ongoingCallNotification`, an Android foreground-service notification in
13
+ * the Ethora app): shown while a call is connecting or connected, updated
14
+ * when the mic, camera or timer anchor change, and its buttons act on the
15
+ * call like the in-app ones.
16
+ */
17
+ export const useOngoingCallNotification = adapter => {
18
+ const t = useT();
19
+ const call = useSelector(state => state.call);
20
+ const session = useCallSession();
21
+ const shownRef = useRef(false);
22
+ const live = !!call.token && (call.phase === 'connecting' || call.phase === 'in-call');
23
+ useEffect(() => {
24
+ if (!adapter) {
25
+ return;
26
+ }
27
+ return adapter.addActionListener(action => {
28
+ switch (action) {
29
+ case 'hangUp':
30
+ terminateActiveCall('ended');
31
+ break;
32
+ case 'toggleMic':
33
+ void toggleCallMic();
34
+ break;
35
+ case 'toggleCamera':
36
+ void toggleCallCamera();
37
+ break;
38
+ case 'open':
39
+ // Back from the notification: show the call, not the strip.
40
+ setCallMinimized(false);
41
+ break;
42
+ }
43
+ });
44
+ }, [adapter]);
45
+ const isVideo = call.kind === 'video';
46
+ const connectedAt = session.anchorAt;
47
+ const text = connectedAt !== null ? isVideo ? t('call.notification.ongoingVideo') : t('call.notification.ongoing') : !session.connected ? t('call.status.connecting') : t('call.status.waitingForPeer');
48
+ useEffect(() => {
49
+ if (!adapter) {
50
+ return;
51
+ }
52
+ if (!live) {
53
+ if (shownRef.current) {
54
+ shownRef.current = false;
55
+ adapter.hide();
56
+ }
57
+ return;
58
+ }
59
+ shownRef.current = true;
60
+ adapter.show({
61
+ callId: call.callId || call.roomJid || 'call',
62
+ title: call.roomName || t('call.unknownCaller'),
63
+ text,
64
+ kind: call.kind,
65
+ connectedAt,
66
+ micOn: session.micOn,
67
+ cameraOn: isVideo && session.cameraOn,
68
+ labels: {
69
+ hangUp: t('call.action.hangUp'),
70
+ mute: t('call.notification.mute'),
71
+ unmute: t('call.notification.unmute'),
72
+ cameraOn: t('call.notification.cameraOn'),
73
+ cameraOff: t('call.notification.cameraOff')
74
+ }
75
+ });
76
+ }, [adapter, live, t, text, connectedAt, isVideo, call.callId, call.roomJid, call.roomName, call.kind, session.micOn, session.cameraOn]);
77
+ useEffect(() => () => {
78
+ if (adapter && shownRef.current) {
79
+ shownRef.current = false;
80
+ adapter.hide();
81
+ }
82
+ }, [adapter]);
83
+ };
84
+ //# sourceMappingURL=useOngoingCallNotification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useSelector","useT","terminateActiveCall","toggleCallCamera","toggleCallMic","useCallSession","setCallMinimized","useOngoingCallNotification","adapter","t","call","state","session","shownRef","live","token","phase","addActionListener","action","isVideo","kind","connectedAt","anchorAt","text","connected","current","hide","show","callId","roomJid","title","roomName","micOn","cameraOn","labels","hangUp","mute","unmute","cameraOff"],"sourceRoot":"../../../../src","sources":["components/VideoCalls/useOngoingCallNotification.ts"],"mappings":"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","ignoreList":[]}