@ethora/chat-component-rn 26.10.1 → 26.10.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 (145) hide show
  1. package/lib/commonjs/components/MainComponents/ChatHeader.js +11 -10
  2. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  3. package/lib/commonjs/components/MainComponents/MessageContainer.js +10 -2
  4. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/RoomList.js +8 -18
  6. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  7. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +17 -14
  8. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  9. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +131 -17
  10. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  11. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +6 -1
  12. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  13. package/lib/commonjs/components/VideoCalls/CallButtons.js +3 -1
  14. package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -1
  15. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +123 -111
  16. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  17. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +207 -346
  18. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  19. package/lib/commonjs/components/VideoCalls/callActions.js +61 -0
  20. package/lib/commonjs/components/VideoCalls/callActions.js.map +1 -0
  21. package/lib/commonjs/components/VideoCalls/callSessionController.js +431 -0
  22. package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -0
  23. package/lib/commonjs/components/VideoCalls/useDraggable.js +59 -0
  24. package/lib/commonjs/components/VideoCalls/useDraggable.js.map +1 -0
  25. package/lib/commonjs/helpers/createRoomFromApi.js +4 -0
  26. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  27. package/lib/commonjs/helpers/incomingCallFromPush.js +1 -1
  28. package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -1
  29. package/lib/commonjs/helpers/roomUserCount.js +7 -1
  30. package/lib/commonjs/helpers/roomUserCount.js.map +1 -1
  31. package/lib/commonjs/helpers/uniqueMembers.js +36 -0
  32. package/lib/commonjs/helpers/uniqueMembers.js.map +1 -0
  33. package/lib/commonjs/hooks/useLeaveRoom.js +52 -0
  34. package/lib/commonjs/hooks/useLeaveRoom.js.map +1 -0
  35. package/lib/commonjs/hooks/useLogout.js +15 -10
  36. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  37. package/lib/commonjs/i18n/strings.js +18 -0
  38. package/lib/commonjs/i18n/strings.js.map +1 -1
  39. package/lib/commonjs/networking/api-requests/rooms.api.js +36 -1
  40. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  41. package/lib/commonjs/networking/callTokenStanza.js +47 -3
  42. package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
  43. package/lib/commonjs/networking/xmppClient.js +9 -2
  44. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  45. package/lib/commonjs/version.js +1 -1
  46. package/lib/module/components/MainComponents/ChatHeader.js +13 -12
  47. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  48. package/lib/module/components/MainComponents/MessageContainer.js +10 -2
  49. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  50. package/lib/module/components/MainComponents/RoomList.js +8 -18
  51. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  52. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +18 -15
  53. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  54. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +132 -18
  55. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  56. package/lib/module/components/RoomComponents/ChatRoomItem.js +6 -1
  57. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  58. package/lib/module/components/VideoCalls/CallButtons.js +3 -1
  59. package/lib/module/components/VideoCalls/CallButtons.js.map +1 -1
  60. package/lib/module/components/VideoCalls/VideoCallOverlay.js +125 -113
  61. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  62. package/lib/module/components/VideoCalls/VideoCallSession.js +208 -348
  63. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  64. package/lib/module/components/VideoCalls/callActions.js +55 -0
  65. package/lib/module/components/VideoCalls/callActions.js.map +1 -0
  66. package/lib/module/components/VideoCalls/callSessionController.js +420 -0
  67. package/lib/module/components/VideoCalls/callSessionController.js.map +1 -0
  68. package/lib/module/components/VideoCalls/useDraggable.js +55 -0
  69. package/lib/module/components/VideoCalls/useDraggable.js.map +1 -0
  70. package/lib/module/helpers/createRoomFromApi.js +4 -0
  71. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  72. package/lib/module/helpers/incomingCallFromPush.js +1 -1
  73. package/lib/module/helpers/incomingCallFromPush.js.map +1 -1
  74. package/lib/module/helpers/roomUserCount.js +7 -1
  75. package/lib/module/helpers/roomUserCount.js.map +1 -1
  76. package/lib/module/helpers/uniqueMembers.js +31 -0
  77. package/lib/module/helpers/uniqueMembers.js.map +1 -0
  78. package/lib/module/hooks/useLeaveRoom.js +48 -0
  79. package/lib/module/hooks/useLeaveRoom.js.map +1 -0
  80. package/lib/module/hooks/useLogout.js +15 -10
  81. package/lib/module/hooks/useLogout.js.map +1 -1
  82. package/lib/module/i18n/strings.js +18 -0
  83. package/lib/module/i18n/strings.js.map +1 -1
  84. package/lib/module/networking/api-requests/rooms.api.js +35 -1
  85. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  86. package/lib/module/networking/callTokenStanza.js +47 -3
  87. package/lib/module/networking/callTokenStanza.js.map +1 -1
  88. package/lib/module/networking/xmppClient.js +8 -1
  89. package/lib/module/networking/xmppClient.js.map +1 -1
  90. package/lib/module/version.js +1 -1
  91. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  92. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  93. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  94. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  95. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  96. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  97. package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -1
  98. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +0 -6
  99. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
  100. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +9 -20
  101. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  102. package/lib/typescript/components/VideoCalls/callActions.d.ts +15 -0
  103. package/lib/typescript/components/VideoCalls/callActions.d.ts.map +1 -0
  104. package/lib/typescript/components/VideoCalls/callSessionController.d.ts +61 -0
  105. package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -0
  106. package/lib/typescript/components/VideoCalls/useDraggable.d.ts +19 -0
  107. package/lib/typescript/components/VideoCalls/useDraggable.d.ts.map +1 -0
  108. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  109. package/lib/typescript/helpers/roomUserCount.d.ts +1 -0
  110. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -1
  111. package/lib/typescript/helpers/uniqueMembers.d.ts +11 -0
  112. package/lib/typescript/helpers/uniqueMembers.d.ts.map +1 -0
  113. package/lib/typescript/hooks/useLeaveRoom.d.ts +9 -0
  114. package/lib/typescript/hooks/useLeaveRoom.d.ts.map +1 -0
  115. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  116. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  117. package/lib/typescript/networking/api-requests/rooms.api.d.ts +8 -0
  118. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  119. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
  120. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  121. package/lib/typescript/version.d.ts +1 -1
  122. package/package.json +1 -1
  123. package/src/components/MainComponents/ChatHeader.tsx +10 -8
  124. package/src/components/MainComponents/MessageContainer.tsx +14 -1
  125. package/src/components/MainComponents/RoomList.tsx +8 -14
  126. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +16 -13
  127. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +167 -36
  128. package/src/components/RoomComponents/ChatRoomItem.tsx +8 -1
  129. package/src/components/VideoCalls/CallButtons.tsx +5 -1
  130. package/src/components/VideoCalls/VideoCallOverlay.tsx +156 -163
  131. package/src/components/VideoCalls/VideoCallSession.tsx +207 -378
  132. package/src/components/VideoCalls/callActions.ts +63 -0
  133. package/src/components/VideoCalls/callSessionController.ts +421 -0
  134. package/src/components/VideoCalls/useDraggable.ts +46 -0
  135. package/src/helpers/createRoomFromApi.tsx +2 -0
  136. package/src/helpers/incomingCallFromPush.ts +2 -2
  137. package/src/helpers/roomUserCount.ts +6 -2
  138. package/src/helpers/uniqueMembers.ts +26 -0
  139. package/src/hooks/useLeaveRoom.ts +42 -0
  140. package/src/hooks/useLogout.tsx +15 -10
  141. package/src/i18n/strings.ts +18 -0
  142. package/src/networking/api-requests/rooms.api.ts +28 -1
  143. package/src/networking/callTokenStanza.ts +46 -6
  144. package/src/networking/xmppClient.ts +10 -1
  145. package/src/version.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ import { uniqueMembers } from './uniqueMembers';
