@ethora/chat-component-rn 26.10.8 → 26.10.10

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 (184) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/lib/commonjs/components/MainComponents/AlbumGrid.js +6 -2
  4. package/lib/commonjs/components/MainComponents/AlbumGrid.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/ChatHeader.js +16 -11
  6. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/MediaMessage.js +13 -0
  8. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/RoomList.js +7 -16
  10. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  11. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +3 -3
  12. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  13. package/lib/commonjs/components/MessageBubble/Message.js +27 -1
  14. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  15. package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js +159 -0
  16. package/lib/commonjs/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
  17. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +203 -134
  18. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  19. package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js +180 -0
  20. package/lib/commonjs/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
  21. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -162
  22. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  23. package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js +824 -0
  24. package/lib/commonjs/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
  25. package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js +179 -0
  26. package/lib/commonjs/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
  27. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +22 -5
  28. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
  29. package/lib/commonjs/components/VideoCalls/useCallKeep.js +1 -3
  30. package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
  31. package/lib/commonjs/components/styled/MessageImage.js +4 -1
  32. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  33. package/lib/commonjs/components/styled/VideoMessage.js +5 -1
  34. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  35. package/lib/commonjs/context/MediaSourceContext.js +18 -0
  36. package/lib/commonjs/context/MediaSourceContext.js.map +1 -0
  37. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +3 -1
  38. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  39. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +2 -0
  40. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  41. package/lib/commonjs/helpers/publicChatsEntry.js +8 -6
  42. package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -1
  43. package/lib/commonjs/helpers/roomMedia.js +118 -0
  44. package/lib/commonjs/helpers/roomMedia.js.map +1 -0
  45. package/lib/commonjs/i18n/strings.js +36 -0
  46. package/lib/commonjs/i18n/strings.js.map +1 -1
  47. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -13
  48. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  49. package/lib/commonjs/networking/callTokenStanza.js +13 -1
  50. package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
  51. package/lib/commonjs/push/sealedPushTask.js +20 -1
  52. package/lib/commonjs/push/sealedPushTask.js.map +1 -1
  53. package/lib/commonjs/version.js +1 -1
  54. package/lib/commonjs/version.js.map +1 -1
  55. package/lib/module/components/MainComponents/AlbumGrid.js +6 -2
  56. package/lib/module/components/MainComponents/AlbumGrid.js.map +1 -1
  57. package/lib/module/components/MainComponents/ChatHeader.js +18 -13
  58. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  59. package/lib/module/components/MainComponents/MediaMessage.js +13 -0
  60. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  61. package/lib/module/components/MainComponents/RoomList.js +7 -16
  62. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  63. package/lib/module/components/Menu/HeaderRoomListMenu.js +3 -3
  64. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  65. package/lib/module/components/MessageBubble/Message.js +27 -1
  66. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  67. package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js +154 -0
  68. package/lib/module/components/Modals/ChatProfileModal/ChatMediaGrid.js.map +1 -0
  69. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +204 -136
  70. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  71. package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js +175 -0
  72. package/lib/module/components/Modals/ChatProfileModal/LeaveChatModal.js.map +1 -0
  73. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +100 -163
  74. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  75. package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js +819 -0
  76. package/lib/module/components/Modals/FilePreviewModal/MediaViewer.js.map +1 -0
  77. package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js +172 -0
  78. package/lib/module/components/Modals/FilePreviewModal/useSaveFile.js.map +1 -0
  79. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +20 -4
  80. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -1
  81. package/lib/module/components/VideoCalls/useCallKeep.js +2 -4
  82. package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
  83. package/lib/module/components/styled/MessageImage.js +4 -1
  84. package/lib/module/components/styled/MessageImage.js.map +1 -1
  85. package/lib/module/components/styled/VideoMessage.js +5 -1
  86. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  87. package/lib/module/context/MediaSourceContext.js +13 -0
  88. package/lib/module/context/MediaSourceContext.js.map +1 -0
  89. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +2 -1
  90. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  91. package/lib/module/helpers/constants/MODAL_TYPES.js +2 -0
  92. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  93. package/lib/module/helpers/publicChatsEntry.js +8 -6
  94. package/lib/module/helpers/publicChatsEntry.js.map +1 -1
  95. package/lib/module/helpers/roomMedia.js +112 -0
  96. package/lib/module/helpers/roomMedia.js.map +1 -0
  97. package/lib/module/i18n/strings.js +36 -0
  98. package/lib/module/i18n/strings.js.map +1 -1
  99. package/lib/module/networking/api-requests/rooms.api.js +9 -13
  100. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  101. package/lib/module/networking/callTokenStanza.js +13 -1
  102. package/lib/module/networking/callTokenStanza.js.map +1 -1
  103. package/lib/module/push/sealedPushTask.js +20 -1
  104. package/lib/module/push/sealedPushTask.js.map +1 -1
  105. package/lib/module/version.js +1 -1
  106. package/lib/module/version.js.map +1 -1
  107. package/lib/typescript/components/MainComponents/AlbumGrid.d.ts.map +1 -1
  108. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  109. package/lib/typescript/components/MainComponents/MediaMessage.d.ts +3 -1
  110. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  111. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  112. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  113. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  114. package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts +16 -0
  115. package/lib/typescript/components/Modals/ChatProfileModal/ChatMediaGrid.d.ts.map +1 -0
  116. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  117. package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts +18 -0
  118. package/lib/typescript/components/Modals/ChatProfileModal/LeaveChatModal.d.ts.map +1 -0
  119. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +16 -0
  120. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  121. package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts +27 -0
  122. package/lib/typescript/components/Modals/FilePreviewModal/MediaViewer.d.ts.map +1 -0
  123. package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts +9 -0
  124. package/lib/typescript/components/Modals/FilePreviewModal/useSaveFile.d.ts.map +1 -0
  125. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +8 -0
  126. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -1
  127. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
  128. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  129. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  130. package/lib/typescript/context/MediaSourceContext.d.ts +4 -0
  131. package/lib/typescript/context/MediaSourceContext.d.ts.map +1 -0
  132. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  133. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
  134. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  135. package/lib/typescript/helpers/publicChatsEntry.d.ts +7 -5
  136. package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -1
  137. package/lib/typescript/helpers/roomMedia.d.ts +26 -0
  138. package/lib/typescript/helpers/roomMedia.d.ts.map +1 -0
  139. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  140. package/lib/typescript/main.d.ts +1 -1
  141. package/lib/typescript/main.d.ts.map +1 -1
  142. package/lib/typescript/networking/api-requests/rooms.api.d.ts +6 -5
  143. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  144. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
  145. package/lib/typescript/push/sealedPushTask.d.ts +13 -0
  146. package/lib/typescript/push/sealedPushTask.d.ts.map +1 -1
  147. package/lib/typescript/types/models/modal.model.d.ts +18 -0
  148. package/lib/typescript/types/models/modal.model.d.ts.map +1 -1
  149. package/lib/typescript/types/types.d.ts +18 -0
  150. package/lib/typescript/types/types.d.ts.map +1 -1
  151. package/lib/typescript/version.d.ts +1 -1
  152. package/lib/typescript/version.d.ts.map +1 -1
  153. package/package.json +9 -2
  154. package/plugins/notification-service/NotificationService.swift +105 -19
  155. package/plugins/withNotificationServiceExtension.js +44 -4
  156. package/src/components/MainComponents/AlbumGrid.tsx +5 -1
  157. package/src/components/MainComponents/ChatHeader.tsx +16 -11
  158. package/src/components/MainComponents/MediaMessage.tsx +13 -2
  159. package/src/components/MainComponents/RoomList.tsx +8 -19
  160. package/src/components/Menu/HeaderRoomListMenu.tsx +13 -8
  161. package/src/components/MessageBubble/Message.tsx +24 -1
  162. package/src/components/Modals/ChatProfileModal/ChatMediaGrid.tsx +174 -0
  163. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +119 -48
  164. package/src/components/Modals/ChatProfileModal/LeaveChatModal.tsx +191 -0
  165. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +115 -185
  166. package/src/components/Modals/FilePreviewModal/MediaViewer.tsx +880 -0
  167. package/src/components/Modals/FilePreviewModal/useSaveFile.ts +207 -0
  168. package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +56 -30
  169. package/src/components/VideoCalls/useCallKeep.ts +2 -4
  170. package/src/components/styled/MessageImage.tsx +3 -1
  171. package/src/components/styled/VideoMessage.tsx +5 -1
  172. package/src/context/MediaSourceContext.tsx +14 -0
  173. package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -1
  174. package/src/helpers/constants/MODAL_TYPES.ts +2 -0
  175. package/src/helpers/publicChatsEntry.ts +8 -7
  176. package/src/helpers/roomMedia.ts +126 -0
  177. package/src/i18n/strings.ts +36 -0
  178. package/src/main.ts +1 -1
  179. package/src/networking/api-requests/rooms.api.ts +13 -12
  180. package/src/networking/callTokenStanza.ts +10 -1
  181. package/src/push/sealedPushTask.ts +34 -1
  182. package/src/types/models/modal.model.ts +16 -0
  183. package/src/types/types.ts +16 -0
  184. package/src/version.ts +1 -1
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from 'react';
4
+ /**
5
+ * The message a bubble's pictures and videos belong to. MediaMessage provides
6
+ * it, and the image / video / album components that open the viewer read it,
7
+ * so the viewer knows what its Reply and Delete act on without every card in
8
+ * between passing the message along.
9
+ */
10
+ const MediaSourceContext = /*#__PURE__*/createContext(undefined);
11
+ export const MediaSourceProvider = MediaSourceContext.Provider;
12
+ export const useMediaSource = () => useContext(MediaSourceContext);
13
+ //# sourceMappingURL=MediaSourceContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","MediaSourceContext","undefined","MediaSourceProvider","Provider","useMediaSource"],"sourceRoot":"../../../src","sources":["context/MediaSourceContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAGjD;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,gBAAGF,aAAa,CAA8BG,SAAS,CAAC;AAEhF,OAAO,MAAMC,mBAAmB,GAAGF,kBAAkB,CAACG,QAAQ;AAE9D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAML,UAAU,CAACC,kBAAkB,CAAC","ignoreList":[]}
@@ -8,7 +8,7 @@
8
8
  import { MODAL_TYPES } from './MODAL_TYPES';
