@ethora/chat-component-rn 26.8.4 → 26.8.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 (417) hide show
  1. package/README.md +55 -0
  2. package/lib/commonjs/assets/emojiData.js +40 -0
  3. package/lib/commonjs/assets/emojiData.js.map +1 -0
  4. package/lib/commonjs/assets/icons.js +1 -1
  5. package/lib/commonjs/assets/icons.js.map +1 -1
  6. package/lib/commonjs/components/Header/HeaderRoomList.js +12 -7
  7. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js +7 -9
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js +47 -26
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/ChatWrapper.js +58 -21
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/KeyboardInputDock.js +40 -0
  15. package/lib/commonjs/components/MainComponents/KeyboardInputDock.js.map +1 -0
  16. package/lib/commonjs/components/MainComponents/MessageContainer.js +4 -12
  17. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  18. package/lib/commonjs/components/MainComponents/MessageList.js +110 -35
  19. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  20. package/lib/commonjs/components/MainComponents/RoomList.js +32 -29
  21. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  22. package/lib/commonjs/components/MainComponents/RoomStack.js +270 -0
  23. package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -0
  24. package/lib/commonjs/components/MainComponents/SystemMessage.js +6 -2
  25. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  26. package/lib/commonjs/components/MessageBubble/Avatar.js +5 -1
  27. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  28. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +17 -21
  29. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  30. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js +447 -0
  31. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  32. package/lib/commonjs/components/MessageBubble/Message.js +200 -132
  33. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  34. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +213 -12
  35. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  36. package/lib/commonjs/components/MessageBubble/MessageReaction.js +113 -94
  37. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  38. package/lib/commonjs/components/MessageBubble/MessageReply.js +66 -24
  39. package/lib/commonjs/components/MessageBubble/MessageReply.js.map +1 -1
  40. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +6 -1
  41. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  42. package/lib/commonjs/components/Modals/Modal/Modal.js +24 -0
  43. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  44. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js +178 -0
  45. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js.map +1 -0
  46. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +28 -10
  47. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -1
  48. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +9 -3
  49. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  50. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +5 -4
  51. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  52. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  53. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  54. package/lib/commonjs/components/Thread/ThreadWrapper.js +265 -152
  55. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  56. package/lib/commonjs/components/styled/DateLabel.js +6 -3
  57. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  58. package/lib/commonjs/context/MessageNotificationContext.js +188 -9
  59. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  60. package/lib/commonjs/context/xmppProvider.js +22 -7
  61. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  62. package/lib/commonjs/helpers/createRoomFromApi.js +36 -2
  63. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  64. package/lib/commonjs/helpers/emoji.js +51 -0
  65. package/lib/commonjs/helpers/emoji.js.map +1 -0
  66. package/lib/commonjs/helpers/haptics.js +29 -0
  67. package/lib/commonjs/helpers/haptics.js.map +1 -0
  68. package/lib/commonjs/helpers/historyPreloadScheduler.js +32 -66
  69. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  70. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +21 -12
  71. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  72. package/lib/commonjs/helpers/keyboardLayout.js +23 -1
  73. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  74. package/lib/commonjs/helpers/mamReactions.js +57 -0
  75. package/lib/commonjs/helpers/mamReactions.js.map +1 -0
  76. package/lib/commonjs/helpers/parseMessageReference.js +42 -0
  77. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -0
  78. package/lib/commonjs/helpers/reactionsConfig.js +17 -0
  79. package/lib/commonjs/helpers/reactionsConfig.js.map +1 -0
  80. package/lib/commonjs/helpers/updateMessagesTillLast.js +17 -2
  81. package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
  82. package/lib/commonjs/hooks/useHeapSender.js +3 -1
  83. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  84. package/lib/commonjs/hooks/useMessageHeapState.js +3 -2
  85. package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
  86. package/lib/commonjs/hooks/useRoomInitialization.js +16 -7
  87. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  88. package/lib/commonjs/hooks/useSendMessage.js +14 -8
  89. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  90. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -1
  91. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  92. package/lib/commonjs/networking/stanzaHandlers.js +106 -50
  93. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  94. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +29 -74
  95. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  96. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +4 -0
  97. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  98. package/lib/commonjs/networking/xmpp/mamRouter.js +186 -0
  99. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -0
  100. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +41 -4
  101. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  102. package/lib/commonjs/networking/xmppClient.js +98 -23
  103. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  104. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +29 -34
  105. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  106. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js +51 -0
  107. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js.map +1 -0
  108. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +66 -43
  109. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  110. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +88 -68
  111. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  112. package/lib/commonjs/roomStore/index.js +18 -14
  113. package/lib/commonjs/roomStore/index.js.map +1 -1
  114. package/lib/commonjs/roomStore/persistBackend.js +96 -0
  115. package/lib/commonjs/roomStore/persistBackend.js.map +1 -0
  116. package/lib/commonjs/roomStore/persistence.js +245 -50
  117. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  118. package/lib/commonjs/roomStore/roomsSlice.js +282 -136
  119. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  120. package/lib/commonjs/theme/theme.js +3 -0
  121. package/lib/commonjs/theme/theme.js.map +1 -1
  122. package/lib/commonjs/utils/devLogger.js +14 -0
  123. package/lib/commonjs/utils/devLogger.js.map +1 -1
  124. package/lib/commonjs/version.js +1 -1
  125. package/lib/module/assets/emojiData.js +36 -0
  126. package/lib/module/assets/emojiData.js.map +1 -0
  127. package/lib/module/assets/icons.js +1 -1
  128. package/lib/module/assets/icons.js.map +1 -1
  129. package/lib/module/components/Header/HeaderRoomList.js +12 -7
  130. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  131. package/lib/module/components/MainComponents/ChatHeader.js +8 -10
  132. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  133. package/lib/module/components/MainComponents/ChatRoom.js +49 -28
  134. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  135. package/lib/module/components/MainComponents/ChatWrapper.js +60 -23
  136. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  137. package/lib/module/components/MainComponents/KeyboardInputDock.js +33 -0
  138. package/lib/module/components/MainComponents/KeyboardInputDock.js.map +1 -0
  139. package/lib/module/components/MainComponents/MessageContainer.js +7 -14
  140. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  141. package/lib/module/components/MainComponents/MessageList.js +110 -35
  142. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  143. package/lib/module/components/MainComponents/RoomList.js +32 -29
  144. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  145. package/lib/module/components/MainComponents/RoomStack.js +266 -0
  146. package/lib/module/components/MainComponents/RoomStack.js.map +1 -0
  147. package/lib/module/components/MainComponents/SystemMessage.js +6 -2
  148. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  149. package/lib/module/components/MessageBubble/Avatar.js +5 -1
  150. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  151. package/lib/module/components/MessageBubble/BottomReplyContainer.js +18 -22
  152. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  153. package/lib/module/components/MessageBubble/EmojiPickerSheet.js +438 -0
  154. package/lib/module/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  155. package/lib/module/components/MessageBubble/Message.js +203 -134
  156. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  157. package/lib/module/components/MessageBubble/MessageInteractions.js +215 -14
  158. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  159. package/lib/module/components/MessageBubble/MessageReaction.js +115 -94
  160. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  161. package/lib/module/components/MessageBubble/MessageReply.js +65 -24
  162. package/lib/module/components/MessageBubble/MessageReply.js.map +1 -1
  163. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +6 -1
  164. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  165. package/lib/module/components/Modals/Modal/Modal.js +25 -1
  166. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  167. package/lib/module/components/Modals/Modal/SwipeBackLayer.js +172 -0
  168. package/lib/module/components/Modals/Modal/SwipeBackLayer.js.map +1 -0
  169. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +29 -11
  170. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -1
  171. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +10 -4
  172. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  173. package/lib/module/components/RoomComponents/ChatRoomItem.js +5 -4
  174. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  175. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  176. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  177. package/lib/module/components/Thread/ThreadWrapper.js +264 -152
  178. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  179. package/lib/module/components/styled/DateLabel.js +6 -3
  180. package/lib/module/components/styled/DateLabel.js.map +1 -1
  181. package/lib/module/context/MessageNotificationContext.js +190 -11
  182. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  183. package/lib/module/context/xmppProvider.js +22 -7
  184. package/lib/module/context/xmppProvider.js.map +1 -1
  185. package/lib/module/helpers/createRoomFromApi.js +36 -2
  186. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  187. package/lib/module/helpers/emoji.js +44 -0
  188. package/lib/module/helpers/emoji.js.map +1 -0
  189. package/lib/module/helpers/haptics.js +24 -0
  190. package/lib/module/helpers/haptics.js.map +1 -0
  191. package/lib/module/helpers/historyPreloadScheduler.js +32 -66
  192. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  193. package/lib/module/helpers/insertMessageWithDelimiter.js +21 -12
  194. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  195. package/lib/module/helpers/keyboardLayout.js +20 -0
  196. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  197. package/lib/module/helpers/mamReactions.js +51 -0
  198. package/lib/module/helpers/mamReactions.js.map +1 -0
  199. package/lib/module/helpers/parseMessageReference.js +37 -0
  200. package/lib/module/helpers/parseMessageReference.js.map +1 -0
  201. package/lib/module/helpers/reactionsConfig.js +10 -0
  202. package/lib/module/helpers/reactionsConfig.js.map +1 -0
  203. package/lib/module/helpers/updateMessagesTillLast.js +17 -2
  204. package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
  205. package/lib/module/hooks/useHeapSender.js +3 -1
  206. package/lib/module/hooks/useHeapSender.js.map +1 -1
  207. package/lib/module/hooks/useMessageHeapState.js +3 -2
  208. package/lib/module/hooks/useMessageHeapState.js.map +1 -1
  209. package/lib/module/hooks/useRoomInitialization.js +17 -8
  210. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  211. package/lib/module/hooks/useSendMessage.js +14 -8
  212. package/lib/module/hooks/useSendMessage.js.map +1 -1
  213. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -1
  214. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  215. package/lib/module/networking/stanzaHandlers.js +107 -51
  216. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  217. package/lib/module/networking/xmpp/getHistory.xmpp.js +29 -74
  218. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  219. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +4 -0
  220. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  221. package/lib/module/networking/xmpp/mamRouter.js +175 -0
  222. package/lib/module/networking/xmpp/mamRouter.js.map +1 -0
  223. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +38 -2
  224. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  225. package/lib/module/networking/xmppClient.js +99 -24
  226. package/lib/module/networking/xmppClient.js.map +1 -1
  227. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +29 -34
  228. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  229. package/lib/module/roomStore/Middleware/perfMiddleware.js +45 -0
  230. package/lib/module/roomStore/Middleware/perfMiddleware.js.map +1 -0
  231. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +66 -43
  232. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  233. package/lib/module/roomStore/Middleware/unreadMidlleware.js +89 -69
  234. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  235. package/lib/module/roomStore/index.js +19 -15
  236. package/lib/module/roomStore/index.js.map +1 -1
  237. package/lib/module/roomStore/persistBackend.js +89 -0
  238. package/lib/module/roomStore/persistBackend.js.map +1 -0
  239. package/lib/module/roomStore/persistence.js +245 -48
  240. package/lib/module/roomStore/persistence.js.map +1 -1
  241. package/lib/module/roomStore/roomsSlice.js +275 -134
  242. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  243. package/lib/module/theme/theme.js +3 -0
  244. package/lib/module/theme/theme.js.map +1 -1
  245. package/lib/module/utils/devLogger.js +13 -0
  246. package/lib/module/utils/devLogger.js.map +1 -1
  247. package/lib/module/version.js +1 -1
  248. package/lib/typescript/assets/emojiData.d.ts +8 -0
  249. package/lib/typescript/assets/emojiData.d.ts.map +1 -0
  250. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  251. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  252. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  253. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  254. package/lib/typescript/components/MainComponents/KeyboardInputDock.d.ts +16 -0
  255. package/lib/typescript/components/MainComponents/KeyboardInputDock.d.ts.map +1 -0
  256. package/lib/typescript/components/MainComponents/MessageContainer.d.ts +2 -2
  257. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  258. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  259. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  260. package/lib/typescript/components/MainComponents/RoomStack.d.ts +42 -0
  261. package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -0
  262. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  263. package/lib/typescript/components/MessageBubble/Avatar.d.ts +2 -0
  264. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  265. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  266. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts +11 -0
  267. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts.map +1 -0
  268. package/lib/typescript/components/MessageBubble/Message.d.ts +2 -2
  269. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  270. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +2 -0
  271. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  272. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts +1 -0
  273. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  274. package/lib/typescript/components/MessageBubble/MessageReply.d.ts +7 -7
  275. package/lib/typescript/components/MessageBubble/MessageReply.d.ts.map +1 -1
  276. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  277. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  278. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts +16 -0
  279. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts.map +1 -0
  280. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -1
  281. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  282. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts +2 -2
  283. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  284. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts +3 -6
  285. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts.map +1 -1
  286. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +7 -1
  287. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  288. package/lib/typescript/components/styled/DateLabel.d.ts +1 -0
  289. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  290. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  291. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  292. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  293. package/lib/typescript/helpers/emoji.d.ts +6 -0
  294. package/lib/typescript/helpers/emoji.d.ts.map +1 -0
  295. package/lib/typescript/helpers/haptics.d.ts +3 -0
  296. package/lib/typescript/helpers/haptics.d.ts.map +1 -0
  297. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +1 -0
  298. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  299. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  300. package/lib/typescript/helpers/keyboardLayout.d.ts +6 -0
  301. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  302. package/lib/typescript/helpers/mamReactions.d.ts +13 -0
  303. package/lib/typescript/helpers/mamReactions.d.ts.map +1 -0
  304. package/lib/typescript/helpers/parseMessageReference.d.ts +16 -0
  305. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -0
  306. package/lib/typescript/helpers/reactionsConfig.d.ts +5 -0
  307. package/lib/typescript/helpers/reactionsConfig.d.ts.map +1 -0
  308. package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
  309. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  310. package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
  311. package/lib/typescript/hooks/useRoomInitialization.d.ts +2 -2
  312. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  313. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  314. package/lib/typescript/networking/stanzaHandlers.d.ts +4 -2
  315. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  316. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +3 -1
  317. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  318. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  319. package/lib/typescript/networking/xmpp/mamRouter.d.ts +23 -0
  320. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -0
  321. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +1 -0
  322. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  323. package/lib/typescript/networking/xmppClient.d.ts +22 -1
  324. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  325. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  326. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts +4 -0
  327. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts.map +1 -0
  328. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts +9 -0
  329. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  330. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  331. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  332. package/lib/typescript/roomStore/persistBackend.d.ts +11 -0
  333. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -0
  334. package/lib/typescript/roomStore/persistence.d.ts +5 -6
  335. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  336. package/lib/typescript/roomStore/roomsSlice.d.ts +41 -1
  337. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  338. package/lib/typescript/theme/theme.d.ts +4 -1
  339. package/lib/typescript/theme/theme.d.ts.map +1 -1
  340. package/lib/typescript/types/models/message.model.d.ts +4 -0
  341. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  342. package/lib/typescript/types/models/room.model.d.ts +16 -0
  343. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  344. package/lib/typescript/types/models/xmpp.model.d.ts +6 -1
  345. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  346. package/lib/typescript/types/types.d.ts +15 -3
  347. package/lib/typescript/types/types.d.ts.map +1 -1
  348. package/lib/typescript/utils/devLogger.d.ts +8 -0
  349. package/lib/typescript/utils/devLogger.d.ts.map +1 -1
  350. package/lib/typescript/version.d.ts +1 -1
  351. package/package.json +10 -1
  352. package/src/assets/emojiData.ts +2146 -0
  353. package/src/assets/icons.tsx +5 -5
  354. package/src/components/Header/HeaderRoomList.tsx +7 -5
  355. package/src/components/MainComponents/ChatHeader.tsx +16 -7
  356. package/src/components/MainComponents/ChatRoom.tsx +64 -32
  357. package/src/components/MainComponents/ChatWrapper.tsx +73 -21
  358. package/src/components/MainComponents/KeyboardInputDock.tsx +47 -0
  359. package/src/components/MainComponents/MessageContainer.tsx +7 -15
  360. package/src/components/MainComponents/MessageList.tsx +96 -43
  361. package/src/components/MainComponents/RoomList.tsx +28 -29
  362. package/src/components/MainComponents/RoomStack.tsx +309 -0
  363. package/src/components/MainComponents/SystemMessage.tsx +6 -2
  364. package/src/components/MessageBubble/Avatar.tsx +7 -1
  365. package/src/components/MessageBubble/BottomReplyContainer.tsx +19 -21
  366. package/src/components/MessageBubble/EmojiPickerSheet.tsx +468 -0
  367. package/src/components/MessageBubble/Message.tsx +146 -87
  368. package/src/components/MessageBubble/MessageInteractions.tsx +213 -12
  369. package/src/components/MessageBubble/MessageReaction.tsx +120 -96
  370. package/src/components/MessageBubble/MessageReply.tsx +65 -32
  371. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +4 -0
  372. package/src/components/Modals/Modal/Modal.tsx +32 -1
  373. package/src/components/Modals/Modal/SwipeBackLayer.tsx +221 -0
  374. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +29 -8
  375. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +6 -3
  376. package/src/components/RoomComponents/ChatRoomItem.tsx +11 -4
  377. package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +7 -8
  378. package/src/components/Thread/ThreadWrapper.tsx +274 -198
  379. package/src/components/styled/DateLabel.tsx +7 -3
  380. package/src/context/MessageNotificationContext.tsx +205 -7
  381. package/src/context/xmppProvider.tsx +29 -9
  382. package/src/helpers/createRoomFromApi.tsx +37 -1
  383. package/src/helpers/emoji.ts +39 -0
  384. package/src/helpers/haptics.ts +19 -0
  385. package/src/helpers/historyPreloadScheduler.ts +37 -69
  386. package/src/helpers/insertMessageWithDelimiter.ts +23 -16
  387. package/src/helpers/keyboardLayout.ts +26 -0
  388. package/src/helpers/mamReactions.ts +59 -0
  389. package/src/helpers/parseMessageReference.ts +38 -0
  390. package/src/helpers/reactionsConfig.ts +13 -0
  391. package/src/helpers/updateMessagesTillLast.tsx +14 -2
  392. package/src/hooks/useHeapSender.tsx +3 -2
  393. package/src/hooks/useMessageHeapState.tsx +6 -2
  394. package/src/hooks/useRoomInitialization.tsx +32 -15
  395. package/src/hooks/useSendMessage.tsx +18 -11
  396. package/src/hooks/useUnreadMessagesCounter.ts +1 -1
  397. package/src/networking/stanzaHandlers.ts +116 -60
  398. package/src/networking/xmpp/getHistory.xmpp.ts +44 -106
  399. package/src/networking/xmpp/handleStanzas.xmpp.ts +2 -0
  400. package/src/networking/xmpp/mamRouter.ts +176 -0
  401. package/src/networking/xmpp/presenceInRoom.xmpp.ts +46 -3
  402. package/src/networking/xmppClient.ts +105 -20
  403. package/src/roomStore/Middleware/newMessageMidlleware.tsx +35 -38
  404. package/src/roomStore/Middleware/perfMiddleware.ts +50 -0
  405. package/src/roomStore/Middleware/reactionsMiddleware.tsx +53 -52
  406. package/src/roomStore/Middleware/unreadMidlleware.tsx +92 -80
  407. package/src/roomStore/index.ts +28 -27
  408. package/src/roomStore/persistBackend.ts +96 -0
  409. package/src/roomStore/persistence.ts +280 -73
  410. package/src/roomStore/roomsSlice.ts +304 -155
  411. package/src/theme/theme.ts +10 -1
  412. package/src/types/models/message.model.ts +4 -0
  413. package/src/types/models/room.model.ts +17 -0
  414. package/src/types/models/xmpp.model.ts +4 -2
  415. package/src/types/types.ts +15 -3
  416. package/src/utils/devLogger.ts +16 -0
  417. package/src/version.ts +1 -1