3
4
  /**
4
5
  * Maps the flattened `lastMessage` doc `GET /v1/chats/my` embeds per room
5
6
  * into the shape a live message already takes. Backends differ in whether
@@ -68,6 +69,9 @@ export const createRoomFromApi = (room, service = 'conference.dev.xmpp.ethoradev
68
69
  const lastMessage = mapApiLastMessage(room?.lastMessage, jid);
69
70
  const roomData = {
70
71
  ...room,
72
+ ...(Array.isArray(room?.members) ? {
73
+ members: uniqueMembers(room.members)
74
+ } : {}),
71
75
  id: room?._id || '',
72
76
  jid,
73
77
  name: room?.title || '',
@@ -1 +1 @@
1
- {"version":3,"names":["mapApiLastMessage","apiLastMessage","roomJid","body","String","trim","undefined","senderName","senderFirstName","senderLastName","id","messageId","stanzaId","xmppId","date","createdAt","isDeleted","user","fromUserId","from","name","readApiUnreadCount","item","raw","unreadCount","Number","isFinite","Math","max","floor","readApiUsersCnt","fallback","membersLen","Array","isArray","members","length","total","usersCnt","participants","seedTimestamp","seed","ms","Date","getTime","NaN","createRoomFromApi","room","service","usersArrayLength","jid","apiUnreadCount","lastMessage","roomData","_id","title","messages","isLoading","roomBg","icon","picture","unreadMessages","apiUnreadSeededAt","now","lastViewedTimestamp","lastMessageTimestamp","error","console","log"],"sourceRoot":"../../../src","sources":["helpers/createRoomFromApi.tsx"],"mappings":";;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,iBAAiB,GAAGA,CAC/BC,cAAsC,EACtCC,OAAe,KACa;EAC5B,MAAMC,IAAI,GAAGC,MAAM,CAACH,cAAc,EAAEE,IAAI,IAAI,EAAE,CAAC,CAACE,IAAI,CAAC,CAAC;EACtD,IAAI,CAACJ,cAAc,IAAI,CAACE,IAAI,EAAE;IAAC,OAAOG,SAAS;EAAC;EAChD,MAAMC,UAAU,GAAG,GAAGN,cAAc,CAACO,eAAe,IAAI,EAAE,IACxDP,cAAc,CAACQ,cAAc,IAAI,EAAE,EACnC,CAACJ,IAAI,CAAC,CAAC;EACT,OAAO;IACLK,EAAE,EAAET,cAAc,CAACU,SAAS,IAAIV,cAAc,CAACW,QAAQ,IAAI,EAAE;IAC7DC,MAAM,EAAEZ,cAAc,CAACW,QAAQ;IAC/BV,OAAO;IACPC,IAAI;IACJW,IAAI,EAAEb,cAAc,CAACc,SAAS;IAC9BC,SAAS,EAAE,KAAK;IAChBC,IAAI,EAAE;MACJP,EAAE,EAAET,cAAc,CAACiB,UAAU,IAAIjB,cAAc,CAACkB,IAAI,IAAI,EAAE;MAC1DC,IAAI,EAAEb;IACR;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMc,kBAAkB,GAAIC,IAElC,IAAyB;EACxB,MAAMC,GAAG,GAAGD,IAAI,EAAEE,WAAW;EAC7B,OAAO,OAAOD,GAAG,KAAK,QAAQ,IAAIE,MAAM,CAACC,QAAQ,CAACH,GAAG,CAAC,GAClDI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACN,GAAG,CAAC,CAAC,GAC5BjB,SAAS;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMwB,eAAe,GAAGA,CAC7BR,IAAwE,EACxES,QAAgB,GAAG,CAAC,KACT;EACX,MAAMC,UAAU,GAAGC,KAAK,CAACC,OAAO,CAACZ,IAAI,EAAEa,OAAO,CAAC,GAAGb,IAAI,CAACa,OAAO,CAACC,MAAM,GAAG,CAAC;EACzE,MAAMC,KAAK,GAAGZ,MAAM,CAACH,IAAI,EAAEgB,QAAQ,IAAIhB,IAAI,EAAEiB,YAAY,CAAC;EAC1D,IAAId,MAAM,CAACC,QAAQ,CAACW,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,EAAE;IACvC,OAAOV,IAAI,CAACC,GAAG,CAACS,KAAK,EAAEL,UAAU,CAAC;EACpC;EACA,OAAOA,UAAU,IAAID,QAAQ;AAC/B,CAAC;AAED,MAAMS,aAAa,GAAIC,IAA6B,IAAyB;EAC3E,IAAI,CAACA,IAAI,EAAE;IAAC,OAAOnC,SAAS;EAAC;EAC7B,MAAMI,EAAE,GAAGe,MAAM,CAACgB,IAAI,CAAC/B,EAAE,CAAC;EAC1B,IAAIe,MAAM,CAACC,QAAQ,CAAChB,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAE;IAAC,OAAOA,EAAE;EAAC;EAC9C,MAAMgC,EAAE,GAAGD,IAAI,CAAC3B,IAAI,GAAG,IAAI6B,IAAI,CAACF,IAAI,CAAC3B,IAAI,CAAC,CAAC8B,OAAO,CAAC,CAAC,GAAGC,GAAG;EAC1D,OAAOpB,MAAM,CAACC,QAAQ,CAACgB,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,GAAGA,EAAE,GAAG,IAAI,GAAGpC,SAAS;AAC9D,CAAC;AAED,OAAO,MAAMwC,iBAAiB,GAAGA,CAC/BC,IAAa,EACbC,OAAe,GAAG,mCAAmC,EACrDC,gBAAwB,GAAG,CAAC,KACX;EACjB,IAAI;IACF,MAAMC,GAAG,GAAG,GAAGH,IAAI,EAAE3B,IAAI,IAAI4B,OAAO,EAAE,IAAI,EAAE;IAC5C,MAAMG,cAAc,GAAG9B,kBAAkB,CAAC0B,IAAI,CAAC;IAC/C,MAAMK,WAAW,GAAGpD,iBAAiB,CAAC+C,IAAI,EAAEK,WAAW,EAAEF,GAAG,CAAC;IAC7D,MAAMG,QAAe,GAAG;MACtB,GAAGN,IAAI;MACPrC,EAAE,EAAGqC,IAAI,EAAUO,GAAG,IAAI,EAAE;MAC5BJ,GAAG;MACH9B,IAAI,EAAE2B,IAAI,EAAEQ,KAAK,IAAI,EAAE;MACvBA,KAAK,EAAER,IAAI,EAAEQ,KAAK,IAAI,EAAE;MACxBjB,QAAQ,EAAER,eAAe,CAACiB,IAAI,EAAEE,gBAAgB,GAAG,CAAC,CAAC;MACrDO,QAAQ,EAAE,EAAE;MACZC,SAAS,EAAE,KAAK;MAChBC,MAAM,EAAE,IAAI;MACZC,IAAI,EAAEZ,IAAI,EAAEa,OAAO,KAAK,MAAM,GAAGb,IAAI,EAAEa,OAAO,GAAG,IAAI;MACrDC,cAAc,EAAEV,cAAc,IAAI,CAAC;MACnCA,cAAc;MACdW,iBAAiB,EAAEX,cAAc,KAAK7C,SAAS,GAAGA,SAAS,GAAGqC,IAAI,CAACoB,GAAG,CAAC,CAAC;MACxEC,mBAAmB,EAAE,CAAC;MACtBZ,WAAW;MACXa,oBAAoB,EAAEzB,aAAa,CAACY,WAAW;IACjD,CAAU;IACV,OAAOC,QAAQ;EACjB,CAAC,CAAC,OAAOa,KAAK,EAAE;IACdC,OAAO,CAACC,GAAG,CAACF,KAAK,CAAC;IAClB,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["uniqueMembers","mapApiLastMessage","apiLastMessage","roomJid","body","String","trim","undefined","senderName","senderFirstName","senderLastName","id","messageId","stanzaId","xmppId","date","createdAt","isDeleted","user","fromUserId","from","name","readApiUnreadCount","item","raw","unreadCount","Number","isFinite","Math","max","floor","readApiUsersCnt","fallback","membersLen","Array","isArray","members","length","total","usersCnt","participants","seedTimestamp","seed","ms","Date","getTime","NaN","createRoomFromApi","room","service","usersArrayLength","jid","apiUnreadCount","lastMessage","roomData","_id","title","messages","isLoading","roomBg","icon","picture","unreadMessages","apiUnreadSeededAt","now","lastViewedTimestamp","lastMessageTimestamp","error","console","log"],"sourceRoot":"../../../src","sources":["helpers/createRoomFromApi.tsx"],"mappings":"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","ignoreList":[]}
@@ -58,7 +58,7 @@ export const handleCallPush = data => {
58
58
  }
59
59
  store.dispatch(setIncomingCallToken({
60
60
  roomJid,
61
- roomName: parsed.callerName || resolved?.name || null,
61
+ roomName: parsed.callerName || resolved?.title || resolved?.name || null,
62
62
  roomBareName: parsed.roomBareName,
63
63
  token: parsed.token,
64
64
  kind: parsed.kind,
@@ -1 +1 @@
1
- {"version":3,"names":["store","setIncomingCallToken","isCallPush","parseCallPush","handleCallPush","data","parsed","state","getState","chatSettingStore","config","videoCalls","enabled","current","call","phase","sameCall","callId","roomBareName","token","rooms","resolved","Object","values","find","room","jid","split","roomRef","roomJid","includes","dispatch","roomName","callerName","name","kind","peerXmppUsername","callerXmppUsername"],"sourceRoot":"../../../src","sources":["helpers/incomingCallFromPush.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,UAAU,EAAEC,aAAa,QAAQ,YAAY;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBC,IAA4C,IAChC;EACZ,IAAI,CAACH,UAAU,CAACG,IAAI,CAAC,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGH,aAAa,CAACE,IAAI,CAAC;EAClC,MAAME,KAAK,GAAGP,KAAK,CAACQ,QAAQ,CAAC,CAAC;;EAE9B;EACA;EACA,IAAID,KAAK,CAACE,gBAAgB,CAACC,MAAM,EAAEC,UAAU,EAAEC,OAAO,KAAK,IAAI,EAAE;IAC/D,OAAO,IAAI;EACb;;EAEA;EACA;EACA;EACA,MAAMC,OAAO,GAAGN,KAAK,CAACO,IAAI;EAC1B,IAAID,OAAO,CAACE,KAAK,KAAK,MAAM,EAAE;IAC5B,MAAMC,QAAQ,GACX,CAAC,CAACV,MAAM,CAACW,MAAM,IAAIX,MAAM,CAACW,MAAM,KAAKJ,OAAO,CAACI,MAAM,IACnD,CAAC,CAACX,MAAM,CAACY,YAAY,IAAIZ,MAAM,CAACY,YAAY,KAAKL,OAAO,CAACK,YAAa;IACzE,IAAIF,QAAQ,IAAIH,OAAO,CAACE,KAAK,KAAK,SAAS,EAAE;MAC3C,OAAO,IAAI;IACb;EACF;;EAEA;EACA;EACA;EACA;EACA,IAAI,CAACT,MAAM,CAACa,KAAK,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMC,KAAK,GAAGb,KAAK,CAACa,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC;EACrC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,IAAI,CACvCC,IAAS,IACR,CAACA,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKrB,MAAM,CAACY,YAAY,IACvDO,IAAI,EAAEC,GAAG,KAAKpB,MAAM,CAACsB,OACzB,CAAgD;EAEhD,MAAMC,OAAO,GACXR,QAAQ,EAAEK,GAAG,KACZpB,MAAM,CAACsB,OAAO,IAAItB,MAAM,CAACsB,OAAO,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAGxB,MAAM,CAACsB,OAAO,GAAG,EAAE,CAAC;EACxE,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA7B,KAAK,CAAC+B,QAAQ,CACZ9B,oBAAoB,CAAC;IACnB4B,OAAO;IACPG,QAAQ,EAAE1B,MAAM,CAAC2B,UAAU,IAAIZ,QAAQ,EAAEa,IAAI,IAAI,IAAI;IACrDhB,YAAY,EAAEZ,MAAM,CAACY,YAAY;IACjCC,KAAK,EAAEb,MAAM,CAACa,KAAK;IACnBgB,IAAI,EAAE7B,MAAM,CAAC6B,IAAI;IACjBlB,MAAM,EAAEX,MAAM,CAACW,MAAM;IACrBmB,gBAAgB,EAAE9B,MAAM,CAAC+B;EAC3B,CAAC,CACH,CAAC;EAED,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["store","setIncomingCallToken","isCallPush","parseCallPush","handleCallPush","data","parsed","state","getState","chatSettingStore","config","videoCalls","enabled","current","call","phase","sameCall","callId","roomBareName","token","rooms","resolved","Object","values","find","room","jid","split","roomRef","roomJid","includes","dispatch","roomName","callerName","title","name","kind","peerXmppUsername","callerXmppUsername"],"sourceRoot":"../../../src","sources":["helpers/incomingCallFromPush.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,UAAU,EAAEC,aAAa,QAAQ,YAAY;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBC,IAA4C,IAChC;EACZ,IAAI,CAACH,UAAU,CAACG,IAAI,CAAC,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAMC,MAAM,GAAGH,aAAa,CAACE,IAAI,CAAC;EAClC,MAAME,KAAK,GAAGP,KAAK,CAACQ,QAAQ,CAAC,CAAC;;EAE9B;EACA;EACA,IAAID,KAAK,CAACE,gBAAgB,CAACC,MAAM,EAAEC,UAAU,EAAEC,OAAO,KAAK,IAAI,EAAE;IAC/D,OAAO,IAAI;EACb;;EAEA;EACA;EACA;EACA,MAAMC,OAAO,GAAGN,KAAK,CAACO,IAAI;EAC1B,IAAID,OAAO,CAACE,KAAK,KAAK,MAAM,EAAE;IAC5B,MAAMC,QAAQ,GACX,CAAC,CAACV,MAAM,CAACW,MAAM,IAAIX,MAAM,CAACW,MAAM,KAAKJ,OAAO,CAACI,MAAM,IACnD,CAAC,CAACX,MAAM,CAACY,YAAY,IAAIZ,MAAM,CAACY,YAAY,KAAKL,OAAO,CAACK,YAAa;IACzE,IAAIF,QAAQ,IAAIH,OAAO,CAACE,KAAK,KAAK,SAAS,EAAE;MAC3C,OAAO,IAAI;IACb;EACF;;EAEA;EACA;EACA;EACA;EACA,IAAI,CAACT,MAAM,CAACa,KAAK,EAAE;IACjB,OAAO,IAAI;EACb;;EAEA;EACA;EACA,MAAMC,KAAK,GAAGb,KAAK,CAACa,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC;EACrC,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC,CAACI,IAAI,CACvCC,IAAS,IACR,CAACA,IAAI,EAAEC,GAAG,IAAI,EAAE,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKrB,MAAM,CAACY,YAAY,IACvDO,IAAI,EAAEC,GAAG,KAAKpB,MAAM,CAACsB,OACzB,CAAgE;EAEhE,MAAMC,OAAO,GACXR,QAAQ,EAAEK,GAAG,KACZpB,MAAM,CAACsB,OAAO,IAAItB,MAAM,CAACsB,OAAO,CAACE,QAAQ,CAAC,GAAG,CAAC,GAAGxB,MAAM,CAACsB,OAAO,GAAG,EAAE,CAAC;EACxE,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA7B,KAAK,CAAC+B,QAAQ,CACZ9B,oBAAoB,CAAC;IACnB4B,OAAO;IACPG,QAAQ,EAAE1B,MAAM,CAAC2B,UAAU,IAAIZ,QAAQ,EAAEa,KAAK,IAAIb,QAAQ,EAAEc,IAAI,IAAI,IAAI;IACxEjB,YAAY,EAAEZ,MAAM,CAACY,YAAY;IACjCC,KAAK,EAAEb,MAAM,CAACa,KAAK;IACnBiB,IAAI,EAAE9B,MAAM,CAAC8B,IAAI;IACjBnB,MAAM,EAAEX,MAAM,CAACW,MAAM;IACrBoB,gBAAgB,EAAE/B,MAAM,CAACgC;EAC3B,CAAC,CACH,CAAC;EAED,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
@@ -8,11 +8,17 @@
8
8
  export const getRoomUserCount = room => {
9
9
  const members = Array.isArray(room?.members) ? room.members.length : 0;
10
10
  const cnt = typeof room?.usersCnt === 'number' && Number.isFinite(room.usersCnt) ? room.usersCnt : 0;
11
- return Math.max(cnt, members);
11
+ const total = Math.max(cnt, members);
12
+ // A private chat is two people by definition; the server's usersCnt has
13
+ // been seen to drift above that (3 for a 1:1 room).
14
+ return room?.type === 'private' ? Math.min(total, 2) : total;
12
15
  };
13
16
 
14
17
  /** True when the room is known to have more users than members loaded. */