9
9
  import ChatProfileModal from '../../components/Modals/ChatProfileModal/ChatProfileModal';
10
10
  import FilePreviewModal from '../../components/Modals/FilePreviewModal/FilePreviewModal';
11
- import MessageSearchModal from '../../components/Modals/MessageSearchModal/MessageSearchModal';
11
+ import MessageSearchModal, { ChatMessageSearchModal } from '../../components/Modals/MessageSearchModal/MessageSearchModal';
12
12
  import PublicChatsModal from '../../components/Modals/PublicChatsModal/PublicChatsModal';
13
13
  import NewChatModal from '../../components/Modals/NewChatModal/NewChatModal';
14
14
  import BlockedUsersModal from '../../components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal';
@@ -34,6 +34,7 @@ export const MODAL_COMPONENTS = {
34
34
  [MODAL_TYPES.BLOCKED_USERS]: BlockedUsersModal,
35
35
  [MODAL_TYPES.FILE_PREVIEW]: FilePreviewModal,
36
36
  [MODAL_TYPES.MESSAGE_SEARCH]: MessageSearchModal,
37
+ [MODAL_TYPES.CHAT_MESSAGE_SEARCH]: ChatMessageSearchModal,
37
38
  [MODAL_TYPES.PUBLIC_CHATS]: PublicChatsModal
38
39
  };