@@ -13,6 +13,9 @@ import { msgSortableMs } from '../helpers/msgSortableMs';
13
13
  // page backward arbitrarily far without instantly losing what they
14
14
  // just fetched. After cap eviction we drop from the head (oldest).
15
15
  export const RUNTIME_MESSAGE_LIMIT = 100;
16
+ /** One preload page: "N+" badges only ever mean "at least this many". */
17
+ export const UNREAD_CAP_PAGE = 10;
18
+ export const RUNTIME_MESSAGE_CEILING = 2000;
16
19
 
17
20
  // Body strings the server uses for call signaling broadcasts (call-token,
18
21
  // call-state ringing/ended, etc). These should never reach the chat
@@ -96,11 +99,168 @@ const collapseCallLogDuplicates = messages => {
96
99
  return callId ? byCallId.get(callId) || message : message;
97
100
  });
98
101
  };
99
- const enforceMessageCap = messages => {
102
+ const NO_GROWTH = {
103
+ grew: false,
104
+ atHead: false
105
+ };
106
+ const insertRoomMessage = (state, roomJID, message, start) => {
107
+ if (isCallSignalMessage(message)) {
108
+ return NO_GROWTH;
109
+ }
110
+ if (!state.rooms[roomJID]) {
111
+ return NO_GROWTH;
112
+ }
113
+ if (!state.rooms[roomJID].messages) {
114
+ state.rooms[roomJID].messages = [];
115
+ }
116
+ const roomMessages = state.rooms[roomJID].messages;
117
+ const incomingCallLog = message.callLog;
118
+ if (incomingCallLog?.callId) {
119
+ const existingCallIdx = roomMessages.findIndex(msg => msg.callLog?.callId === incomingCallLog.callId);
120
+ if (existingCallIdx !== -1) {
121
+ const existing = roomMessages[existingCallIdx];
122
+ const merged = mergeCallLogEntries(existing, message);
123
+ if (merged !== existing) {
124
+ roomMessages[existingCallIdx] = merged;
125
+ }
126
+ return NO_GROWTH;
127
+ }
128
+ }
129
+ takePendingReactions(state, roomJID, message);
130
+ const lengthBefore = roomMessages.length;
131
+ const tailBefore = roomMessages[lengthBefore - 1];
132
+ if (roomMessages.length === 0 || start) {
133
+ roomMessages.unshift(message);
134
+ } else {
135
+ const lastViewedValue = state.rooms[roomJID].lastViewedTimestamp;
136
+ const lastViewedTimestamp = state.visibleRoomJID === roomJID ? null : lastViewedValue ? lastViewedValue : null;
137
+ insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp);
138
+ }
139
+ const grew = roomMessages.length > lengthBefore;
140
+ const atHead = grew && lengthBefore > 0 && roomMessages[roomMessages.length - 1] === tailBefore;
141
+ return {
142
+ grew,
143
+ atHead
144
+ };
145
+ };
146
+ const capAfterGrowth = (messages, lengthBefore, atHead) => {
147
+ if (atHead) {
148
+ enforceMessageCap(messages, RUNTIME_MESSAGE_CEILING);
149
+ return;
150
+ }
151
+ enforceMessageCap(messages, Math.min(RUNTIME_MESSAGE_CEILING, Math.max(RUNTIME_MESSAGE_LIMIT, lengthBefore)));
152
+ };
153
+ const bumpLastMessageTimestamp = (state, roomJID, message) => {
154
+ const room = state.rooms[roomJID];
155
+ if (!room || message?.id === 'delimiter-new') {
156
+ return;
157
+ }
158
+ const ts = Number(message?.id);
159
+ if (!Number.isFinite(ts)) {
160
+ return;
161
+ }
162
+ if ((room.lastMessageTimestamp ?? 0) <= ts) {
163
+ room.lastMessageTimestamp = ts;
164
+ }
165
+ };
166
+ const upsertRoom = (state, roomData) => {
167
+ const existing = state.rooms[roomData.jid];
168
+ let lastViewed;
169
+ const serverMarker = state.privateStoreMarkers?.[roomData.jid] || 0;
170
+ if (roomData.lastViewedTimestamp != null && roomData.lastViewedTimestamp !== 0) {
171
+ lastViewed = roomData.lastViewedTimestamp;
172
+ } else if (existing?.lastViewedTimestamp != null && existing.lastViewedTimestamp > 0) {
173
+ lastViewed = existing.lastViewedTimestamp;
174
+ } else if (serverMarker > 0) {
175
+ lastViewed = serverMarker;
176
+ } else {
177
+ const msgs = roomData.messages || [];
178
+ let newest = 0;
179
+ for (const m of msgs) {
180
+ const t = m?.messageTimestampMs || (m?.date ? new Date(m.date).getTime() : 0);
181
+ if (t > newest) {
182
+ newest = t;
183
+ }
184
+ }
185
+ lastViewed = newest; // 0 if no messages → cold-start safe
186
+ }
187
+ const incomingMessages = Array.isArray(roomData.messages) ? roomData.messages : [];
188
+ const existingMessages = Array.isArray(existing?.messages) ? existing.messages : [];
189
+ state.rooms[roomData.jid] = {
190
+ ...roomData,
191
+ icon: roomData.icon !== undefined ? roomData.icon : existing?.icon,
192
+ roomBg: roomData.roomBg !== undefined ? roomData.roomBg : existing?.roomBg,
193
+ messages: existingMessages.length > 0 ? existingMessages : incomingMessages,
194
+ lastViewedTimestamp: lastViewed,
195
+ unreadMessages: roomData.unreadMessages ?? existing?.unreadMessages ?? 0,
196
+ unreadBaselineTimestamp: existing?.unreadBaselineTimestamp ?? existing?.lastViewedTimestamp ?? roomData.unreadBaselineTimestamp ?? 0
197
+ };
198
+ };
199
+
200
+ /** Order two numeric stanza ids (microsecond timestamps, too long for a
201
+ * double) without BigInt: by length, then lexicographically. */
202
+ export const compareStanzaIds = (a, b) => a.length !== b.length ? a.length - b.length : a < b ? -1 : a > b ? 1 : 0;
203
+ export const applyReactionToMessage = (message, from, reactions, data, ts) => {
204
+ const fromId = String(from || '').split('/')[0].split('@')[0];
205
+ if (!fromId) {
206
+ return;
207
+ }
208
+ const list = (reactions || []).filter(r => !!r);
209
+ const current = {
210
+ ...(message.reaction || {})
211
+ };
212
+ const prev = current[fromId];
213
+ // An older reaction (from a history page loaded after a newer one) never
214
+ // overwrites what is already known.
215
+ if (ts && prev?.ts && compareStanzaIds(ts, prev.ts) < 0) {
216
+ return;
217
+ }
218
+ if (list.length === 0) {
219
+ if (ts) {
220
+ // Keep a "removed" marker so an older reaction can't come back.
221
+ current[fromId] = {
222
+ emoji: [],
223
+ data: data || {},
224
+ ts
225
+ };
226
+ } else {
227
+ delete current[fromId];
228
+ }
229
+ } else {
230
+ current[fromId] = {
231
+ emoji: list,
232
+ data: data || {},
233
+ ...(ts ? {
234
+ ts
235
+ } : {})
236
+ };
237
+ }
238
+ const anyShown = Object.values(current).some(r => r?.emoji?.length);
239
+ message.reaction = anyShown || Object.keys(current).length ? current : undefined;
240
+ };
241
+ /** Reactions whose message is not loaded yet — applied when it arrives. */
242
+ const takePendingReactions = (state, roomJID, message) => {
243
+ const byMessage = state.pendingReactions?.[roomJID];
244
+ if (!byMessage) {
245
+ return;
246
+ }
247
+ const keys = [String(message.id), message.xmppId ? String(message.xmppId) : ''];
248
+ for (const key of keys) {
249
+ const list = key ? byMessage[key] : undefined;
250
+ if (!list) {
251
+ continue;
252
+ }
253
+ for (const r of list) {
254
+ applyReactionToMessage(message, r.from, r.reactions, r.data, r.ts);
255
+ }
256
+ delete byMessage[key];
257
+ }
258
+ };
259
+ const enforceMessageCap = (messages, limit = RUNTIME_MESSAGE_LIMIT) => {
100
260
  // Trim oldest until we're at/under the limit. Mutates in place
101
261
  // (immer-compatible inside reducers).
102
- while (messages.length > RUNTIME_MESSAGE_LIMIT) {
103
- messages.shift();
262
+ if (messages.length > limit) {
263
+ messages.splice(0, messages.length - limit);
104
264
  }
105
265
  };
106
266
 
@@ -179,10 +339,24 @@ function mergeHistoryIntoCache(existing, fetched) {
179
339
  // body). Preserve `isEdited` from the cached copy so a message edited
180
340
  // before reload keeps its marker instead of losing it on history sync.
181
341
  const prev = byId.get(String(m.id));
182
- byId.set(String(m.id), prev?.isEdited && !m.isEdited ? {
342
+ let next = prev?.isEdited && !m.isEdited ? {
183
343
  ...m,
184
344
  isEdited: true
185
- } : m);
345
+ } : m;
346
+ if (prev?.reaction && !next.reaction) {
347
+ next = {
348
+ ...next,
349
+ reaction: prev.reaction
350
+ };
351
+ }
352
+ // A history merge must not close a thread the user has open.
353
+ if (prev?.activeMessage && !next.activeMessage) {
354
+ next = {
355
+ ...next,
356
+ activeMessage: true
357
+ };
358
+ }
359
+ byId.set(String(m.id), next);
186
360
  }
187
361
  const merged = collapseCallLogDuplicates(Array.from(byId.values()).sort(byMs));
188
362
  return [...capTail(merged), ...pending];
@@ -201,7 +375,8 @@ const initialState = {
201
375
  },
202
376
  pendingNotificationJid: null,
203
377
  privateStoreMarkers: {},
204
- readBoundaries: {}
378
+ readBoundaries: {},
379
+ pendingReactions: {}
205
380
  };