15
18
  export const isRoomMembersTruncated = room => {
19
+ if (room?.type === 'private') {
20
+ return false;
21
+ }
16
22
  const members = Array.isArray(room?.members) ? room.members.length : 0;
17
23
  const cnt = typeof room?.usersCnt === 'number' && Number.isFinite(room.usersCnt) ? room.usersCnt : 0;
18
24
  return cnt > members;
@@ -1 +1 @@
1
- {"version":3,"names":["getRoomUserCount","room","members","Array","isArray","length","cnt","usersCnt","Number","isFinite","Math","max","isRoomMembersTruncated","adjustUsersCnt","delta","nextMembersLength","current"],"sourceRoot":"../../../src","sources":["helpers/roomUserCount.ts"],"mappings":";;AAQA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAAgB,GAAIC,IAAiB,IAAa;EAC7D,MAAMC,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACH,IAAI,EAAEC,OAAO,CAAC,GAAGD,IAAI,CAACC,OAAO,CAACG,MAAM,GAAG,CAAC;EACtE,MAAMC,GAAG,GACP,OAAOL,IAAI,EAAEM,QAAQ,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACR,IAAI,CAACM,QAAQ,CAAC,GAChEN,IAAI,CAACM,QAAQ,GACb,CAAC;EACP,OAAOG,IAAI,CAACC,GAAG,CAACL,GAAG,EAAEJ,OAAO,CAAC;AAC/B,CAAC;;AAED;AACA,OAAO,MAAMU,sBAAsB,GAAIX,IAAiB,IAAc;EACpE,MAAMC,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACH,IAAI,EAAEC,OAAO,CAAC,GAAGD,IAAI,CAACC,OAAO,CAACG,MAAM,GAAG,CAAC;EACtE,MAAMC,GAAG,GACP,OAAOL,IAAI,EAAEM,QAAQ,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACR,IAAI,CAACM,QAAQ,CAAC,GAChEN,IAAI,CAACM,QAAQ,GACb,CAAC;EACP,OAAOD,GAAG,GAAGJ,OAAO;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAGA,CAC5BZ,IAAiB,EACjBa,KAAa,EACbC,iBAAyB,KACd;EACX,MAAMC,OAAO,GAAGhB,gBAAgB,CAACC,IAAI,CAAC;EACtC,OAAOS,IAAI,CAACC,GAAG,CAACI,iBAAiB,EAAEC,OAAO,GAAGF,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getRoomUserCount","room","members","Array","isArray","length","cnt","usersCnt","Number","isFinite","total","Math","max","type","min","isRoomMembersTruncated","adjustUsersCnt","delta","nextMembersLength","current"],"sourceRoot":"../../../src","sources":["helpers/roomUserCount.ts"],"mappings":";;AAQA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,gBAAgB,GAAIC,IAAiB,IAAa;EAC7D,MAAMC,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACH,IAAI,EAAEC,OAAO,CAAC,GAAGD,IAAI,CAACC,OAAO,CAACG,MAAM,GAAG,CAAC;EACtE,MAAMC,GAAG,GACP,OAAOL,IAAI,EAAEM,QAAQ,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACR,IAAI,CAACM,QAAQ,CAAC,GAChEN,IAAI,CAACM,QAAQ,GACb,CAAC;EACP,MAAMG,KAAK,GAAGC,IAAI,CAACC,GAAG,CAACN,GAAG,EAAEJ,OAAO,CAAC;EACpC;EACA;EACA,OAAQD,IAAI,EAAyBY,IAAI,KAAK,SAAS,GAAGF,IAAI,CAACG,GAAG,CAACJ,KAAK,EAAE,CAAC,CAAC,GAAGA,KAAK;AACtF,CAAC;;AAED;AACA,OAAO,MAAMK,sBAAsB,GAAId,IAAiB,IAAc;EACpE,IAAKA,IAAI,EAAyBY,IAAI,KAAK,SAAS,EAAE;IAAC,OAAO,KAAK;EAAC;EACpE,MAAMX,OAAO,GAAGC,KAAK,CAACC,OAAO,CAACH,IAAI,EAAEC,OAAO,CAAC,GAAGD,IAAI,CAACC,OAAO,CAACG,MAAM,GAAG,CAAC;EACtE,MAAMC,GAAG,GACP,OAAOL,IAAI,EAAEM,QAAQ,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACR,IAAI,CAACM,QAAQ,CAAC,GAChEN,IAAI,CAACM,QAAQ,GACb,CAAC;EACP,OAAOD,GAAG,GAAGJ,OAAO;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMc,cAAc,GAAGA,CAC5Bf,IAAiB,EACjBgB,KAAa,EACbC,iBAAyB,KACd;EACX,MAAMC,OAAO,GAAGnB,gBAAgB,CAACC,IAAI,CAAC;EACtC,OAAOU,IAAI,CAACC,GAAG,CAACM,iBAAiB,EAAEC,OAAO,GAAGF,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Drop repeated entries from a room's member list, keeping the first.
5
+ *
6
+ * The same person could appear twice in a 1:1 chat ("Members: 3", four
7
+ * rows): the list came back from the server with repeats after the private
8
+ * chat was requested again for an existing room. Members are keyed by
9
+ * whatever identity the entry carries: xmppUsername, then _id, then the
10
+ * JID's localpart.
11
+ */
12
+ export const uniqueMembers = members => {
13
+ if (!Array.isArray(members)) {
14
+ return [];
15
+ }
16
+ const seen = new Set();
17
+ const out = [];
18
+ for (const member of members) {
19
+ const m = member;
20
+ const key = String(m?.xmppUsername || m?._id || String(m?.jid || '').split('@')[0] || '').trim();
21
+ if (key) {
22
+ if (seen.has(key)) {
23
+ continue;
24
+ }
25
+ seen.add(key);
26
+ }
27
+ out.push(member);
28
+ }
29
+ return out;
30
+ };
31
+ //# sourceMappingURL=uniqueMembers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["uniqueMembers","members","Array","isArray","seen","Set","out","member","m","key","String","xmppUsername","_id","jid","split","trim","has","add","push"],"sourceRoot":"../../../src","sources":["helpers/uniqueMembers.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,GAAQC,OAA+B,IAAU;EACzE,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,EAAE;IAAC,OAAO,EAAE;EAAC;EACxC,MAAMG,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC9B,MAAMC,GAAQ,GAAG,EAAE;EACnB,KAAK,MAAMC,MAAM,IAAIN,OAAO,EAAE;IAC5B,MAAMO,CAAC,GAAGD,MAAa;IACvB,MAAME,GAAG,GAAGC,MAAM,CAChBF,CAAC,EAAEG,YAAY,IAAIH,CAAC,EAAEI,GAAG,IAAIF,MAAM,CAACF,CAAC,EAAEK,GAAG,IAAI,EAAE,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EACrE,CAAC,CAACC,IAAI,CAAC,CAAC;IACR,IAAIN,GAAG,EAAE;MACP,IAAIL,IAAI,CAACY,GAAG,CAACP,GAAG,CAAC,EAAE;QAAC;MAAS;MAC7BL,IAAI,CAACa,GAAG,CAACR,GAAG,CAAC;IACf;IACAH,GAAG,CAACY,IAAI,CAACX,MAAM,CAAC;EAClB;EACA,OAAOD,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ import { useDispatch } from 'react-redux';
5
+ import { deleteRoom } from '../roomStore/roomsSlice';
6
+ import { leaveRoom } from '../networking/api-requests/rooms.api';
7
+ import { useXmppClient } from '../context/xmppProvider';
8
+
9
+ /** Rooms with a leave request in flight: a second tap waits for the first. */
10
+ const inFlight = new Set();
11
+
12
+ /**
13
+ * Leave a chat, shared by the room-list swipe, the chat header and the chat
14
+ * profile. The server goes first: if it refuses, the chat stays where it is
15
+ * (dropping it locally would only have it come back on the next /chats/my).
16
+ * Then the unavailable presence to the MUC and the room out of the store.
17
+ * Resolves false on failure, so the caller can say so in its own way.
18
+ */
19
+ export const useLeaveRoom = () => {
20
+ const dispatch = useDispatch();
21
+ const {
22
+ client
23
+ } = useXmppClient();
24
+ return useCallback(async jid => {
25
+ if (!jid || inFlight.has(jid)) {
26
+ return true;
27
+ }
28
+ inFlight.add(jid);
29
+ try {
30
+ await leaveRoom(jid.split('@')[0]);
31
+ } catch (error) {
32
+ console.warn('[ethora-rn] leave failed', error);
33
+ return false;
34
+ } finally {
35
+ inFlight.delete(jid);
36
+ }
37
+ try {
38
+ client?.leaveTheRoomStanza?.(jid);
39
+ } catch (error) {
40
+ console.error('Failed to leave the room:', error);
41
+ }
42
+ dispatch(deleteRoom({
43
+ jid
44
+ }));
45
+ return true;
46
+ }, [client, dispatch]);
47
+ };
48
+ //# sourceMappingURL=useLeaveRoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useDispatch","deleteRoom","leaveRoom","useXmppClient","inFlight","Set","useLeaveRoom","dispatch","client","jid","has","add","split","error","console","warn","delete","leaveTheRoomStanza"],"sourceRoot":"../../../src","sources":["hooks/useLeaveRoom.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,SAAS,QAAQ,sCAAsC;AAChE,SAASC,aAAa,QAAQ,yBAAyB;;AAEvD;AACA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAS,CAAC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAChC,MAAMC,QAAQ,GAAGP,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEQ;EAAO,CAAC,GAAGL,aAAa,CAAC,CAAC;EAClC,OAAOJ,WAAW,CAChB,MAAOU,GAAW,IAAuB;IACvC,IAAI,CAACA,GAAG,IAAIL,QAAQ,CAACM,GAAG,CAACD,GAAG,CAAC,EAAE;MAAC,OAAO,IAAI;IAAC;IAC5CL,QAAQ,CAACO,GAAG,CAACF,GAAG,CAAC;IACjB,IAAI;MACF,MAAMP,SAAS,CAACO,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAAC,0BAA0B,EAAEF,KAAK,CAAC;MAC/C,OAAO,KAAK;IACd,CAAC,SAAS;MACRT,QAAQ,CAACY,MAAM,CAACP,GAAG,CAAC;IACtB;IACA,IAAI;MACFD,MAAM,EAAES,kBAAkB,GAAGR,GAAG,CAAC;IACnC,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACnD;IACAN,QAAQ,CAACN,UAAU,CAAC;MAAEQ;IAAI,CAAC,CAAC,CAAC;IAC7B,OAAO,IAAI;EACb,CAAC,EACD,CAACD,MAAM,EAAED,QAAQ,CACnB,CAAC;AACH,CAAC","ignoreList":[]}
@@ -50,7 +50,18 @@ const logoutService = {
50
50
  * AFTER all the disk work has actually landed.
51
51
  */
52
52
  performLogout: async () => {
53
- // 0. Flush lastViewedTimestamp to the server's private store BEFORE
53
+ // 0. Push. Release the device-token registration on the backend
54
+ // FIRST, while the access token is still valid (the token itself
55
+ // is kept so the next login re-registers it). It runs alongside
56
+ // the private-store flush below instead of after it: the flush
57
+ // can take up to 2s, and a host with a logout time budget could
58
+ // cut us off before the release went out, leaving the device
59
+ // receiving pushes for the logged-out user.
60
+ const pushRelease = releasePushRegistration().catch(e => {
61
+ console.warn('logoutService: push release failed', e);
62
+ });
63
+
64
+ // 0a. Flush lastViewedTimestamp to the server's private store BEFORE
54
65
  // we close XMPP. Only rooms with no outstanding unread (plus the
55
66
  // visible room) get their entries updated — rooms with unread
56
67
  // keep their old marker so the next login still surfaces those
@@ -86,15 +97,9 @@ const logoutService = {
86
97
  /* non-fatal */
87
98
  }
88
99
 
89
- // 2. Push. Release the device-token registration on the backend
90
- // while the access token is still valid (the token itself is kept
91
- // so the next login re-registers it), then clear the local MucSub
92
- // room cache.
93
- try {
94
- await releasePushRegistration();
95
- } catch (e) {
96
- console.warn('logoutService: push release failed', e);
97
- }
100
+ // 2. Push. Wait for the release started in step 0, then clear the
101
+ // local MucSub room cache.
102
+ await pushRelease;
98
103
  try {
99
104
  await pushSubscriptionService.reset();
100
105
  } catch (e) {
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","e","console","warn","emit","reset","clearOpenedFiles","require","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AACzC,SAASC,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,YAAY,MAAM,2CAA2C;AACpE,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,WAAW,QAAQ,OAAO;AACnC,SAASC,SAAS,QAAQ,4BAA4B;AACtD,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,mBAAmB,QAAQ,sCAAsC;AAC1E,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,kBAAkB,QAAQ,mCAAmC;AACtE,SAASC,SAAS,QAAQ,SAAS;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,CACzB,iCAAiC,CAAE;AAAA,CACpC;AAED,MAAMC,aAAa,GAAG;EACpB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,aAAa,EAAE,MAAAA,CAAA,KAA2B;IACxC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAMC,KAAK,GAAGf,KAAK,CAACgB,QAAQ,CAAC,CAAC;MAC9B,MAAMC,MAAM,GAAIF,KAAK,CAACG,gBAAgB,EAAUD,MAAM;MACtD,MAAME,KAAK,GAAGJ,KAAK,CAACI,KAAK,EAAEA,KAAK;MAChC,MAAMC,cAAc,GAAGL,KAAK,CAACI,KAAK,EAAEC,cAAc,IAAI,IAAI;MAC1D;MACA;MACA;MACA;MACA;MACA,MAAMC,UAAU,GAAGD,cAAc,GAC7BV,kBAAkB,CAChBS,KAAK,GAAGC,cAAc,CAAC,EACvBL,KAAK,CAACO,aAAa,EACnBP,KAAK,CAACI,KAAK,EAAEI,cAAc,GAAGH,cAAc,CAAC,IAAI,IACnD,CAAC,GACDI,SAAS;MACb,IAAIP,MAAM,EAAEQ,mCAAmC,EAAE;QAC/C,MAAMC,OAAO,CAACC,IAAI,CAAC,CACjBV,MAAM,CAACQ,mCAAmC,CAACN,KAAK,EAAE;UAChDC,cAAc;UACdQ,aAAa,EAAEP,UAAU;UACzBQ,cAAc,EAAE;QAClB,CAAC,CAAC,EACF,IAAIH,OAAO,CAAEI,GAAG,IAAKC,UAAU,CAACD,GAAG,EAAE,IAAI,CAAC,CAAC,CAC5C,CAAC;MACJ;IACF,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,2CAA2C,EAAEF,CAAC,CAAC;IAC9D;;IAEA;IACA,IAAI;MACFlC,kBAAkB,CAACqC,IAAI,CAAC,0BAA0B,CAAC;IACrD,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA;IACA;IACA;IACA,IAAI;MACF,MAAM7B,uBAAuB,CAAC,CAAC;IACjC,CAAC,CAAC,OAAO0B,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,oCAAoC,EAAEF,CAAC,CAAC;IACvD;IACA,IAAI;MACF,MAAM3B,uBAAuB,CAAC+B,KAAK,CAAC,CAAC;IACvC,CAAC,CAAC,OAAOJ,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,kCAAkC,EAAEF,CAAC,CAAC;IACrD;IAEArB,SAAS,CAAC,CAAC;IACX,IAAI;MACF,MAAM;QAAE0B;MAAiB,CAAC,GACxBC,OAAO,CAAC,qBAAqB,CAAyC;MACxED,gBAAgB,CAAC,CAAC;IACpB,CAAC,CAAC,MAAM,CACR;;IAEA;IACA;IACA,IAAI;MACF9B,mBAAmB,CAAC,CAAC;IACvB,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA;IACA;IACA;IACA,IAAI;MACFP,KAAK,CAACuC,QAAQ,CAACrC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;MAClCF,KAAK,CAACuC,QAAQ,CAACnC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;MAC7BJ,KAAK,CAACuC,QAAQ,CAACtC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,OAAO+B,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,sCAAsC,EAAEF,CAAC,CAAC;IACzD;;IAEA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAMxB,mBAAmB,CAAC,CAAC;IAC7B,CAAC,CAAC,MAAM;MACN;IAAA;;IAGF;IACA,IAAI;MACF,MAAMT,YAAY,CAACyC,WAAW,CAAC5B,kBAAkB,CAAC;IACpD,CAAC,CAAC,OAAOoB,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,uCAAuC,EAAEF,CAAC,CAAC;IAC1D;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI;MACF,MAAMvB,iBAAiB,CAAC,CAAC,CAACgC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,OAAOT,CAAC,EAAE;MACVC,OAAO,CAACC,IAAI,CAAC,iDAAiD,EAAEF,CAAC,CAAC;IACpE;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,SAAS,GAAGA,CAAA,KAA6B;EACpD;EACA;EACA;EACA7C,WAAW,CAAC,CAAC;EAEb,OAAOM,WAAW,CAAC,YAAY;IAC7B,IAAI;MACF,MAAMU,aAAa,CAACC,aAAa,CAAC,CAAC;IACrC,CAAC,CAAC,OAAO6B,GAAG,EAAE;MACZV,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAES,GAAG,CAAC;IACtD;EACF,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAED,SAAS9B,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","releasePushRegistration","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","stopOmemo","LIBRARY_STRAY_KEYS","logoutService","performLogout","pushRelease","catch","e","console","warn","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","emit","reset","clearOpenedFiles","require","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
@@ -128,6 +128,8 @@ const en = {
128
128
  'call.error.deviceInUse': 'Your camera or microphone is already in use by another app.',
129
129
  'call.error.deviceGeneric': 'Could not access your camera or microphone.',
130
130
  'call.error.noAnswerTimeout': 'No answer, the call timed out',
131
+ 'call.peerMuted': '{name} is muted',
132
+ 'call.selfMuted': 'Your microphone is muted',
131
133
  'action.send': 'Send',
132
134
  'action.cancel': 'Cancel',
133
135
  'action.save': 'Save',
@@ -138,6 +140,7 @@ const en = {
138
140
  'action.mute': 'Mute',
139
141
  'action.unmute': 'Unmute',
140
142
  'toast.muteFailed': 'Could not update notifications for this chat',
143
+ 'toast.leaveFailed': 'Could not leave this chat',
141
144
  'action.create': 'Create',
142
145
  'action.submit': 'Submit',
143
146
  'action.translate': 'Translate',
@@ -504,6 +507,8 @@ const fr = {
504
507
  'call.error.deviceInUse': 'Votre caméra ou microphone est déjà utilisé par une autre application.',
505
508
  'call.error.deviceGeneric': 'Impossible d\'accéder à votre caméra ou microphone.',
506
509
  'call.error.noAnswerTimeout': 'Pas de réponse, l\'appel a expiré',
510
+ 'call.peerMuted': '{name} a coupé son micro',
511
+ 'call.selfMuted': 'Votre micro est coupé',
507
512
  'action.send': 'Envoyer',
508
513
  'action.cancel': 'Annuler',
509
514
  'action.save': 'Enregistrer',
@@ -514,6 +519,7 @@ const fr = {
514
519
  'action.mute': 'Muet',
515
520
  'action.unmute': 'Réactiver',
516
521
  'toast.muteFailed': 'Impossible de modifier les notifications de ce chat',
522
+ 'toast.leaveFailed': 'Impossible de quitter ce chat',
517
523
  'action.create': 'Créer',
518
524
  'action.submit': 'Soumettre',
519
525
  'action.translate': 'Traduire',
@@ -880,6 +886,8 @@ const es = {
880
886
  'call.error.deviceInUse': 'Tu cámara o micrófono ya está siendo usado por otra aplicación.',
881
887
  'call.error.deviceGeneric': 'No se pudo acceder a tu cámara o micrófono.',
882
888
  'call.error.noAnswerTimeout': 'Sin respuesta, la llamada expiró',
889
+ 'call.peerMuted': '{name} tiene el micrófono silenciado',
890
+ 'call.selfMuted': 'Tu micrófono está silenciado',
883
891
  'action.send': 'Enviar',
884
892
  'action.cancel': 'Cancelar',
885
893
  'action.save': 'Guardar',
@@ -890,6 +898,7 @@ const es = {
890
898
  'action.mute': 'Silenciar',
891
899
  'action.unmute': 'Activar',
892
900
  'toast.muteFailed': 'No se pudieron cambiar las notificaciones de este chat',
901
+ 'toast.leaveFailed': 'No se pudo salir de este chat',
893
902
  'action.create': 'Crear',
894
903
  'action.submit': 'Enviar',
895
904
  'action.translate': 'Traducir',
@@ -1256,6 +1265,8 @@ const pt = {
1256
1265
  'call.error.deviceInUse': 'A sua câmara ou microfone já está a ser utilizado por outra aplicação.',
1257
1266
  'call.error.deviceGeneric': 'Não foi possível aceder à câmara ou microfone.',
1258
1267
  'call.error.noAnswerTimeout': 'Sem resposta, a chamada expirou',
1268
+ 'call.peerMuted': '{name} está com o microfone desativado',
1269
+ 'call.selfMuted': 'Seu microfone está desativado',
1259
1270
  'action.send': 'Enviar',
1260
1271
  'action.cancel': 'Cancelar',
1261
1272
  'action.save': 'Guardar',
@@ -1266,6 +1277,7 @@ const pt = {
1266
1277
  'action.mute': 'Silenciar',
1267
1278
  'action.unmute': 'Ativar som',
1268
1279
  'toast.muteFailed': 'Could not update notifications for this chat',
1280
+ 'toast.leaveFailed': 'Não foi possível sair deste chat',
1269
1281
  'action.create': 'Criar',
1270
1282
  'action.submit': 'Enviar',
1271
1283
  'action.translate': 'Traduzir',
@@ -1632,6 +1644,8 @@ const ht = {
1632
1644
  'call.error.deviceInUse': 'Kamera oswa mikwofòn ou deja ap itilize pa yon lòt app.',
1633
1645
  'call.error.deviceGeneric': 'Nou pa t kapab jwenn aksè nan kamera oswa mikwofòn ou.',
1634
1646
  'call.error.noAnswerTimeout': 'Pa gen repons, apèl la fini',
1647
+ 'call.peerMuted': '{name} koupe mikwo li',
1648
+ 'call.selfMuted': 'Mikwo ou koupe',
1635
1649
  'action.send': 'Voye',
1636
1650
  'action.cancel': 'Anile',
1637
1651
  'action.save': 'Anrejistre',
@@ -1642,6 +1656,7 @@ const ht = {
1642
1656
  'action.mute': 'Mete an silans',
1643
1657
  'action.unmute': 'Retire silans',
1644
1658
  'toast.muteFailed': 'Could not update notifications for this chat',
1659
+ 'toast.leaveFailed': 'Pa t kapab kite chat sa a',
1645
1660
  'action.create': 'Kreye',
1646
1661
  'action.submit': 'Soumèt',
1647
1662
  'action.translate': 'Tradui',
@@ -2008,6 +2023,8 @@ const zh = {
2008
2023
  'call.error.deviceInUse': '您的摄像头或麦克风正被其他应用占用。',
2009
2024
  'call.error.deviceGeneric': '无法访问您的摄像头或麦克风。',
2010
2025
  'call.error.noAnswerTimeout': '无人接听,通话已超时',
2026
+ 'call.peerMuted': '{name} 已静音',
2027
+ 'call.selfMuted': '你的麦克风已静音',
2011
2028
  'action.send': '发送',
2012
2029
  'action.cancel': '取消',
2013
2030
  'action.save': '保存',
@@ -2018,6 +2035,7 @@ const zh = {
2018
2035
  'action.mute': '静音',
2019
2036
  'action.unmute': '取消静音',
2020
2037
  'toast.muteFailed': 'Could not update notifications for this chat',
2038
+ 'toast.leaveFailed': '无法退出此聊天',
2021
2039
  'action.create': '创建',
2022
2040
  'action.submit': '提交',
2023
2041
  'action.translate': '翻译',