39
40
  //# sourceMappingURL=MODAL_COMPONENTS.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MODAL_TYPES","ChatProfileModal","FilePreviewModal","MessageSearchModal","PublicChatsModal","NewChatModal","BlockedUsersModal","DocumentSharesModal","ManageDataModal","ProfileSharesModal","ReferralsModal","VisibilityModal","ChangePasswordModal","UserProfileModal","UserSettingsModal","MODAL_COMPONENTS","SETTINGS","NEW_CHAT","PROFILE","CHAT_PROFILE","MANAGE_DATA","VISIBILITY","CHANGE_PASSWORD","REFERRALS","DOCUMENT_SHARES","PROFILE_SHARES","BLOCKED_USERS","FILE_PREVIEW","MESSAGE_SEARCH","PUBLIC_CHATS"],"sourceRoot":"../../../../src","sources":["helpers/constants/MODAL_COMPONENTS.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,WAAW,QAAQ,eAAe;AAC3C,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,kBAAkB,MAAM,+DAA+D;AAC9F,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,YAAY,MAAM,mDAAmD;AAC5E,OAAOC,iBAAiB,MAAM,uEAAuE;AACrG,OAAOC,mBAAmB,MAAM,2EAA2E;AAC3G,OAAOC,eAAe,MAAM,wEAAwE;AACpG,OAAOC,kBAAkB,MAAM,oEAAoE;AACnG,OAAOC,cAAc,MAAM,4DAA4D;AACvF,OAAOC,eAAe,MAAM,mEAAmE;AAC/F,OAAOC,mBAAmB,MAAM,2EAA2E;AAC3G,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,iBAAiB,MAAM,6DAA6D;AAE3F,OAAO,MAAMC,gBAGZ,GAAG;EACF,CAACf,WAAW,CAACgB,QAAQ,GAAGF,iBAAiB;EACzC,CAACd,WAAW,CAACiB,QAAQ,GAAGZ,YAAY;EACpC,CAACL,WAAW,CAACkB,OAAO,GAAGL,gBAAgB;EACvC,CAACb,WAAW,CAACmB,YAAY,GAAGlB,gBAAgB;EAC5C,CAACD,WAAW,CAACoB,WAAW,GAAGZ,eAAe;EAC1C,CAACR,WAAW,CAACqB,UAAU,GAAGV,eAAe;EACzC,CAACX,WAAW,CAACsB,eAAe,GAAGV,mBAAmB;EAClD,CAACZ,WAAW,CAACuB,SAAS,GAAGb,cAAc;EACvC,CAACV,WAAW,CAACwB,eAAe,GAAGjB,mBAAmB;EAClD,CAACP,WAAW,CAACyB,cAAc,GAAGhB,kBAAkB;EAChD,CAACT,WAAW,CAAC0B,aAAa,GAAGpB,iBAAiB;EAC9C,CAACN,WAAW,CAAC2B,YAAY,GAAGzB,gBAAgB;EAC5C,CAACF,WAAW,CAAC4B,cAAc,GAAGzB,kBAAkB;EAChD,CAACH,WAAW,CAAC6B,YAAY,GAAGzB;AAC9B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MODAL_TYPES","ChatProfileModal","FilePreviewModal","MessageSearchModal","ChatMessageSearchModal","PublicChatsModal","NewChatModal","BlockedUsersModal","DocumentSharesModal","ManageDataModal","ProfileSharesModal","ReferralsModal","VisibilityModal","ChangePasswordModal","UserProfileModal","UserSettingsModal","MODAL_COMPONENTS","SETTINGS","NEW_CHAT","PROFILE","CHAT_PROFILE","MANAGE_DATA","VISIBILITY","CHANGE_PASSWORD","REFERRALS","DOCUMENT_SHARES","PROFILE_SHARES","BLOCKED_USERS","FILE_PREVIEW","MESSAGE_SEARCH","CHAT_MESSAGE_SEARCH","PUBLIC_CHATS"],"sourceRoot":"../../../../src","sources":["helpers/constants/MODAL_COMPONENTS.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;;AAGA,SAASA,WAAW,QAAQ,eAAe;AAC3C,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,kBAAkB,IACvBC,sBAAsB,QACjB,+DAA+D;AACtE,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,YAAY,MAAM,mDAAmD;AAC5E,OAAOC,iBAAiB,MAAM,uEAAuE;AACrG,OAAOC,mBAAmB,MAAM,2EAA2E;AAC3G,OAAOC,eAAe,MAAM,wEAAwE;AACpG,OAAOC,kBAAkB,MAAM,oEAAoE;AACnG,OAAOC,cAAc,MAAM,4DAA4D;AACvF,OAAOC,eAAe,MAAM,mEAAmE;AAC/F,OAAOC,mBAAmB,MAAM,2EAA2E;AAC3G,OAAOC,gBAAgB,MAAM,2DAA2D;AACxF,OAAOC,iBAAiB,MAAM,6DAA6D;AAE3F,OAAO,MAAMC,gBAGZ,GAAG;EACF,CAAChB,WAAW,CAACiB,QAAQ,GAAGF,iBAAiB;EACzC,CAACf,WAAW,CAACkB,QAAQ,GAAGZ,YAAY;EACpC,CAACN,WAAW,CAACmB,OAAO,GAAGL,gBAAgB;EACvC,CAACd,WAAW,CAACoB,YAAY,GAAGnB,gBAAgB;EAC5C,CAACD,WAAW,CAACqB,WAAW,GAAGZ,eAAe;EAC1C,CAACT,WAAW,CAACsB,UAAU,GAAGV,eAAe;EACzC,CAACZ,WAAW,CAACuB,eAAe,GAAGV,mBAAmB;EAClD,CAACb,WAAW,CAACwB,SAAS,GAAGb,cAAc;EACvC,CAACX,WAAW,CAACyB,eAAe,GAAGjB,mBAAmB;EAClD,CAACR,WAAW,CAAC0B,cAAc,GAAGhB,kBAAkB;EAChD,CAACV,WAAW,CAAC2B,aAAa,GAAGpB,iBAAiB;EAC9C,CAACP,WAAW,CAAC4B,YAAY,GAAG1B,gBAAgB;EAC5C,CAACF,WAAW,CAAC6B,cAAc,GAAG1B,kBAAkB;EAChD,CAACH,WAAW,CAAC8B,mBAAmB,GAAG1B,sBAAsB;EACzD,CAACJ,WAAW,CAAC+B,YAAY,GAAG1B;AAC9B,CAAC","ignoreList":[]}