206
381
  const isValidRoomJid = jid => {
207
382
  if (typeof jid !== 'string' || !jid) return false;
@@ -226,74 +401,33 @@ export const addRoomViaApi = createAsyncThunk('roomMessages/addRoomViaApi', asyn
226
401
  // emitted .d.ts (TS4023). See chatSettingsSlice.ts for the same pattern.
227
402
  const reducers = {
228
403
  addRoom(state, action) {
229
- const {
230
- roomData
231
- } = action.payload;
232
- const existing = state.rooms[roomData.jid];
233
- // Default-marker resolution (cold-start unread bug):
234
- // 1. Explicit value on the payload wins.
235
- // 2. Existing redux value wins (preserves persisted/hydrated
236
- // markers when the privateStore pull lands before
237
- // /chats/my).
238
- // 3. Otherwise, anchor to the *newest known message* in the
239
- // payload — this marks everything currently in the room
240
- // as "seen" but lets any NEWER incoming message count as
241
- // unread. Previously this fell back to `Date.now()`, which
242
- // stamped a future-leaning marker that hid genuinely-new
243
- // messages received while the app was closed.
244
- // 4. If there are no messages at all yet, stamp `0` (=
245
- // "unknown — let the privateStore hydration set the real
246
- // marker before any future message arrives").
247
- let lastViewed;
248
- // Treat an incoming `0` as "unset". stanzaHandlers' addRoom passes
249
- // `lastViewedTimestamp: 0` as a placeholder; the old `!= null` check
250
- // let that 0 win and OVERWROTE the persisted/hydrated marker from
251
- // the previous session, so cold-start showed no unread badge for
252
- // messages received while the app was closed (bug #19/#20). A real
253
- // (non-zero) explicit value still wins; otherwise keep the existing
254
- // value; otherwise fall back to the server-side read marker fetched
255
- // from the private store (so a room the user has NEVER opened this
256
- // session still gets a real baseline — without it the unread
257
- // middleware's `lastViewedTimestamp > 0` gate skipped the room
258
- // forever and the badge never lit up); otherwise anchor to the
259
- // newest message in the payload.
260
- const serverMarker = state.privateStoreMarkers?.[roomData.jid] || 0;
261
- if (roomData.lastViewedTimestamp != null && roomData.lastViewedTimestamp !== 0) {
262
- lastViewed = roomData.lastViewedTimestamp;
263
- } else if (existing?.lastViewedTimestamp != null && existing.lastViewedTimestamp > 0) {
264
- lastViewed = existing.lastViewedTimestamp;
265
- } else if (serverMarker > 0) {
266
- lastViewed = serverMarker;
267
- } else {
268
- const msgs = roomData.messages || [];
269
- let newest = 0;
270
- for (const m of msgs) {
271
- const t = m?.messageTimestampMs || (m?.date ? new Date(m.date).getTime() : 0);
272
- if (t > newest) {
273
- newest = t;
274
- }
404
+ upsertRoom(state, action.payload.roomData);
405
+ },
406
+ setUnreadCounts(state, action) {
407
+ for (const [jid, count] of Object.entries(action.payload || {})) {
408
+ const room = state.rooms[jid];
409
+ if (!room) {
410
+ continue;
275
411
  }
276
- lastViewed = newest; // 0 if no messages → cold-start safe
277
- }
278
- // Preserve cached messages + unread when the incoming room carries
279
- // none. The /chats/my fetch (rooms.api) builds rooms with
280
- // `messages: []` and no unread; without this guard, re-entering the
281
- // app replaced every cached room with an empty one — wiping history
282
- // AND the unread badge before the history scheduler could re-merge
283
- // (the user's "it clears cache, unread and messages" bug). New rooms
284
- // (no existing) fall through to the incoming values. Mirrors
285
- // addRoomFromApi's preservation.
286
- const incomingMessages = Array.isArray(roomData.messages) ? roomData.messages : [];
287
- const existingMessages = Array.isArray(existing?.messages) ? existing.messages : [];
288
- state.rooms[roomData.jid] = {
289
- ...roomData,
290
- icon: roomData.icon !== undefined ? roomData.icon : existing?.icon,
291
- roomBg: roomData.roomBg !== undefined ? roomData.roomBg : existing?.roomBg,
292
- messages: existingMessages.length > 0 ? existingMessages : incomingMessages,
293
- lastViewedTimestamp: lastViewed,
294
- unreadMessages: roomData.unreadMessages ?? existing?.unreadMessages ?? 0,
295
- unreadBaselineTimestamp: existing?.unreadBaselineTimestamp ?? existing?.lastViewedTimestamp ?? roomData.unreadBaselineTimestamp ?? 0
296
- };
412
+ if (room.unreadMessages !== count) {
413
+ room.unreadMessages = count;
414
+ }
415
+ // "N+" only means "a whole page was unread"; an exact count below a
416
+ // page (or read to zero) settles it.
417
+ if (room.unreadCapped && count < UNREAD_CAP_PAGE) {
418
+ room.unreadCapped = false;
419
+ }
420
+ }
421
+ },
422
+ /** Several rooms in one action — the cold-start rehydrate of the whole
423
+ * cache used to be one `addRoom` per room, each running every
424
+ * middleware over every room already added (O(rooms²)). */
425
+ addRooms(state, action) {
426
+ for (const roomData of action.payload.rooms || []) {
427
+ if (roomData?.jid) {
428
+ upsertRoom(state, roomData);
429
+ }
430
+ }
297
431
  },
298
432
  deleteRoom(state, action) {
299
433
  const {
@@ -356,6 +490,7 @@ const reducers = {
356
490
  room.messages.map(message => {
357
491
  if (message.id === messageId) {
358
492
  message.isDeleted = true;
493
+ message.reaction = undefined;
359
494
  }
360
495
  });
361
496
  },
@@ -395,67 +530,50 @@ const reducers = {
395
530
  message,
396
531
  start
397
532
  } = action.payload;
398
-
399
- // Call signaling broadcasts ("call-token", "call-state", etc.)
400
- // sometimes slip past the live XMPP filter (MAM history, mucsub
401
- // catch-up), drop them here so they never land in the transcript
402
- // or the room-list "last message" preview.
403
- if (isCallSignalMessage(message)) {
404
- return;
533
+ const lengthBefore = state.rooms[roomJID]?.messages?.length || 0;
534
+ const outcome = insertRoomMessage(state, roomJID, message, start);
535
+ if (outcome.grew) {
536
+ capAfterGrowth(state.rooms[roomJID].messages, lengthBefore, outcome.atHead);
405
537
  }
406
-
407
- // Guard against the "stanza arrived before /chats/my completed"
408
- // race — without this, the optional-chain `?.messages` falls
409
- // back to undefined, and the assignment below tries to set
410
- // `.messages` on undefined → TypeError. Caller can safely
411
- // ignore the message; the room will get its messages array on
412
- // `addRoom` when the API response lands.
413
- if (!state.rooms[roomJID]) {
538
+ bumpLastMessageTimestamp(state, roomJID, message);
539
+ },
540
+ /**
541
+ * A whole page of messages (a MAM history page) in ONE action: the same
542
+ * per-message insert as `addRoomMessage`, but the cap, the middleware
543
+ * chain and every subscriber run once per page instead of once per
544
+ * message.
545
+ */
546
+ addRoomMessages(state, action) {
547
+ const {
548
+ roomJID,
549
+ messages,
550
+ start
551
+ } = action.payload;
552
+ if (!state.rooms[roomJID] || !Array.isArray(messages)) {
414
553
  return;
415
554
  }
416
- if (!state.rooms[roomJID].messages) {
417
- state.rooms[roomJID].messages = [];
418
- }
419
- const roomMessages = state.rooms[roomJID].messages;
420
-
421
- // Collapse multiple call-state events for the same call into a single
422
- // log entry. Sources: the client-side fallback written at hangup (id
423
- // "calllog-<callId>", exists only locally) and the server broadcast(s),
424
- // which can fire once per participant leaving (earlier ones carry a
425
- // partial durationMs). Rules:
426
- // - the SERVER copy is canonical for identity (id/date/xmppId): its
427
- // archive id is what MAM and the catch-up anchor return later, so
428
- // keeping a local "calllog-" id around breaks anchor matching and
429
- // duplicates the entry on the next history merge;
430
- // - the LARGEST duration wins for display, so a 2-minute call doesn't
431
- // render as "2 sec".
432
- const incomingCallLog = message.callLog;
433
- if (incomingCallLog?.callId) {
434
- const existingCallIdx = roomMessages.findIndex(msg => msg.callLog?.callId === incomingCallLog.callId);
435
- if (existingCallIdx !== -1) {
436
- const existing = roomMessages[existingCallIdx];
437
- const merged = mergeCallLogEntries(existing, message);
438
- if (merged !== existing) {
439
- roomMessages[existingCallIdx] = merged;
555
+ const lengthBefore = state.rooms[roomJID].messages?.length || 0;
556
+ let grew = false;
557
+ let anyAtTail = false;
558
+ let newest;
559
+ for (const message of messages) {
560
+ const outcome = insertRoomMessage(state, roomJID, message, start);
561
+ if (outcome.grew) {
562
+ grew = true;
563
+ if (!outcome.atHead) {
564
+ anyAtTail = true;
440
565
  }
441
- return;
566
+ }
567
+ if (!newest || Number(message?.id) > Number(newest.id)) {
568
+ newest = message;
442
569
  }
443
570
  }
444
- const lengthBefore = roomMessages.length;
445
- if (roomMessages.length === 0 || start) {
446
- roomMessages.unshift(message);
447
- } else {
448
- const lastViewedValue = state.rooms[roomJID].lastViewedTimestamp;
449
- const lastViewedTimestamp = state.visibleRoomJID === roomJID ? null : lastViewedValue ? lastViewedValue : null;
450
- insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp);
571
+ if (grew) {
572
+ // A page that only prepended older history is never trimmed.
573
+ capAfterGrowth(state.rooms[roomJID].messages, lengthBefore, !anyAtTail);
451
574
  }
452
-
453
- // Apply the in-memory cap only when the array actually GREW
454
- // (i.e. this wasn't a dedupe/merge that left length unchanged).
455
- // Otherwise repeated echoes of the same message would chip away
456
- // at the oldest history for no reason.
457
- if (roomMessages.length > lengthBefore) {
458
- enforceMessageCap(roomMessages);
575
+ if (newest) {
576
+ bumpLastMessageTimestamp(state, roomJID, newest);
459
577
  }
460
578
  },
461
579
  deleteAllRooms(state) {
@@ -674,21 +792,38 @@ const reducers = {
674
792
  const {
675
793
  roomJID,
676
794
  messageId,
677
- reactions
795
+ reactions,
796
+ from,
797
+ data,
798
+ latestReactionTimestamp
678
799
  } = action.payload;
800
+ if (!from) {
801
+ return;
802
+ }
679
803
  const room = state.rooms[roomJID];
680
- if (!room?.messages) {
804
+ const target = room?.messages?.find(msg => msg?.id === messageId || msg?.xmppId === messageId);
805
+ if (target) {
806
+ applyReactionToMessage(target, from, reactions, data, latestReactionTimestamp);
681
807
  return;
682
808
  }
683
- for (const msg of room.messages) {
684
- if (msg?.id === messageId) {
685
- msg.reactions = reactions;
686
- break;
687
- }
809
+ // The message is not loaded (yet): keep the reaction for it.
810
+ if (!state.pendingReactions) {
811
+ state.pendingReactions = {};
812
+ }
813
+ const byMessage = state.pendingReactions[roomJID] ||= {};
814
+ const list = byMessage[messageId] ||= [];
815
+ if (list.length < 50) {
816
+ list.push({
817
+ from,
818
+ reactions,
819
+ data,
820
+ ts: latestReactionTimestamp
821
+ });
688
822
  }
689
823
  },
690
824
  setLogoutState: state => {
691
825
  state.rooms = {};
826
+ state.pendingReactions = {};
692
827
  state.activeRoomJID = null;
693
828
  state.visibleRoomJID = null;
694
829
  state.isLoading = false;
@@ -772,6 +907,9 @@ const reducers = {
772
907
  room.historyComplete = patch.historyComplete;
773
908
  }
774
909
  if (Array.isArray(patch.messages)) {
910
+ for (const m of patch.messages) {
911
+ takePendingReactions(state, patch.jid, m);
912
+ }
775
913
  // Merge the fetched page into cache by message id rather than
776
914
  // replacing — preserves older history + unread on re-entry. Only
777
915
  // a true gap (no overlapping id) clears this chat's cache. See
@@ -903,6 +1041,9 @@ export const {
903
1041
  deleteRoom,
904
1042
  updateRoom,
905
1043
  applyRoomsPreloadBatch,
1044
+ addRoomMessages,
1045
+ addRooms,
1046
+ setUnreadCounts,
906
1047
  setPendingNotificationJid,
907
1048
  clearPendingNotificationJid,
908
1049
  setReactions,
@@ -1 +1 @@
1
- {"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","msgSortableMs","RUNTIME_MESSAGE_LIMIT","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","enforceMessageCap","length","shift","mergeHistoryIntoCache","fetched","ex","fe","realExisting","m","pending","realFetched","fetchedKeys","byMs","capTail","arr","slice","existingIds","overlaps","some","sort","byId","prev","isEdited","merged","from","values","initialState","rooms","activeRoomJID","visibleRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","privateStoreMarkers","readBoundaries","isValidRoomJid","jid","includes","addRoomViaApi","room","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","state","action","roomData","payload","lastViewed","serverMarker","lastViewedTimestamp","msgs","newest","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","roomJID","capped","deleteRoomMessage","idx","findIndex","splice","isDeleted","setEditAction","editRoomMessage","addRoomMessage","start","roomMessages","incomingCallLog","existingCallIdx","msg","lengthBefore","unshift","lastViewedValue","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","Object","keys","ts","Number","isFinite","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setReadBoundary","clearReadBoundary","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","reactions","setLogoutState","setActiveMessage","activeMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","Math","max","unreadCapped","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","name","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","count","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","msgSortableMs","RUNTIME_MESSAGE_LIMIT","UNREAD_CAP_PAGE","RUNTIME_MESSAGE_CEILING","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","NO_GROWTH","grew","atHead","insertRoomMessage","state","roomJID","start","rooms","roomMessages","incomingCallLog","existingCallIdx","findIndex","msg","merged","takePendingReactions","lengthBefore","length","tailBefore","unshift","lastViewedValue","lastViewedTimestamp","visibleRoomJID","capAfterGrowth","enforceMessageCap","Math","min","max","bumpLastMessageTimestamp","room","ts","Number","isFinite","lastMessageTimestamp","upsertRoom","roomData","jid","lastViewed","serverMarker","privateStoreMarkers","msgs","newest","m","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","compareStanzaIds","applyReactionToMessage","from","reactions","data","fromId","split","list","r","current","reaction","prev","emoji","anyShown","Object","values","some","keys","byMessage","pendingReactions","key","limit","splice","mergeHistoryIntoCache","fetched","ex","fe","realExisting","pending","realFetched","fetchedKeys","byMs","capTail","arr","slice","existingIds","overlaps","sort","byId","next","isEdited","activeMessage","initialState","activeRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","readBoundaries","isValidRoomJid","includes","addRoomViaApi","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","action","payload","setUnreadCounts","count","entries","unreadCapped","addRooms","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","capped","deleteRoomMessage","idx","isDeleted","setEditAction","editRoomMessage","addRoomMessage","outcome","addRoomMessages","anyAtTail","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setReadBoundary","clearReadBoundary","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","latestReactionTimestamp","target","find","push","setLogoutState","setActiveMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","name","norm","s","v","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}