@ethora/chat-component-rn 26.5.16 → 26.5.18

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 (215) hide show
  1. package/lib/commonjs/assets/EmptyChatIllustration.js +106 -0
  2. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -0
  3. package/lib/commonjs/assets/icons.js +13 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +2 -1
  6. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -1
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js +5 -2
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js +9 -2
  12. package/lib/commonjs/components/MainComponents/ChooseChatMessage.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/EditWrapper.js +12 -4
  14. package/lib/commonjs/components/MainComponents/EditWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
  16. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  18. package/lib/commonjs/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  20. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +4 -0
  22. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/RoomList.js +2 -1
  24. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  25. package/lib/commonjs/components/MessageBubble/Avatar.js +16 -7
  26. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  27. package/lib/commonjs/components/MessageBubble/Message.js +16 -1
  28. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  29. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  30. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  31. package/lib/commonjs/components/styled/Button.js +4 -2
  32. package/lib/commonjs/components/styled/Button.js.map +1 -1
  33. package/lib/commonjs/components/styled/DateLabel.js +12 -4
  34. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  35. package/lib/commonjs/components/styled/SendInput.js +4 -3
  36. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  37. package/lib/commonjs/context/xmppProvider.js +12 -1
  38. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  39. package/lib/commonjs/helpers/getAvatarColor.js +33 -0
  40. package/lib/commonjs/helpers/getAvatarColor.js.map +1 -0
  41. package/lib/commonjs/helpers/getDateLabelColor.js +9 -0
  42. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -0
  43. package/lib/commonjs/helpers/getIconColor.js +9 -0
  44. package/lib/commonjs/helpers/getIconColor.js.map +1 -0
  45. package/lib/commonjs/helpers/getSenderNameColor.js +9 -0
  46. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -0
  47. package/lib/commonjs/helpers/historyPreloadScheduler.js +118 -113
  48. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  49. package/lib/commonjs/hooks/useChatFonts.js +137 -0
  50. package/lib/commonjs/hooks/useChatFonts.js.map +1 -0
  51. package/lib/commonjs/hooks/useSendMessage.js +72 -22
  52. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  53. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +4 -2
  54. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  55. package/lib/commonjs/main.js +7 -0
  56. package/lib/commonjs/main.js.map +1 -1
  57. package/lib/commonjs/networking/outboundQueue.js +22 -4
  58. package/lib/commonjs/networking/outboundQueue.js.map +1 -1
  59. package/lib/commonjs/networking/xmppClient.js +50 -0
  60. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  61. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +22 -0
  62. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  63. package/lib/commonjs/roomStore/roomsSlice.js +22 -2
  64. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  65. package/lib/module/assets/EmptyChatIllustration.js +99 -0
  66. package/lib/module/assets/EmptyChatIllustration.js.map +1 -0
  67. package/lib/module/assets/icons.js +13 -2
  68. package/lib/module/assets/icons.js.map +1 -1
  69. package/lib/module/components/DropdownMenu/DropdownMenu.js +2 -1
  70. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  71. package/lib/module/components/MainComponents/ChatHeader.js +2 -1
  72. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  73. package/lib/module/components/MainComponents/ChatRoom.js +5 -2
  74. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  75. package/lib/module/components/MainComponents/ChooseChatMessage.js +9 -2
  76. package/lib/module/components/MainComponents/ChooseChatMessage.js.map +1 -1
  77. package/lib/module/components/MainComponents/EditWrapper.js +12 -4
  78. package/lib/module/components/MainComponents/EditWrapper.js.map +1 -1
  79. package/lib/module/components/MainComponents/MessageList.js +2 -1
  80. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  81. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js +11 -3
  82. package/lib/module/components/MainComponents/NoMessagesPlaceholder.js.map +1 -1
  83. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +12 -7
  84. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  85. package/lib/module/components/MainComponents/ReduxWrapper.js +4 -0
  86. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  87. package/lib/module/components/MainComponents/RoomList.js +2 -1
  88. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  89. package/lib/module/components/MessageBubble/Avatar.js +16 -7
  90. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  91. package/lib/module/components/MessageBubble/Message.js +16 -1
  92. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  93. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +9 -0
  94. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  95. package/lib/module/components/styled/Button.js +4 -2
  96. package/lib/module/components/styled/Button.js.map +1 -1
  97. package/lib/module/components/styled/DateLabel.js +12 -4
  98. package/lib/module/components/styled/DateLabel.js.map +1 -1
  99. package/lib/module/components/styled/SendInput.js +4 -3
  100. package/lib/module/components/styled/SendInput.js.map +1 -1
  101. package/lib/module/context/xmppProvider.js +13 -2
  102. package/lib/module/context/xmppProvider.js.map +1 -1
  103. package/lib/module/helpers/getAvatarColor.js +28 -0
  104. package/lib/module/helpers/getAvatarColor.js.map +1 -0
  105. package/lib/module/helpers/getDateLabelColor.js +4 -0
  106. package/lib/module/helpers/getDateLabelColor.js.map +1 -0
  107. package/lib/module/helpers/getIconColor.js +4 -0
  108. package/lib/module/helpers/getIconColor.js.map +1 -0
  109. package/lib/module/helpers/getSenderNameColor.js +4 -0
  110. package/lib/module/helpers/getSenderNameColor.js.map +1 -0
  111. package/lib/module/helpers/historyPreloadScheduler.js +119 -114
  112. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  113. package/lib/module/hooks/useChatFonts.js +132 -0
  114. package/lib/module/hooks/useChatFonts.js.map +1 -0
  115. package/lib/module/hooks/useSendMessage.js +72 -22
  116. package/lib/module/hooks/useSendMessage.js.map +1 -1
  117. package/lib/module/hooks/useUnreadMessagesCounter.js +4 -2
  118. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  119. package/lib/module/main.js +2 -0
  120. package/lib/module/main.js.map +1 -1
  121. package/lib/module/networking/outboundQueue.js +21 -4
  122. package/lib/module/networking/outboundQueue.js.map +1 -1
  123. package/lib/module/networking/xmppClient.js +50 -0
  124. package/lib/module/networking/xmppClient.js.map +1 -1
  125. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +22 -0
  126. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  127. package/lib/module/roomStore/roomsSlice.js +20 -1
  128. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  129. package/lib/typescript/assets/EmptyChatIllustration.d.ts +10 -0
  130. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -0
  131. package/lib/typescript/assets/icons.d.ts +3 -12
  132. package/lib/typescript/assets/icons.d.ts.map +1 -1
  133. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  134. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  135. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  136. package/lib/typescript/components/MainComponents/ChooseChatMessage.d.ts.map +1 -1
  137. package/lib/typescript/components/MainComponents/EditWrapper.d.ts +5 -1
  138. package/lib/typescript/components/MainComponents/EditWrapper.d.ts.map +1 -1
  139. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  140. package/lib/typescript/components/MainComponents/NoMessagesPlaceholder.d.ts.map +1 -1
  141. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  142. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  143. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  144. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  145. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  146. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  147. package/lib/typescript/components/styled/Button.d.ts +1 -0
  148. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  149. package/lib/typescript/components/styled/DateLabel.d.ts +9 -8
  150. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  151. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  152. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  153. package/lib/typescript/helpers/getAvatarColor.d.ts +7 -0
  154. package/lib/typescript/helpers/getAvatarColor.d.ts.map +1 -0
  155. package/lib/typescript/helpers/getDateLabelColor.d.ts +8 -0
  156. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -0
  157. package/lib/typescript/helpers/getIconColor.d.ts +8 -0
  158. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -0
  159. package/lib/typescript/helpers/getSenderNameColor.d.ts +8 -0
  160. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -0
  161. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  162. package/lib/typescript/hooks/useChatFonts.d.ts +23 -0
  163. package/lib/typescript/hooks/useChatFonts.d.ts.map +1 -0
  164. package/lib/typescript/hooks/useSendMessage.d.ts +1 -1
  165. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  166. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  167. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  168. package/lib/typescript/main.d.ts +2 -1
  169. package/lib/typescript/main.d.ts.map +1 -1
  170. package/lib/typescript/networking/outboundQueue.d.ts +16 -1
  171. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
  172. package/lib/typescript/networking/xmppClient.d.ts +3 -0
  173. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  174. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  175. package/lib/typescript/roomStore/roomsSlice.d.ts +3 -1
  176. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  177. package/lib/typescript/types/models/message.model.d.ts +1 -0
  178. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  179. package/lib/typescript/types/types.d.ts +53 -0
  180. package/lib/typescript/types/types.d.ts.map +1 -1
  181. package/package.json +5 -1
  182. package/src/assets/EmptyChatIllustration.tsx +49 -0
  183. package/src/assets/icons.tsx +64 -81
  184. package/src/components/DropdownMenu/DropdownMenu.tsx +2 -1
  185. package/src/components/MainComponents/ChatHeader.tsx +2 -1
  186. package/src/components/MainComponents/ChatRoom.tsx +5 -2
  187. package/src/components/MainComponents/ChooseChatMessage.tsx +5 -2
  188. package/src/components/MainComponents/EditWrapper.tsx +9 -6
  189. package/src/components/MainComponents/MessageList.tsx +2 -1
  190. package/src/components/MainComponents/NoMessagesPlaceholder.tsx +4 -1
  191. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -7
  192. package/src/components/MainComponents/ReduxWrapper.tsx +4 -0
  193. package/src/components/MainComponents/RoomList.tsx +2 -1
  194. package/src/components/MessageBubble/Avatar.tsx +18 -9
  195. package/src/components/MessageBubble/Message.tsx +16 -1
  196. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +6 -0
  197. package/src/components/styled/Button.tsx +5 -1
  198. package/src/components/styled/DateLabel.tsx +10 -7
  199. package/src/components/styled/SendInput.tsx +4 -3
  200. package/src/context/xmppProvider.tsx +11 -1
  201. package/src/helpers/getAvatarColor.ts +31 -0
  202. package/src/helpers/getDateLabelColor.ts +3 -0
  203. package/src/helpers/getIconColor.ts +3 -0
  204. package/src/helpers/getSenderNameColor.ts +3 -0
  205. package/src/helpers/historyPreloadScheduler.ts +7 -1
  206. package/src/hooks/useChatFonts.ts +153 -0
  207. package/src/hooks/useSendMessage.tsx +101 -58
  208. package/src/hooks/useUnreadMessagesCounter.ts +5 -2
  209. package/src/main.ts +4 -0
  210. package/src/networking/outboundQueue.ts +25 -4
  211. package/src/networking/xmppClient.ts +47 -0
  212. package/src/roomStore/Middleware/newMessageMidlleware.tsx +25 -0
  213. package/src/roomStore/roomsSlice.ts +26 -1
  214. package/src/types/models/message.model.ts +3 -0
  215. package/src/types/types.ts +59 -1
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","dispatch","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,sBAAsB,EAAEC,gBAAgB,QAAQ,yBAAyB;AAuBlF,MAAMC,mBAAmB,GAAG,CAAC;AAC7B;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,EAAE;AAC5B,MAAMC,mBAAmB,GAAG,CAAC;AAE7B,MAAMC,KAAK,GAAIC,EAAU,IAAK,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC,CAAC;AAE/E,MAAMI,gBAAgB,GAAIC,CAAW,IAAa;EAChD,IAAI,CAACA,CAAC,EAAE;IAAC,OAAO,CAAC;EAAC;EAClB,MAAMC,CAAC,GAAID,CAAC,CAASE,SAAS;EAC9B,IAAIC,MAAM,CAACC,QAAQ,CAACH,CAAC,CAAC,IAAIA,CAAC,GAAG,CAAC,EAAE;IAAC,OAAOE,MAAM,CAACF,CAAC,CAAC;EAAC;EACnD,MAAMI,EAAE,GAAGF,MAAM,CAACH,CAAC,CAACK,EAAE,CAAC;EACvB,IAAIF,MAAM,CAACC,QAAQ,CAACC,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAE;IAAC,OAAOA,EAAE;EAAC;EAC9C,OAAO,CAAC;AACV,CAAC;AAED,MAAMC,wBAAwB,GAAIC,IAAW,IAAa;EACxD,IAAI,CAACA,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE;IAAC,OAAO,CAAC;EAAC;EACvC,OAAOF,IAAI,CAACC,QAAQ,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEX,CAAC,KAAKY,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEZ,gBAAgB,CAACC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAMa,mBAAmB,GAAGA,CAC1BN,IAAW,EACXC,QAAoB,EACpBM,QAAgB,KACJ;EACZ,IAAI,CAACP,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EACzB,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACC,MAAM,GAAGK,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAC3D,IAAIP,IAAI,CAACQ,eAAe,KAAK,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EAEjD,MAAMC,SAAS,GAAGR,QAAQ,CAACS,MAAM,CAC9BC,GAAG,IAAK,CAAC,CAACA,GAAG,IAAIA,GAAG,CAACb,EAAE,KAAK,eAAe,IAAI,CAACa,GAAG,CAACC,OACvD,CAAC;EACD,IAAIH,SAAS,CAACP,MAAM,GAAGK,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAE/C,MAAMM,UAAU,GAAGjB,MAAM,CAACI,IAAI,CAACc,mBAAmB,CAAC,IAAI,CAAC;EACxD,IAAID,UAAU,IAAI,CAAC,EAAE;IAAC,OAAO,IAAI;EAAC;EAElC,MAAME,QAAQ,GAAGN,SAAS,CAACN,MAAM,CAAS,CAACa,KAAK,EAAEvB,CAAC,KAAK;IACtD,MAAMwB,EAAE,GAAGzB,gBAAgB,CAACC,CAAC,CAAC;IAC9B,IAAI,CAACG,MAAM,CAACC,QAAQ,CAACoB,EAAE,CAAC,IAAIA,EAAE,IAAI,CAAC,EAAE;MAAC,OAAOD,KAAK;IAAC;IACnD,OAAOX,IAAI,CAACa,GAAG,CAACF,KAAK,EAAEC,EAAE,CAAC;EAC5B,CAAC,EAAErB,MAAM,CAACuB,gBAAgB,CAAC;EAC3B,IAAI,CAACvB,MAAM,CAACC,QAAQ,CAACkB,QAAQ,CAAC,IAAIA,QAAQ,KAAKnB,MAAM,CAACuB,gBAAgB,EACpE;IAAC,OAAO,KAAK;EAAC;EAChB,OAAOJ,QAAQ,GAAGF,UAAU;AAC9B,CAAC;AAED,MAAMO,eAAe,GAAGA,CACtBC,GAAW,EACXC,KAAY,EACZC,eAA8B,EAC9BC,eAA4B,KACjB;EACX,IAAID,eAAe,IAAIA,eAAe,KAAKF,GAAG,EAAE;IAAC,OAAO,CAAC;EAAC;EAC1D,IAAIG,eAAe,CAACC,GAAG,CAACJ,GAAG,CAAC,EAAE;IAAC,OAAO,CAAC;EAAC;EACxC,OAAO,CAAC;AACV,CAAC;AAED,MAAMK,wBAAwB,GAAGA,CAAA,KAAe;EAC9C,OAAO9C,QAAQ,CAAC+C,YAAY,KAAK,QAAQ;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAG,MACxCC,OAAuC,IACrB;EAClB,MAAM;IACJC,MAAM;IACNC,MAAM;IACNC,WAAW,GAAGhD,mBAAmB;IACjCuB,QAAQ,GAAGtB,iBAAiB;IAC5BgD,UAAU,GAAG/C,mBAAmB;IAChCgD,SAAS;IACTX,eAAe,GAAG,IAAI;IACtBC,eAAe,GAAG,EAAE;IACpBW,WAAW,GAAG;EAChB,CAAC,GAAGN,OAAO;EAEX,IAAIE,MAAM,EAAEK,OAAO,EAAE;IAAC;EAAO;EAE7BvD,KAAK,CAACwD,QAAQ,CAACtD,gBAAgB,CAAC,IAAI,CAAC,CAAC;EACtC,IAAI;IAEJ,MAAMuD,KAAK,GAAGzD,KAAK,CAAC0D,QAAQ,CAAC,CAAC;IAC9B,MAAMC,KAAK,GAAIF,KAAK,CAACE,KAAK,CAACA,KAAK,IAAI,CAAC,CAA2B;IAChE,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAClB,eAAe,CAAC;IAE3C,MAAMmB,WAAwB,GAAGC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CACnDM,GAAG,CAAC,CAAC,CAACzB,GAAG,EAAErB,IAAI,CAAkB,MAAM;MACtCqB,GAAG;MACH0B,QAAQ,EAAE3B,eAAe,CAACC,GAAG,EAAErB,IAAI,EAAEuB,eAAe,EAAEkB,UAAU,CAAC;MACjEO,aAAa,EAAEjD,wBAAwB,CAACC,IAAI,CAAC;MAC7CiD,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAEC,IAAI,CAACC,GAAG,CAAC;IACpB,CAAC,CAAC,CAAC,CACFC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACd,IAAID,CAAC,CAACP,QAAQ,KAAKQ,CAAC,CAACR,QAAQ,EAAE;QAAC,OAAOO,CAAC,CAACP,QAAQ,GAAGQ,CAAC,CAACR,QAAQ;MAAC;MAC/D,IAAIO,CAAC,CAACN,aAAa,KAAKO,CAAC,CAACP,aAAa,EAAE;QACvC,OAAOO,CAAC,CAACP,aAAa,GAAGM,CAAC,CAACN,aAAa;MAC1C;MACA,OAAOM,CAAC,CAACjC,GAAG,CAACmC,aAAa,CAACD,CAAC,CAAClC,GAAG,CAAC;IACnC,CAAC,CAAC;IAEJ,MAAMoC,KAAkB,GACtBvB,SAAS,IAAIA,SAAS,GAAG,CAAC,GACtBS,WAAW,CAACe,KAAK,CAAC,CAAC,EAAExB,SAAS,CAAC,GAC/BS,WAAW;IAEjB,MAAMgB,cAAc,GAAG,IAAIC,GAAG,CAAwB,CAAC;IACvD,IAAIC,qBAAqB,GAAG,CAAC;IAE7B,OAAOJ,KAAK,CAACvD,MAAM,GAAG,CAAC,EAAE;MACvB,IAAI6B,MAAM,EAAEK,OAAO,EAAE;QAAC;MAAO;MAE7B,IAAI,CAACN,MAAM,CAACgC,oBAAoB,CAAC,CAAC,EAAE;QAClC,MAAM3E,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MACA,IAAIuC,wBAAwB,CAAC,CAAC,EAAE;QAC9B,MAAMvC,KAAK,CAAC,GAAG,CAAC;QAChB;MACF;MAEA,MAAMiE,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;MACtB,MAAMW,UAAU,GAAGN,KAAK,CAAC/C,MAAM,CAC5BsD,IAAI,IAAKA,IAAI,CAACd,OAAO,IAAIE,GAAG,IAAI,CAACO,cAAc,CAAClC,GAAG,CAACuC,IAAI,CAAC3C,GAAG,CAC/D,CAAC;MACD,IAAI0C,UAAU,CAAC7D,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAMf,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MAEA,MAAM8E,KAAK,GAAGF,UAAU,CAACL,KAAK,CAAC,CAAC,EAAErD,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE4B,WAAW,CAAC,CAAC;;MAE3D;MACA;MACA;MACA;MACA;MACA;MACA,MAAMkC,yBAAyB,GAAG,IAAIN,GAAG,CACvCK,KAAK,CAACnB,GAAG,CAAEkB,IAAI,IAAK,CAClBA,IAAI,CAAC3C,GAAG,EACRxC,KAAK,CAAC0D,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC3C,GAAG,CAAC,EAAE8C,mBAAmB,CAC5D,CACH,CAAC;MAEDtF,KAAK,CAACwD,QAAQ,CACZvD,sBAAsB,CAAC;QACrB0D,KAAK,EAAEyB,KAAK,CAACnB,GAAG,CAAEkB,IAAI,KAAM;UAC1B3C,GAAG,EAAE2C,IAAI,CAAC3C,GAAG;UACb8C,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ,CAAC,CACH,CAAC;MAED,MAAM9E,OAAO,CAAC+E,GAAG,CACfH,KAAK,CAACnB,GAAG,CAAC,MAAOkB,IAAI,IAAK;QACxB,MAAMK,UAAU,GAAGZ,KAAK,CAACa,SAAS,CAAEC,MAAM,IAAKA,MAAM,CAAClD,GAAG,KAAK2C,IAAI,CAAC3C,GAAG,CAAC;QACvE,IAAIgD,UAAU,KAAK,CAAC,CAAC,EAAE;UAACZ,KAAK,CAACe,MAAM,CAACH,UAAU,EAAE,CAAC,CAAC;QAAC;QAEpD,MAAMI,IAAI,GAAG,CAAC,YAAY;UACxB,MAAMC,WAAW,GAAG7F,KAAK,CAAC0D,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC3C,GAAG,CAAC;UAC1D,MAAMsD,QAAQ,GAAGT,yBAAyB,CAACU,GAAG,CAACZ,IAAI,CAAC3C,GAAG,CAAC;UACxD,IACE,CAACqD,WAAW,IACX,CAACvC,WAAW,IAAIwC,QAAQ,KAAK,MAAO,EACrC;YACA9F,KAAK,CAACwD,QAAQ,CACZvD,sBAAsB,CAAC;cACrB0D,KAAK,EAAE,CAAC;gBAAEnB,GAAG,EAAE2C,IAAI,CAAC3C,GAAG;gBAAE8C,mBAAmB,EAAE;cAAO,CAAC;YACxD,CAAC,CACH,CAAC;YACD;UACF;UAEA,IAAI;YACF,MAAMU,eAAe,GAAG,MAAM/C,MAAM,CAACgD,gBAAgB,CACnDd,IAAI,CAAC3C,GAAG,EACRd,QAAQ,EACRwE,SAAS,EACTA,SAAS,EACT;cACEC,YAAY,EAAE,IAAI;cAClBC,eAAe,EAAE,CAAC9C,WAAW;cAC7B+C,MAAM,EAAE;YACV,CACF,CAAC;YACD,IAAInD,MAAM,EAAEK,OAAO,EAAE;cAAC;YAAO;YAC7B,IAAI,OAAOyC,eAAe,KAAK,WAAW,EAAE;cAC1C,MAAM,IAAIM,KAAK,CAAC,iBAAiB,CAAC;YACpC;YAEA,MAAMC,QAAQ,GAAGvG,KAAK,CAAC0D,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC3C,GAAG,CAAC;YACvD,MAAMgE,YAAY,GAAG/E,mBAAmB,CACtC8E,QAAQ,EACRP,eAAe,IAAI,EAAE,EACrBtE,QACF,CAAC;YAED1B,KAAK,CAACwD,QAAQ,CACZvD,sBAAsB,CAAC;cACrB0D,KAAK,EAAE,CACL;gBACEnB,GAAG,EAAE2C,IAAI,CAAC3C,GAAG;gBACbpB,QAAQ,EAAE4E,eAAe,IAAI,EAAE;gBAC/BQ,YAAY;gBACZlB,mBAAmB,EAAE;cACvB,CAAC;YAEL,CAAC,CACH,CAAC;YACDN,qBAAqB,GAAG,CAAC;UAC3B,CAAC,CAAC,MAAM;YACN,MAAMyB,OAAO,GAAGtB,IAAI,CAACf,QAAQ,GAAG,CAAC;YACjC,MAAMsC,QAAQ,GAAGD,OAAO,IAAIrD,UAAU;YACtC,IAAIsD,QAAQ,EAAE;cACZ,MAAMC,MAAM,GAAGnF,IAAI,CAACoF,KAAK,CAACpF,IAAI,CAACqF,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;cAC9C,MAAMC,OAAO,GAAGtF,IAAI,CAACa,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI8C,IAAI,CAACf,QAAQ,CAAC,GAAGuC,MAAM;cACjE/B,KAAK,CAACmC,IAAI,CAAC;gBACT,GAAG5B,IAAI;gBACPf,QAAQ,EAAEqC,OAAO;gBACjBpC,OAAO,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGuC;cACxB,CAAC,CAAC;YACJ,CAAC,MAAM;cACL9G,KAAK,CAACwD,QAAQ,CACZvD,sBAAsB,CAAC;gBACrB0D,KAAK,EAAE,CAAC;kBAAEnB,GAAG,EAAE2C,IAAI,CAAC3C,GAAG;kBAAE8C,mBAAmB,EAAE;gBAAQ,CAAC;cACzD,CAAC,CACH,CAAC;YACH;YACAN,qBAAqB,IAAI,CAAC;YAC1B,IAAIA,qBAAqB,IAAI,CAAC,EAAE;cAC9B,MAAM1E,KAAK,CAAC,GAAG,CAAC;cAChB0E,qBAAqB,GAAG,CAAC;YAC3B;UACF;QACF,CAAC,EAAE,CAAC;QAEJF,cAAc,CAACkC,GAAG,CAAC7B,IAAI,CAAC3C,GAAG,EAAEoD,IAAI,CAAC;QAClC,MAAMA,IAAI,CAACqB,OAAO,CAAC,MAAMnC,cAAc,CAACoC,MAAM,CAAC/B,IAAI,CAAC3C,GAAG,CAAC,CAAC;MAC3D,CAAC,CACH,CAAC;;MAED;MACA,MAAM,IAAIhC,OAAO,CAAE2G,CAAC,IAAKzG,UAAU,CAACyG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C;EACA,CAAC,SAAS;IACRnH,KAAK,CAACwD,QAAQ,CAACtD,gBAAgB,CAAC,KAAK,CAAC,CAAC;EACzC;AACF,CAAC;AAED,eAAe6C,0BAA0B","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useState } from 'react';
4
+ import { Text, TextInput } from 'react-native';
5
+ /**
6
+ * Loads and applies the host-provided font configuration for the chat UI.
7
+ *
8
+ * React Native has no web-style runtime `@font-face`, so a custom font must be
9
+ * registered with `expo-font` before it can be used. This hook:
10
+ * 1. loads every entry in `typography.fonts` via `expo-font` (remote URL or
11
+ * bundled `require(...)`), then
12
+ * 2. sets the resolved `fontFamily` as the default for all `<Text>` and
13
+ * `<TextInput>` rendered by the chat — mirroring how the web SDK sets a
14
+ * CSS variable. Individual components can still override per-style.
15
+ *
16
+ * `expo-font` is an optional peer dependency: if the host hasn't installed it,
17
+ * the hook degrades gracefully (font simply isn't loaded) instead of throwing.
18
+ *
19
+ * No-op when `typography` is undefined — the system font is kept, so existing
20
+ * integrations are unaffected.
21
+ *
22
+ * @returns `true` once fonts are ready (or when there's nothing to load), so
23
+ * callers can gate first paint to avoid a font "flash" if desired.
24
+ */
25
+ export function useChatFonts(typography) {
26
+ const [ready, setReady] = useState(!typography?.fonts?.length);
27
+ applyDefaultFont(typography);
28
+ useEffect(() => {
29
+ let cancelled = false;
30
+ async function load() {
31
+ // Apply the default family immediately so already-available fonts
32
+ // (system, or host-loaded) take effect without waiting on a download.
33
+ applyDefaultFont(typography);
34
+ if (!typography?.fonts?.length) {
35
+ setReady(true);
36
+ return;
37
+ }
38
+ try {
39
+ // Optional dependency — resolve lazily so apps that don't use custom
40
+ // fonts don't need expo-font installed.
41
+ const ExpoFont = await import('expo-font').catch(() => null);
42
+ if (!ExpoFont) {
43
+ if (!cancelled) setReady(true);
44
+ return;
45
+ }
46
+ const map = {};
47
+ for (const f of typography.fonts) map[f.family] = f.source;
48
+ await ExpoFont.loadAsync(map);
49
+ if (!cancelled) {
50
+ applyDefaultFont(typography);
51
+ setReady(true);
52
+ }
53
+ } catch {
54
+ // Loading failed (e.g. bad URL) — keep the fallback font, don't block UI.
55
+ if (!cancelled) setReady(true);
56
+ }
57
+ }
58
+ load();
59
+ return () => {
60
+ cancelled = true;
61
+ };
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, [typography?.fontFamily, JSON.stringify(typography?.fonts ?? []), JSON.stringify(typography?.weightFamilies ?? {})]);
64
+ return ready;
65
+ }
66
+
67
+ /**
68
+ * The family currently applied as the chat-wide default. Read at render time
69
+ * by the patched components below, so updating it (then triggering a re-render)
70
+ * restyles the whole tree.
71
+ */
72
+ let activeFamily;
73
+ function wrapFactory(orig) {
74
+ if (typeof orig !== 'function') return orig;
75
+ if (orig.__ethoraFontWrapped) return orig;
76
+ const wrapped = function (type, props, ...rest) {
77
+ if (activeFamily && props && (type === Text || type === TextInput)) {
78
+ props = {
79
+ ...props,
80
+ style: [{
81
+ fontFamily: activeFamily
82
+ }, props.style]
83
+ };
84
+ }
85
+ return orig.call(this, type, props, ...rest);
86
+ };
87
+ wrapped.__ethoraFontWrapped = true;
88
+ return wrapped;
89
+ }
90
+ let factoriesPatched = false;
91
+ function ensurePatched() {
92
+ if (factoriesPatched) return;
93
+ let any = false;
94
+ const patchMod = mod => {
95
+ if (!mod) return;
96
+ for (const fn of ['jsx', 'jsxs', 'jsxDEV']) {
97
+ if (typeof mod[fn] === 'function' && !mod[fn].__ethoraFontWrapped) {
98
+ mod[fn] = wrapFactory(mod[fn]);
99
+ any = true;
100
+ }
101
+ }
102
+ };
103
+ try {
104
+ patchMod(require('react/jsx-runtime'));
105
+ } catch {
106
+ /* ignore */
107
+ }
108
+ try {
109
+ patchMod(require('react/jsx-dev-runtime'));
110
+ } catch {
111
+ /* ignore */
112
+ }
113
+ try {
114
+ const React = require('react');
115
+ if (typeof React.createElement === 'function' && !React.createElement.__ethoraFontWrapped) {
116
+ React.createElement = wrapFactory(React.createElement);
117
+ any = true;
118
+ }
119
+ } catch {
120
+ /* ignore */
121
+ }
122
+ if (any) factoriesPatched = true;
123
+ }
124
+
125
+ /**
126
+ * Set (or clear) the chat-wide default font family.
127
+ */
128
+ function applyDefaultFont(typography) {
129
+ activeFamily = typography?.fontFamily;
130
+ if (activeFamily) ensurePatched();
131
+ }
132
+ //# sourceMappingURL=useChatFonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","Text","TextInput","useChatFonts","typography","ready","setReady","fonts","length","applyDefaultFont","cancelled","load","ExpoFont","catch","map","f","family","source","loadAsync","fontFamily","JSON","stringify","weightFamilies","activeFamily","wrapFactory","orig","__ethoraFontWrapped","wrapped","type","props","rest","style","call","factoriesPatched","ensurePatched","any","patchMod","mod","fn","require","React","createElement"],"sourceRoot":"../../../src","sources":["hooks/useChatFonts.ts"],"mappings":"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","ignoreList":[]}
@@ -16,11 +16,25 @@ import { useEventHandlers } from './useEventHandlers';
16
16
  // long after the optimistic dispatch, mark it failed so the bubble
17
17
  // flips out of the "sending..." state. Covers the silent-failure
18
18
  // case (e.g. device offline before the message ever made it to the
19
- // XMPP socket) — bug #18. Tuned generously so a brief network blip
20
- // followed by reconnect within 30s still resolves naturally via the
21
- // server echo.
19
+ // XMPP socket) — bug #18.
20
+ //
21
+ // 5s window: a brief network blip that reconnects inside this window
22
+ // still resolves on its own — the offline send is buffered in the
23
+ // outbound queue (OUTBOUND_QUEUE_TTL_MS, kept in lockstep) and replayed
24
+ // the moment the stream comes back, so the server echo flips the bubble
25
+ // to delivered. Only a drop that outlasts 5s flips it to "Failed → tap
26
+ // to retry". If a slow send completes just after the window, the
27
+ // delivery clears the failed flag (see newMessageMidlleware) so it
28
+ // doesn't get stuck showing "Failed".
22
29
  const PENDING_WATCHDOG_MS = 30_000;
23
30
 
31
+ // Media gets a longer window than text: the optimistic bubble appears before
32
+ // the file upload even starts, and a large file (up to the 50MB cap) over a
33
+ // slow link can legitimately take far longer than 5s to upload + send. Failing
34
+ // it at 5s mid-upload would flash a wrong "Failed" and let the user kick off a
35
+ // duplicate upload. The text watchdog stays at 5s per product spec.
36
+ const MEDIA_PENDING_WATCHDOG_MS = 30_000;
37
+
24
38
  // Monotonic counter for stanza ids. Bumped on each send within a single
25
39
  // process. Two rapid sends in the same millisecond used to collide on
26
40
  // `send-text-message-${Date.now()}`; that collision made
@@ -59,7 +73,7 @@ export const useSendMessage = _configOverride => {
59
73
  handleMessageRetry
60
74
  } = useEventHandlers(config);
61
75
  const failedMessages = useSelector(state => state.roomHeapSlice?.failedMessages || {});
62
- const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage) => {
76
+ const sendMessage = useCallback(async (message, activeRoomJID, isReply, isChecked, mainMessage, existingId) => {
63
77
  if (editAction?.isEdit) {
64
78
  try {
65
79
  client?.editMessageStanza(editAction.roomJid, editAction.messageId, message);
@@ -93,7 +107,7 @@ export const useSendMessage = _configOverride => {
93
107
  // dedupes by id and flips `pending: false` → DoubleTick renders.
94
108
  // Without this, the user taps send and sees nothing for ~200ms
95
109
  // until the echo lands, which feels broken.
96
- const optimisticId = nextStanzaId('send-text-message');
110
+ const optimisticId = existingId || nextStanzaId('send-text-message');
97
111
  const optimisticDate = new Date().toISOString();
98
112
  const selfId = user?.xmppUsername || user?.walletAddress || '';
99
113
  const optimisticMessage = {
@@ -114,7 +128,11 @@ export const useSendMessage = _configOverride => {
114
128
  name: `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || selfId
115
129
  }
116
130
  };
117
- if (!config?.disableSentLogic) {
131
+ // On retry (`existingId`) the original optimistic bubble is still in
132
+ // the room (pending:true) — clearMessageFailure just flipped it back out
133
+ // of the "failed" state — so re-adding would duplicate it. Only push a
134
+ // fresh bubble for a brand-new send.
135
+ if (!config?.disableSentLogic && !existingId) {
118
136
  dispatch(addRoomMessage({
119
137
  roomJID: activeRoomJID,
120
138
  message: optimisticMessage
@@ -150,26 +168,46 @@ export const useSendMessage = _configOverride => {
150
168
  }
151
169
  }, PENDING_WATCHDOG_MS);
152
170
  try {
153
- const effectiveClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
171
+ // The single send closure, used both for the immediate send and for
172
+ // the buffered replay. Passing the optimistic id as the stanza id
173
+ // means the server echoes it back with the same value, so the
174
+ // reducer's dedupe matches and the bubble flips pending → delivered
175
+ // in-place (rather than rendering a second copy).
176
+ const replaySend = c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
177
+
178
+ // Always buffer a copy BEFORE attempting the live send. The WebSocket
179
+ // can still read `status: 'online'` for a beat after the network
180
+ // actually drops (the WS error lands a moment later), so a stanza sent
181
+ // "while online" can vanish into a dying socket and never get echoed.
182
+ // Buffering every send means the onOnline reconnect flush replays
183
+ // anything that wasn't confirmed within the window. The server echo
184
+ // removes the entry (see newMessageMidlleware), so a healthy online
185
+ // send never actually replays — only genuinely-lost ones do.
186
+ enqueueOutboundSend({
187
+ optimisticId,
188
+ roomJID: activeRoomJID,
189
+ enqueuedAt: Date.now(),
190
+ send: replaySend
191
+ });
192
+
193
+ // Only treat a client as usable if its underlying stream is actually
194
+ // `online` — the instance survives a network drop with a stale
195
+ // 'connecting'/'offline' status, and sending through it would just
196
+ // lose the stanza.
197
+ const effectiveClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
154
198
  if (!effectiveClient) {
199
+ // No live stream — kick a reconnect; the buffered copy above is
200
+ // replayed by the onOnline flush once the stream is back.
155
201
  const anyClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
156
202
  try {
157
203
  anyClient?.forceReconnect?.();
158
204
  } catch {}
159
- enqueueOutboundSend({
160
- optimisticId,
161
- roomJID: activeRoomJID,
162
- enqueuedAt: Date.now(),
163
- send: c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId)
164
- });
165
205
  return;
166
206
  }
167
- // Pass the optimistic id as the stanza id so the server echoes
168
- // it back with the same value — the reducer's dedupe lookup
169
- // matches and the bubble flips from pending → delivered in-place
170
- // (instead of rendering two copies, which is what happens when
171
- // ids don't match).
172
- effectiveClient.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
207
+ replaySend(effectiveClient);
208
+ try {
209
+ effectiveClient.ensureStreamAlive?.();
210
+ } catch {}
173
211
  await handleMessageSent({
174
212
  message,
175
213
  roomJID: activeRoomJID,
@@ -309,7 +347,7 @@ export const useSendMessage = _configOverride => {
309
347
  messageType: 'media'
310
348
  });
311
349
  }
312
- }, PENDING_WATCHDOG_MS);
350
+ }, MEDIA_PENDING_WATCHDOG_MS);
313
351
 
314
352
  // Help RN's FormData polyfill build a proper multipart/file part
315
353
  // (instead of serialising the JS object as JSON). On iOS the
@@ -386,11 +424,17 @@ export const useSendMessage = _configOverride => {
386
424
  // Stanza id == placeholder id so the MUC echo's outer
387
425
  // <message id="..."> matches xmppId on the placeholder and
388
426
  // insertMessageWithDelimiter merges in place + flips pending.
389
- const effectiveMediaClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
427
+ // Same online-only guard as the text path: a surviving-but-offline
428
+ // client must NOT be used (the stanza would vanish into a dead
429
+ // socket) — fall through to enqueue so the reconnect flush replays.
430
+ const effectiveMediaClient = [client, getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
390
431
  if (effectiveMediaClient) {
391
432
  effectiveMediaClient.setActiveRoomJid?.(activeRoomJID);
392
433
  await Promise.resolve(effectiveMediaClient.prioritizeRoomPresence?.(activeRoomJID)).catch(() => false);
393
434
  effectiveMediaClient.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
435
+ try {
436
+ effectiveMediaClient.ensureStreamAlive?.();
437
+ } catch {}
394
438
  } else {
395
439
  const anyMediaClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
396
440
  try {
@@ -400,6 +444,9 @@ export const useSendMessage = _configOverride => {
400
444
  optimisticId: id,
401
445
  roomJID: activeRoomJID,
402
446
  enqueuedAt: Date.now(),
447
+ // Match the media watchdog so a reconnect within the (longer)
448
+ // media window still auto-replays the buffered stanza.
449
+ ttlMs: MEDIA_PENDING_WATCHDOG_MS,
403
450
  send: c => c.sendMediaMessageStanza(activeRoomJID, messagePayload, id)
404
451
  });
405
452
  }
@@ -480,7 +527,10 @@ export const useSendMessage = _configOverride => {
480
527
  messageType: payload.kind
481
528
  });
482
529
  if (payload.kind === 'text') {
483
- await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage);
530
+ await sendMessage(payload.body, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage,
531
+ // Re-use the failed message's id so the retry resends in place
532
+ // instead of spawning a duplicate bubble.
533
+ failedId);
484
534
  } else {
485
535
  await sendMedia(payload.data, payload.type, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage, failedId);
486
536
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","effectiveClient","c","status","anyClient","forceReconnect","enqueuedAt","send","clearTimeout","sendMedia","data","type","existingId","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","MEDIA_PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","existingId","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","replaySend","c","enqueuedAt","send","effectiveClient","status","anyClient","forceReconnect","ensureStreamAlive","clearTimeout","sendMedia","data","type","size","optimisticTimestamp","displayName","fileSizeStr","String","normalizedFileUri","uri","replace","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","setActiveRoomJid","Promise","resolve","prioritizeRoomPresence","catch","sendMediaMessageStanza","anyMediaClient","ttlMs","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,8 @@ export const useUnreadMessagesCounter = () => {
15
15
  // `rooms` slice reference stable across actions that don't touch it,
16
16
  // so non-rooms dispatches still don't trigger a re-render.)
17
17
  const subscribe = callback => store.subscribe(callback);
18
- const rooms = useSyncExternalStore(subscribe, () => store.getState().rooms.rooms);
18
+ const roomsState = useSyncExternalStore(subscribe, () => store.getState().rooms);
19
+ const rooms = roomsState.rooms;
19
20
  const unreadByRoom = {};
20
21
  let totalCount = 0;
21
22
  Object.entries(rooms).forEach(([roomJid, room]) => {
@@ -28,7 +29,8 @@ export const useUnreadMessagesCounter = () => {
28
29
  return {
29
30
  hasUnread: totalCount > 0,
30
31
  totalCount,
31
- unreadByRoom
32
+ unreadByRoom,
33
+ isLoading: !!roomsState.isUnreadSyncing || !!roomsState.isLoading
32
34
  };
33
35
  };
34
36
  export { useUnreadMessagesCounter as useUnread };
@@ -1 +1 @@
1
- {"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","rooms","getState","unreadByRoom","totalCount","Object","entries","forEach","roomJid","room","unreadCount","unreadMessages","hasUnread","useUnread"],"sourceRoot":"../../../src","sources":["hooks/useUnreadMessagesCounter.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,KAAK,QAAQ,cAAc;AAYpC,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAA2B;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,SAAS,GAAIC,QAAoB,IAAKH,KAAK,CAACE,SAAS,CAACC,QAAQ,CAAC;EAErE,MAAMC,KAAK,GAAGL,oBAAoB,CAChCG,SAAS,EACT,MAAMF,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACD,KAAK,CAACA,KAC/B,CAAC;EAED,MAAME,YAA+B,GAAG,CAAC,CAAC;EAC1C,IAAIC,UAAU,GAAG,CAAC;EAElBC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CAACM,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;IAClE,MAAMC,WAAW,GAAGD,IAAI,CAACE,cAAc,IAAI,CAAC;IAC5C,IAAID,WAAW,GAAG,CAAC,EAAE;MACnBP,YAAY,CAACK,OAAO,CAAC,GAAGE,WAAW;MACnCN,UAAU,IAAIM,WAAW;IAC3B;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,SAAS,EAAER,UAAU,GAAG,CAAC;IACzBA,UAAU;IACVD;EACF,CAAC;AACH,CAAC;AAED,SAASL,wBAAwB,IAAIe,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","roomsState","getState","rooms","unreadByRoom","totalCount","Object","entries","forEach","roomJid","room","unreadCount","unreadMessages","hasUnread","isLoading","isUnreadSyncing","useUnread"],"sourceRoot":"../../../src","sources":["hooks/useUnreadMessagesCounter.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,KAAK,QAAQ,cAAc;AAapC,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAA2B;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,SAAS,GAAIC,QAAoB,IAAKH,KAAK,CAACE,SAAS,CAACC,QAAQ,CAAC;EAErE,MAAMC,UAAU,GAAGL,oBAAoB,CACrCG,SAAS,EACT,MAAMF,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACC,KACzB,CAAC;EAED,MAAMA,KAAK,GAAGF,UAAU,CAACE,KAAK;EAC9B,MAAMC,YAA+B,GAAG,CAAC,CAAC;EAC1C,IAAIC,UAAU,GAAG,CAAC;EAElBC,MAAM,CAACC,OAAO,CAACJ,KAAK,CAAC,CAACK,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;IAClE,MAAMC,WAAW,GAAGD,IAAI,CAACE,cAAc,IAAI,CAAC;IAC5C,IAAID,WAAW,GAAG,CAAC,EAAE;MACnBP,YAAY,CAACK,OAAO,CAAC,GAAGE,WAAW;MACnCN,UAAU,IAAIM,WAAW;IAC3B;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,SAAS,EAAER,UAAU,GAAG,CAAC;IACzBA,UAAU;IACVD,YAAY;IACZU,SAAS,EAAE,CAAC,CAACb,UAAU,CAACc,eAAe,IAAI,CAAC,CAACd,UAAU,CAACa;EAC1D,CAAC;AACH,CAAC;AAED,SAAShB,wBAAwB,IAAIkB,SAAS","ignoreList":[]}
@@ -34,6 +34,8 @@ export { useChatRoomFocus } from './hooks/useChatRoomFocus';
34
34
  export { logoutService } from './hooks/useLogout';
35
35
  export { useQRCodeChat, handleQRChatId } from './hooks/useQRCodeChatHandler';
36
36
  export { resendMessage } from './utils/resendMessage';
37
+ // Font loader — exposed so hosts can also load the font outside <Chat> if needed.
38
+ export { useChatFonts } from './hooks/useChatFonts';
37
39
 
38
40
  // Public types — needed so consumers can type their `config` prop and
39
41
  // any event handlers they pass in.
@@ -1 +1 @@
1
- {"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA","ignoreList":[]}
1
+ {"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage","useChatFonts"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;AACrD;AACA,SAASC,YAAY,QAAQ,sBAAsB;;AAEnD;AACA","ignoreList":[]}
@@ -21,14 +21,15 @@
21
21
  * Each queued item carries a `send(client)` closure that captures the
22
22
  * original args (text or media), so flush is type-agnostic.
23
23
  *
24
- * TTL is deliberately aligned with the 30s pending-send watchdog in
24
+ * TTL is deliberately aligned with the pending-send watchdog in
25
25
  * useSendMessage (PENDING_WATCHDOG_MS): a queued item older than that has
26
26
  * already been — or is about to be — flipped to "Failed → tap to retry" by
27
27
  * the watchdog, so replaying it on a late reconnect would duplicate the
28
28
  * bubble. We drop those on flush and let the watchdog own the failure.
29
29
  */
30
30
 
31
- // Kept in lockstep with PENDING_WATCHDOG_MS in useSendMessage.
31
+ // Default replay window (text). Mirrors PENDING_WATCHDOG_MS in useSendMessage.
32
+ // Media enqueues a longer per-item ttlMs (see QueuedSend.ttlMs).
32
33
  export const OUTBOUND_QUEUE_TTL_MS = 30_000;
33
34
  let queue = [];
34
35
 
@@ -59,8 +60,8 @@ export function flushOutboundSends(client, now) {
59
60
  const pending = queue;
60
61
  queue = [];
61
62
  for (const item of pending) {
62
- if (now - item.enqueuedAt > OUTBOUND_QUEUE_TTL_MS) {
63
- // Stale — the 30s watchdog owns the failure; don't duplicate.
63
+ if (now - item.enqueuedAt > (item.ttlMs ?? OUTBOUND_QUEUE_TTL_MS)) {
64
+ // Stale — the send watchdog owns the failure; don't duplicate.
64
65
  continue;
65
66
  }
66
67
  try {
@@ -72,6 +73,22 @@ export function flushOutboundSends(client, now) {
72
73
  }
73
74
  }
74
75
 
76
+ /**
77
+ * Drop a single buffered send by its optimistic/stanza id. Called when a
78
+ * server-confirmed copy of the message arrives (see newMessageMidlleware):
79
+ * the send went through, so the buffered replay is no longer needed and must
80
+ * not fire on a later reconnect. No-op if the id isn't queued.
81
+ */
82
+ export function removeOutboundSend(optimisticId) {
83
+ if (!optimisticId) {
84
+ return;
85
+ }
86
+ const idx = queue.findIndex(q => q.optimisticId === optimisticId);
87
+ if (idx >= 0) {
88
+ queue.splice(idx, 1);
89
+ }
90
+ }
91
+
75
92
  /** Drop everything — called on permanent teardown (logout / close). */
76
93
  export function clearOutboundSends() {
77
94
  queue = [];
@@ -1 +1 @@
1
- {"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","send","err","console","warn","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAE3C,IAAIC,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,GAAGd,qBAAqB,EAAE;MACjD;MACA;IACF;IACA,IAAI;MACFG,IAAI,CAACY,IAAI,CAACL,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEf,IAAI,CAACI,YAAY,EAAES,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA,OAAO,SAASG,kBAAkBA,CAAA,EAAS;EACzClB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACA,OAAO,SAASmB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOnB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}
1
+ {"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","ttlMs","send","err","console","warn","removeOutboundSend","splice","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAyBA;AACA;AACA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAE3C,IAAIC,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,IAAIX,IAAI,CAACY,KAAK,IAAIf,qBAAqB,CAAC,EAAE;MACjE;MACA;IACF;IACA,IAAI;MACFG,IAAI,CAACa,IAAI,CAACN,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOO,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEhB,IAAI,CAACI,YAAY,EAAEU,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,kBAAkBA,CAACb,YAAoB,EAAQ;EAC7D,IAAI,CAACA,YAAY,EAAE;IAAC;EAAO;EAC3B,MAAMH,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKA,YAAY,CAAC;EACnE,IAAIH,GAAG,IAAI,CAAC,EAAE;IAACH,KAAK,CAACoB,MAAM,CAACjB,GAAG,EAAE,CAAC,CAAC;EAAC;AACtC;;AAEA;AACA,OAAO,SAASkB,kBAAkBA,CAAA,EAAS;EACzCrB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACA,OAAO,SAASsB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOtB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}