@@ -25,6 +25,8 @@ export const MODAL_TYPES = {
25
25
  FILE_PREVIEW: 'file_preview',
26
26
  NEW_CHAT: 'new_chat',
27
27
  MESSAGE_SEARCH: 'message_search',
28
+ /** Message search locked to the open chat, reached from its profile. */
29
+ CHAT_MESSAGE_SEARCH: 'chat_message_search',
28
30
  PUBLIC_CHATS: 'public_chats'
29
31
  };
30
32
  //# sourceMappingURL=MODAL_TYPES.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MODAL_TYPES","SETTINGS","PROFILE","CHAT_PROFILE","MANAGE_DATA","VISIBILITY","CHANGE_PASSWORD","PROFILE_SHARES","DOCUMENT_SHARES","BLOCKED_USERS","REFERRALS","FILE_PREVIEW","NEW_CHAT","MESSAGE_SEARCH","PUBLIC_CHATS"],"sourceRoot":"../../../../src","sources":["helpers/constants/MODAL_TYPES.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,YAAY;EACzBC,UAAU,EAAE,YAAY;EACxBC,eAAe,EAAE,iBAAiB;EAElCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,aAAa,EAAE,eAAe;EAE9BC,SAAS,EAAE,WAAW;EAEtBC,YAAY,EAAE,cAAc;EAE5BC,QAAQ,EAAE,UAAU;EAEpBC,cAAc,EAAE,gBAAgB;EAChCC,YAAY,EAAE;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MODAL_TYPES","SETTINGS","PROFILE","CHAT_PROFILE","MANAGE_DATA","VISIBILITY","CHANGE_PASSWORD","PROFILE_SHARES","DOCUMENT_SHARES","BLOCKED_USERS","REFERRALS","FILE_PREVIEW","NEW_CHAT","MESSAGE_SEARCH","CHAT_MESSAGE_SEARCH","PUBLIC_CHATS"],"sourceRoot":"../../../../src","sources":["helpers/constants/MODAL_TYPES.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,WAAW,GAAG;EACzBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,YAAY,EAAE,aAAa;EAC3BC,WAAW,EAAE,YAAY;EACzBC,UAAU,EAAE,YAAY;EACxBC,eAAe,EAAE,iBAAiB;EAElCC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,aAAa,EAAE,eAAe;EAE9BC,SAAS,EAAE,WAAW;EAEtBC,YAAY,EAAE,cAAc;EAE5BC,QAAQ,EAAE,UAAU;EAEpBC,cAAc,EAAE,gBAAgB;EAChC;EACAC,mBAAmB,EAAE,qBAAqB;EAC1CC,YAAY,EAAE;AAChB,CAAC","ignoreList":[]}
@@ -2,11 +2,13 @@
2
2
 
3
3
  /**
4
4
  * "Discover chats" lives in the room list menu sheet. A host that takes the
5
- * burger over (`headerMenu` as a function) or hides the menu
6
- * (`chatHeaderSettings.disableMenu`) would otherwise have no obvious way to
7
- * reach the directory, so it also gets a button of its own in the room list
8
- * header. `disableRoomMenu` removes the menu entry point, and with it the
9
- * button; `disablePublicChatsDirectory` removes the feature altogether.
5
+ * burger over (`headerMenu` as a function) would otherwise have no obvious
6
+ * way to reach the directory, so it also gets a button of its own in the
7
+ * room list header. `chatHeaderSettings.disableMenu` does not count: the
8
+ * header avatar still opens the sheet, Discover included, and a second
9
+ * compass next to it was a duplicate. `disableRoomMenu` removes the menu
10
+ * entry point, and with it the button; `disablePublicChatsDirectory`
11
+ * removes the feature altogether.
10
12
  */
11
- export const showsStandaloneDiscoverButton = config => !config?.disablePublicChatsDirectory && !config?.disableRoomMenu && (Boolean(config?.chatHeaderSettings?.disableMenu) || typeof config?.headerMenu === 'function');
13
+ export const showsStandaloneDiscoverButton = config => !config?.disablePublicChatsDirectory && !config?.disableRoomMenu && typeof config?.headerMenu === 'function';
12
14
  //# sourceMappingURL=publicChatsEntry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["showsStandaloneDiscoverButton","config","disablePublicChatsDirectory","disableRoomMenu","Boolean","chatHeaderSettings","disableMenu","headerMenu"],"sourceRoot":"../../../src","sources":["helpers/publicChatsEntry.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAA6B,GAAIC,MAAgB,IAC5D,CAACA,MAAM,EAAEC,2BAA2B,IACpC,CAACD,MAAM,EAAEE,eAAe,KACvBC,OAAO,CAACH,MAAM,EAAEI,kBAAkB,EAAEC,WAAW,CAAC,IAC/C,OAAOL,MAAM,EAAEM,UAAU,KAAK,UAAU,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["showsStandaloneDiscoverButton","config","disablePublicChatsDirectory","disableRoomMenu","headerMenu"],"sourceRoot":"../../../src","sources":["helpers/publicChatsEntry.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,6BAA6B,GAAIC,MAAgB,IAC5D,CAACA,MAAM,EAAEC,2BAA2B,IACpC,CAACD,MAAM,EAAEE,eAAe,IACxB,OAAOF,MAAM,EAAEG,UAAU,KAAK,UAAU","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ import { getAttachmentName, getMessageAttachments } from './attachments';
4
+ import { getFileKind } from './fileKind';
5
+ import { appendFileToken } from './secureFileUrl';
6
+ import { parseMessageReference } from './parseMessageReference';
7
+ import { composeName } from './displayName';
8
+ import { isOwnMessage } from './isOwnMessage';
9
+ /**
10
+ * Every picture and video of the room's loaded history, newest first, each
11
+ * carrying the message it came from so the viewer's Reply and Delete act on
12
+ * the right one (same rules as a bubble: Delete on one's own, Reply where
13
+ * replies are on).
14
+ */
15
+ export const collectRoomMedia = (messages, roomJid, {
16
+ me,
17
+ fileToken,
18
+ interactive,
19
+ repliesOn
20
+ }) => {
21
+ const files = [];
22
+ for (let i = (messages?.length ?? 0) - 1; i >= 0; i--) {
23
+ const message = messages[i];
24
+ if (message.isMediafile !== 'true' || message.isDeleted || message.pending || message.clientEncrypted === 'true' || !message.id) {
25
+ continue;
26
+ }
27
+ const parent = parseMessageReference(message);
28
+ const sentAt = new Date(message.date).getTime();
29
+ const source = {
30
+ messageId: message.id,
31
+ roomJid: message.roomJid || roomJid,
32
+ own: interactive && isOwnMessage(message, me),
33
+ replyTo: interactive && repliesOn ? parent ? {
34
+ id: parent.id,
35
+ chatJID: parent.roomJid || message.roomJid || roomJid
36
+ } : {
37
+ id: message.id,
38
+ chatJID: message.roomJid || roomJid
39
+ } : undefined,
40
+ senderName: composeName(message.user?.firstName, message.user?.lastName) || message.user?.name || undefined,
41
+ timestamp: Number.isFinite(sentAt) ? sentAt : undefined
42
+ };
43
+ for (const attachment of getMessageAttachments(message)) {
44
+ if (!attachment.location) {
45
+ continue;
46
+ }
47
+ const kind = getFileKind({
48
+ mimetype: attachment.mimetype,
49
+ name: getAttachmentName(attachment),
50
+ url: attachment.location,
51
+ duration: attachment.duration
52
+ });
53
+ if (kind !== 'image' && kind !== 'video') {
54
+ continue;
55
+ }
56
+ files.push({
57
+ fileName: getAttachmentName(attachment),
58
+ originalName: attachment.originalName,
59
+ fileURL: appendFileToken(attachment.location, fileToken) || attachment.location,
60
+ mimetype: attachment.mimetype || (kind === 'image' ? 'image/jpeg' : 'video/mp4'),
61
+ duration: attachment.duration,
62
+ previewURL: appendFileToken(attachment.locationPreview, fileToken),
63
+ source
64
+ });
65
+ }
66
+ }
67
+ return files;
68
+ };
69
+ const sentAt = message => new Date(message.date).getTime() || 0;
70
+
71
+ /** A thread-only reply: shown in its thread, not in the channel. */
72
+ const threadParentOf = message => message.mainMessage && message.showInChannel !== 'true' ? parseMessageReference(message)?.id ?? null : null;
73
+
74
+ /** The file's address without its access token, which may differ per copy. */
75
+ const bareUrl = url => (url || '').split('?')[0];
76
+
77
+ /**
78
+ * The media feed the viewer pages through when a picture or video is opened
79
+ * from a bubble: every picture and video of the list that bubble sits in (the
80
+ * channel, or the one thread for a thread-only reply), oldest first so a
81
+ * swipe to the left goes forward in time, the way the chat reads. The opened
82
+ * file comes back with that feed as its siblings; null when the file is not
83
+ * in the loaded history (the caller then keeps what it was opened with).
84
+ */
85
+ export const withChatSiblings = (file, messages, options) => {
86
+ const source = file.source;
87
+ if (!source || !messages?.length) {
88
+ return null;
89
+ }
90
+ const opened = messages.find(m => String(m.id) === String(source.messageId));
91
+ if (!opened) {
92
+ return null;
93
+ }
94
+ const thread = threadParentOf(opened);
95
+ // collectRoomMedia walks from the end, so newest-first in gives oldest
96
+ // first out, with an album's files still in their own order.
97
+ const scoped = messages.filter(m => threadParentOf(m) === thread).sort((a, b) => sentAt(b) - sentAt(a));
98
+ const feed = collectRoomMedia(scoped, source.roomJid, options);
99
+ const url = bareUrl(file.fileURL);
100
+ const index = feed.findIndex(f => f.source?.messageId === source.messageId && bareUrl(f.fileURL) === url);
101
+ if (index < 0) {
102
+ return null;
103
+ }
104
+ // The bubble's own rules for Reply and Delete stay with the opened file.
105
+ return {
106
+ ...feed[index],
107
+ source,
108
+ siblings: feed,
109
+ index
110
+ };
111
+ };
112
+ //# sourceMappingURL=roomMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getAttachmentName","getMessageAttachments","getFileKind","appendFileToken","parseMessageReference","composeName","isOwnMessage","collectRoomMedia","messages","roomJid","me","fileToken","interactive","repliesOn","files","i","length","message","isMediafile","isDeleted","pending","clientEncrypted","id","parent","sentAt","Date","date","getTime","source","messageId","own","replyTo","chatJID","undefined","senderName","user","firstName","lastName","name","timestamp","Number","isFinite","attachment","location","kind","mimetype","url","duration","push","fileName","originalName","fileURL","previewURL","locationPreview","threadParentOf","mainMessage","showInChannel","bareUrl","split","withChatSiblings","file","options","opened","find","m","String","thread","scoped","filter","sort","a","b","feed","index","findIndex","f","siblings"],"sourceRoot":"../../../src","sources":["helpers/roomMedia.ts"],"mappings":"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","ignoreList":[]}
@@ -159,6 +159,9 @@ const en = {
159
159
  'action.cancel': 'Cancel',
160
160
  'action.save': 'Save',
161
161
  'action.delete': 'Delete',
162
+ 'action.reply': 'Reply',
163
+ 'video.cantPlay': 'This video can\'t be played',
164
+ 'video.cantPlayHint': 'Tap the save icon above to download it.',
162
165
  'action.leave': 'Leave',
163
166
  'action.muted': 'Muted',
164
167
  'action.unmuted': 'Unmuted',
@@ -291,6 +294,8 @@ const en = {
291
294
  'modal.chatProfile.removePhoto': 'Remove photo',
292
295
  'modal.chatProfile.membersLabel': 'Members: {count}',
293
296
  'modal.chatProfile.membersUnavailable': 'Member list unavailable',
297
+ 'modal.chatProfile.media': 'Media',
298
+ 'modal.chatProfile.mediaEmpty': 'No photos or videos yet',
294
299
  'modal.chatProfile.removeMember': 'Remove from this chat?',
295
300
  'modal.chatProfile.memberListUnavailable': 'Member list unavailable',
296
301
  'modal.deleteChat.title': 'Delete this chat ?',
@@ -300,6 +305,7 @@ const en = {
300
305
  'modal.addMembers.userIdPlaceholder': 'Enter User Id',
301
306
  'modal.leaveChat.title': 'Leave Chat',
302
307
  'modal.leaveChat.description': 'Are you sure you want to leave this chat?',
308
+ 'modal.leaveChat.descriptionNamed': 'Are you sure you want to leave {name}?',
303
309
  'modal.report.chatTitle': 'Report Chat',
304
310
  'modal.report.messageTitle': 'Report Message',
305
311
  'modal.report.otherDetails': 'Please enter additional details relevant to your report.',
@@ -563,6 +569,9 @@ const fr = {
563
569
  'action.cancel': 'Annuler',
564
570
  'action.save': 'Enregistrer',
565
571
  'action.delete': 'Supprimer',
572
+ 'action.reply': 'Répondre',
573
+ 'video.cantPlay': 'Impossible de lire cette vidéo',
574
+ 'video.cantPlayHint': 'Touchez l\'icône d\'enregistrement en haut pour la télécharger.',
566
575
  'action.leave': 'Quitter',
567
576
  'action.muted': 'En sourdine',
568
577
  'action.unmuted': 'Activé',
@@ -695,6 +704,8 @@ const fr = {
695
704
  'modal.chatProfile.removePhoto': 'Supprimer la photo',
696
705
  'modal.chatProfile.membersLabel': 'Membres : {count}',
697
706
  'modal.chatProfile.membersUnavailable': 'Liste des membres indisponible',
707
+ 'modal.chatProfile.media': 'Médias',
708
+ 'modal.chatProfile.mediaEmpty': 'Aucune photo ni vidéo pour l\'instant',
698
709
  'modal.chatProfile.removeMember': 'Retirer de cette discussion ?',
699
710
  'modal.chatProfile.memberListUnavailable': 'Liste des membres indisponible',
700
711
  'modal.deleteChat.title': 'Supprimer cette discussion ?',
@@ -704,6 +715,7 @@ const fr = {
704
715
  'modal.addMembers.userIdPlaceholder': "Entrez l'ID utilisateur",
705
716
  'modal.leaveChat.title': 'Quitter la discussion',
706
717
  'modal.leaveChat.description': 'Voulez-vous vraiment quitter cette discussion ?',
718
+ 'modal.leaveChat.descriptionNamed': 'Voulez-vous vraiment quitter {name} ?',
707
719
  'modal.report.chatTitle': 'Signaler la discussion',
708
720
  'modal.report.messageTitle': 'Signaler le message',
709
721
  'modal.report.otherDetails': 'Veuillez indiquer des détails supplémentaires concernant votre signalement.',
@@ -967,6 +979,9 @@ const es = {
967
979
  'action.cancel': 'Cancelar',
968
980
  'action.save': 'Guardar',
969
981
  'action.delete': 'Eliminar',
982
+ 'action.reply': 'Responder',
983
+ 'video.cantPlay': 'No se puede reproducir este video',
984
+ 'video.cantPlayHint': 'Toca el icono de guardar de arriba para descargarlo.',
970
985
  'action.leave': 'Salir',
971
986
  'action.muted': 'Silenciado',
972
987
  'action.unmuted': 'Activado',
@@ -1099,6 +1114,8 @@ const es = {
1099
1114
  'modal.chatProfile.removePhoto': 'Quitar la foto',
1100
1115
  'modal.chatProfile.membersLabel': 'Miembros: {count}',
1101
1116
  'modal.chatProfile.membersUnavailable': 'Lista de miembros no disponible',
1117
+ 'modal.chatProfile.media': 'Multimedia',
1118
+ 'modal.chatProfile.mediaEmpty': 'Aún no hay fotos ni videos',
1102
1119
  'modal.chatProfile.removeMember': '¿Quitar de este chat?',
1103
1120
  'modal.chatProfile.memberListUnavailable': 'Lista de miembros no disponible',
1104
1121
  'modal.deleteChat.title': '¿Eliminar este chat?',
@@ -1108,6 +1125,7 @@ const es = {
1108
1125
  'modal.addMembers.userIdPlaceholder': 'Introduce el ID de usuario',
1109
1126
  'modal.leaveChat.title': 'Salir del chat',
1110
1127
  'modal.leaveChat.description': '¿Seguro que quieres salir de este chat?',
1128
+ 'modal.leaveChat.descriptionNamed': '¿Seguro que quieres salir de {name}?',
1111
1129
  'modal.report.chatTitle': 'Reportar chat',
1112
1130
  'modal.report.messageTitle': 'Reportar mensaje',
1113
1131
  'modal.report.otherDetails': 'Introduce detalles adicionales relevantes para tu reporte.',
@@ -1371,6 +1389,9 @@ const pt = {
1371
1389
  'action.cancel': 'Cancelar',
1372
1390
  'action.save': 'Guardar',
1373
1391
  'action.delete': 'Eliminar',
1392
+ 'action.reply': 'Responder',
1393
+ 'video.cantPlay': 'Não é possível reproduzir este vídeo',
1394
+ 'video.cantPlayHint': 'Toque no ícone de guardar acima para o transferir.',
1374
1395
  'action.leave': 'Sair',
1375
1396
  'action.muted': 'Muted',
1376
1397
  'action.unmuted': 'Unmuted',
@@ -1503,6 +1524,8 @@ const pt = {
1503
1524
  'modal.chatProfile.removePhoto': 'Remover foto',
1504
1525
  'modal.chatProfile.membersLabel': 'Membros: {count}',
1505
1526
  'modal.chatProfile.membersUnavailable': 'Lista de membros indisponível',
1527
+ 'modal.chatProfile.media': 'Multimédia',
1528
+ 'modal.chatProfile.mediaEmpty': 'Ainda não há fotos nem vídeos',
1506
1529
  'modal.chatProfile.removeMember': 'Remover deste chat?',
1507
1530
  'modal.chatProfile.memberListUnavailable': 'Lista de membros indisponível',
1508
1531
  'modal.deleteChat.title': 'Eliminar este chat?',
@@ -1512,6 +1535,7 @@ const pt = {
1512
1535
  'modal.addMembers.userIdPlaceholder': 'Introduza o ID do utilizador',
1513
1536
  'modal.leaveChat.title': 'Sair do chat',
1514
1537
  'modal.leaveChat.description': 'Tem a certeza de que quer sair deste chat?',
1538
+ 'modal.leaveChat.descriptionNamed': 'Tem a certeza de que quer sair de {name}?',
1515
1539
  'modal.report.chatTitle': 'Denunciar chat',
1516
1540
  'modal.report.messageTitle': 'Denunciar mensagem',
1517
1541
  'modal.report.otherDetails': 'Indique detalhes adicionais relevantes para a sua denúncia.',
@@ -1775,6 +1799,9 @@ const ht = {
1775
1799
  'action.cancel': 'Anile',
1776
1800
  'action.save': 'Anrejistre',
1777
1801
  'action.delete': 'Efase',
1802
+ 'action.reply': 'Reponn',
1803
+ 'video.cantPlay': 'Videyo sa a pa ka jwe',
1804
+ 'video.cantPlayHint': 'Peze ikòn sove anwo a pou telechaje li.',
1778
1805
  'action.leave': 'Kite',
1779
1806
  'action.muted': 'Muted',
1780
1807
  'action.unmuted': 'Unmuted',
@@ -1907,6 +1934,8 @@ const ht = {
1907
1934
  'modal.chatProfile.removePhoto': 'Retire foto a',
1908
1935
  'modal.chatProfile.membersLabel': 'Manm: {count}',
1909
1936
  'modal.chatProfile.membersUnavailable': 'Lis manm yo pa disponib',
1937
+ 'modal.chatProfile.media': 'Medya',
1938
+ 'modal.chatProfile.mediaEmpty': 'Poko gen foto ni videyo',
1910
1939
  'modal.chatProfile.removeMember': 'Retire nan chat sa a?',
1911
1940
  'modal.chatProfile.memberListUnavailable': 'Lis manm yo pa disponib',
1912
1941
  'modal.deleteChat.title': 'Efase chat sa a?',
@@ -1916,6 +1945,7 @@ const ht = {
1916
1945
  'modal.addMembers.userIdPlaceholder': 'Antre ID itilizatè a',
1917
1946
  'modal.leaveChat.title': 'Kite chat la',
1918
1947
  'modal.leaveChat.description': 'Èske ou sèten ou vle kite chat sa a?',
1948
+ 'modal.leaveChat.descriptionNamed': 'Èske ou sèten ou vle kite {name}?',
1919
1949
  'modal.report.chatTitle': 'Rapòte chat la',
1920
1950
  'modal.report.messageTitle': 'Rapòte mesaj la',
1921
1951
  'modal.report.otherDetails': 'Tanpri antre detay anplis ki gen rapò ak rapò ou a.',
@@ -2179,6 +2209,9 @@ const zh = {
2179
2209
  'action.cancel': '取消',
2180
2210
  'action.save': '保存',
2181
2211
  'action.delete': '删除',
2212
+ 'action.reply': '回复',
2213
+ 'video.cantPlay': '无法播放此视频',
2214
+ 'video.cantPlayHint': '点击上方的保存图标下载。',
2182
2215
  'action.leave': '退出',
2183
2216
  'action.muted': 'Muted',
2184
2217
  'action.unmuted': 'Unmuted',
@@ -2311,6 +2344,8 @@ const zh = {
2311
2344
  'modal.chatProfile.removePhoto': '移除图片',
2312
2345
  'modal.chatProfile.membersLabel': '成员:{count}',
2313
2346
  'modal.chatProfile.membersUnavailable': '成员列表不可用',
2347
+ 'modal.chatProfile.media': '媒体',
2348
+ 'modal.chatProfile.mediaEmpty': '暂无图片或视频',
2314
2349
  'modal.chatProfile.removeMember': '将其移出该聊天?',
2315
2350
  'modal.chatProfile.memberListUnavailable': '成员列表不可用',
2316
2351
  'modal.deleteChat.title': '删除此聊天?',
@@ -2320,6 +2355,7 @@ const zh = {
2320
2355
  'modal.addMembers.userIdPlaceholder': '输入用户 ID',
2321
2356
  'modal.leaveChat.title': '退出聊天',
2322
2357
  'modal.leaveChat.description': '确定要退出此聊天吗?',
2358
+ 'modal.leaveChat.descriptionNamed': '确定要退出 {name} 吗?',
2323
2359
  'modal.report.chatTitle': '举报聊天',
2324
2360
  'modal.report.messageTitle': '举报消息',
2325
2361
  'modal.report.otherDetails': '请填写与您举报相关的补充信息。',