stream-chat-react-native-core 5.5.1 → 5.6.0-beta.1

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 (321) hide show
  1. package/lib/commonjs/components/Attachment/Gallery.js +21 -16
  2. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/GalleryImage.js +19 -3
  4. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  5. package/lib/commonjs/components/Channel/Channel.js +535 -149
  6. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  7. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  8. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  9. package/lib/commonjs/components/ChannelList/ChannelList.js +4 -15
  10. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  11. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
  12. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  13. package/lib/commonjs/components/Chat/Chat.js +16 -20
  14. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  15. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +2 -4
  16. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  17. package/lib/commonjs/components/Message/Message.js +21 -10
  18. package/lib/commonjs/components/Message/Message.js.map +1 -1
  19. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +14 -12
  20. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  21. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +9 -30
  22. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  23. package/lib/commonjs/components/Message/hooks/useMessageActions.js +21 -19
  24. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +28 -21
  26. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  27. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +23 -16
  28. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  29. package/lib/commonjs/components/MessageInput/MessageInput.js +39 -27
  30. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  31. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  32. package/lib/commonjs/components/MessageInput/SendButton.js.map +1 -1
  33. package/lib/commonjs/components/index.js +1 -14
  34. package/lib/commonjs/components/index.js.map +1 -1
  35. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  36. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  37. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +134 -86
  38. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  39. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  40. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  41. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  42. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  43. package/lib/commonjs/hooks/useTranslatedMessage.js +1 -1
  44. package/lib/commonjs/hooks/useTranslatedMessage.js.map +1 -1
  45. package/lib/commonjs/mock-builders/DB/mock.js +2 -2
  46. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  47. package/lib/commonjs/mock-builders/api/deleteMessage.js +20 -0
  48. package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -0
  49. package/lib/commonjs/mock-builders/api/deleteReaction.js +21 -0
  50. package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -0
  51. package/lib/commonjs/mock-builders/api/sendReaction.js +21 -0
  52. package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -0
  53. package/lib/commonjs/mock-builders/event/connectionChanged.js +2 -0
  54. package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
  55. package/lib/commonjs/store/QuickSqliteClient.js +40 -51
  56. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  57. package/lib/commonjs/store/apis/addPendingTask.js +37 -0
  58. package/lib/commonjs/store/apis/addPendingTask.js.map +1 -0
  59. package/lib/commonjs/store/apis/deleteMessage.js +26 -0
  60. package/lib/commonjs/store/apis/deleteMessage.js.map +1 -0
  61. package/lib/commonjs/store/apis/deletePendingTask.js +22 -0
  62. package/lib/commonjs/store/apis/deletePendingTask.js.map +1 -0
  63. package/lib/commonjs/store/apis/deleteReaction.js +30 -0
  64. package/lib/commonjs/store/apis/deleteReaction.js.map +1 -0
  65. package/lib/commonjs/store/apis/getChannelMessages.js +3 -3
  66. package/lib/commonjs/store/apis/getChannelMessages.js.map +1 -1
  67. package/lib/commonjs/store/apis/getChannels.js +1 -1
  68. package/lib/commonjs/store/apis/getChannels.js.map +1 -1
  69. package/lib/commonjs/store/apis/getPendingTasks.js +26 -0
  70. package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -0
  71. package/lib/commonjs/store/apis/index.js +13 -0
  72. package/lib/commonjs/store/apis/index.js.map +1 -1
  73. package/lib/commonjs/store/apis/insertReaction.js +28 -0
  74. package/lib/commonjs/store/apis/insertReaction.js.map +1 -0
  75. package/lib/commonjs/store/apis/updateMessage.js.map +1 -1
  76. package/lib/commonjs/store/apis/updateReaction.js.map +1 -1
  77. package/lib/commonjs/store/mappers/mapDateTimeToStorable.js.map +1 -1
  78. package/lib/commonjs/store/mappers/mapMessageToStorable.js +3 -1
  79. package/lib/commonjs/store/mappers/mapMessageToStorable.js.map +1 -1
  80. package/lib/commonjs/store/mappers/mapStorableToTask.js +23 -0
  81. package/lib/commonjs/store/mappers/mapStorableToTask.js.map +1 -0
  82. package/lib/commonjs/store/mappers/mapTaskToStorable.js +18 -0
  83. package/lib/commonjs/store/mappers/mapTaskToStorable.js.map +1 -0
  84. package/lib/commonjs/store/schema.js +11 -0
  85. package/lib/commonjs/store/schema.js.map +1 -1
  86. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js +24 -0
  87. package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  88. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js +1 -1
  89. package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  90. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js +8 -1
  91. package/lib/commonjs/store/sqlite-utils/createSelectQuery.js.map +1 -1
  92. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js +2 -2
  93. package/lib/commonjs/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  94. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js +1 -1
  95. package/lib/commonjs/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  96. package/lib/commonjs/utils/DBSyncManager.js +436 -0
  97. package/lib/commonjs/utils/DBSyncManager.js.map +1 -0
  98. package/lib/commonjs/utils/addReactionToLocalState.js +92 -0
  99. package/lib/commonjs/utils/addReactionToLocalState.js.map +1 -0
  100. package/lib/commonjs/utils/removeReactionFromLocalState.js +39 -0
  101. package/lib/commonjs/utils/removeReactionFromLocalState.js.map +1 -0
  102. package/lib/{module/components/Message → commonjs}/utils/removeReservedFields.js +1 -1
  103. package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
  104. package/lib/commonjs/utils/utils.js +9 -3
  105. package/lib/commonjs/utils/utils.js.map +1 -1
  106. package/lib/commonjs/version.json +1 -1
  107. package/lib/module/components/Attachment/Gallery.js +21 -16
  108. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  109. package/lib/module/components/Attachment/GalleryImage.js +19 -3
  110. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  111. package/lib/module/components/Channel/Channel.js +535 -149
  112. package/lib/module/components/Channel/Channel.js.map +1 -1
  113. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +6 -0
  114. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  115. package/lib/module/components/ChannelList/ChannelList.js +4 -15
  116. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  117. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +112 -38
  118. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  119. package/lib/module/components/Chat/Chat.js +16 -20
  120. package/lib/module/components/Chat/Chat.js.map +1 -1
  121. package/lib/module/components/Chat/hooks/useCreateChatContext.js +2 -4
  122. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  123. package/lib/module/components/Message/Message.js +21 -10
  124. package/lib/module/components/Message/Message.js.map +1 -1
  125. package/lib/module/components/Message/MessageSimple/MessageFooter.js +14 -12
  126. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  127. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +9 -30
  128. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -1
  129. package/lib/module/components/Message/hooks/useMessageActions.js +21 -19
  130. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  131. package/lib/module/components/MessageInput/FileUploadPreview.js +28 -21
  132. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  133. package/lib/module/components/MessageInput/ImageUploadPreview.js +23 -16
  134. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  135. package/lib/module/components/MessageInput/MessageInput.js +39 -27
  136. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  137. package/lib/module/components/MessageInput/SendButton.js +1 -1
  138. package/lib/module/components/MessageInput/SendButton.js.map +1 -1
  139. package/lib/module/components/index.js +1 -14
  140. package/lib/module/components/index.js.map +1 -1
  141. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  142. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  143. package/lib/module/contexts/messageInputContext/MessageInputContext.js +134 -86
  144. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  145. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  146. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  147. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  148. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  149. package/lib/module/hooks/useTranslatedMessage.js +1 -1
  150. package/lib/module/hooks/useTranslatedMessage.js.map +1 -1
  151. package/lib/module/mock-builders/DB/mock.js +2 -2
  152. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  153. package/lib/module/mock-builders/api/deleteMessage.js +20 -0
  154. package/lib/module/mock-builders/api/deleteMessage.js.map +1 -0
  155. package/lib/module/mock-builders/api/deleteReaction.js +21 -0
  156. package/lib/module/mock-builders/api/deleteReaction.js.map +1 -0
  157. package/lib/module/mock-builders/api/sendReaction.js +21 -0
  158. package/lib/module/mock-builders/api/sendReaction.js.map +1 -0
  159. package/lib/module/mock-builders/event/connectionChanged.js +2 -0
  160. package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
  161. package/lib/module/store/QuickSqliteClient.js +40 -51
  162. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  163. package/lib/module/store/apis/addPendingTask.js +37 -0
  164. package/lib/module/store/apis/addPendingTask.js.map +1 -0
  165. package/lib/module/store/apis/deleteMessage.js +26 -0
  166. package/lib/module/store/apis/deleteMessage.js.map +1 -0
  167. package/lib/module/store/apis/deletePendingTask.js +22 -0
  168. package/lib/module/store/apis/deletePendingTask.js.map +1 -0
  169. package/lib/module/store/apis/deleteReaction.js +30 -0
  170. package/lib/module/store/apis/deleteReaction.js.map +1 -0
  171. package/lib/module/store/apis/getChannelMessages.js +3 -3
  172. package/lib/module/store/apis/getChannelMessages.js.map +1 -1
  173. package/lib/module/store/apis/getChannels.js +1 -1
  174. package/lib/module/store/apis/getChannels.js.map +1 -1
  175. package/lib/module/store/apis/getPendingTasks.js +26 -0
  176. package/lib/module/store/apis/getPendingTasks.js.map +1 -0
  177. package/lib/module/store/apis/index.js +13 -0
  178. package/lib/module/store/apis/index.js.map +1 -1
  179. package/lib/module/store/apis/insertReaction.js +28 -0
  180. package/lib/module/store/apis/insertReaction.js.map +1 -0
  181. package/lib/module/store/apis/updateMessage.js.map +1 -1
  182. package/lib/module/store/apis/updateReaction.js.map +1 -1
  183. package/lib/module/store/mappers/mapDateTimeToStorable.js.map +1 -1
  184. package/lib/module/store/mappers/mapMessageToStorable.js +3 -1
  185. package/lib/module/store/mappers/mapMessageToStorable.js.map +1 -1
  186. package/lib/module/store/mappers/mapStorableToTask.js +23 -0
  187. package/lib/module/store/mappers/mapStorableToTask.js.map +1 -0
  188. package/lib/module/store/mappers/mapTaskToStorable.js +18 -0
  189. package/lib/module/store/mappers/mapTaskToStorable.js.map +1 -0
  190. package/lib/module/store/schema.js +11 -0
  191. package/lib/module/store/schema.js.map +1 -1
  192. package/lib/module/store/sqlite-utils/appendOrderByClause.js +24 -0
  193. package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -0
  194. package/lib/module/store/sqlite-utils/createCreateTableQuery.js +1 -1
  195. package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
  196. package/lib/module/store/sqlite-utils/createSelectQuery.js +8 -1
  197. package/lib/module/store/sqlite-utils/createSelectQuery.js.map +1 -1
  198. package/lib/module/store/sqlite-utils/createUpdateQuery.js +2 -2
  199. package/lib/module/store/sqlite-utils/createUpdateQuery.js.map +1 -1
  200. package/lib/module/store/sqlite-utils/createUpsertQuery.js +1 -1
  201. package/lib/module/store/sqlite-utils/createUpsertQuery.js.map +1 -1
  202. package/lib/module/utils/DBSyncManager.js +436 -0
  203. package/lib/module/utils/DBSyncManager.js.map +1 -0
  204. package/lib/module/utils/addReactionToLocalState.js +92 -0
  205. package/lib/module/utils/addReactionToLocalState.js.map +1 -0
  206. package/lib/module/utils/removeReactionFromLocalState.js +39 -0
  207. package/lib/module/utils/removeReactionFromLocalState.js.map +1 -0
  208. package/lib/{commonjs/components/Message → module}/utils/removeReservedFields.js +1 -1
  209. package/lib/module/utils/removeReservedFields.js.map +1 -0
  210. package/lib/module/utils/utils.js +9 -3
  211. package/lib/module/utils/utils.js.map +1 -1
  212. package/lib/module/version.json +1 -1
  213. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  214. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  215. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +2 -1
  216. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  217. package/lib/typescript/components/Message/Message.d.ts +1 -1
  218. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  219. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  220. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +2 -1
  221. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +2 -1
  222. package/lib/typescript/components/MessageInput/MessageInput.d.ts +2 -1
  223. package/lib/typescript/components/index.d.ts +1 -2
  224. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -2
  225. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  226. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -0
  227. package/lib/typescript/store/apis/addPendingTask.d.ts +2 -0
  228. package/lib/typescript/store/apis/deleteMessage.d.ts +4 -0
  229. package/lib/typescript/store/apis/deletePendingTask.d.ts +3 -0
  230. package/lib/typescript/store/apis/deleteReaction.d.ts +6 -0
  231. package/lib/typescript/store/apis/getChannelMessages.d.ts +1 -1
  232. package/lib/typescript/store/apis/getPendingTasks.d.ts +3 -0
  233. package/lib/typescript/store/apis/index.d.ts +1 -0
  234. package/lib/typescript/store/apis/insertReaction.d.ts +6 -0
  235. package/lib/typescript/store/apis/updateMessage.d.ts +2 -2
  236. package/lib/typescript/store/apis/updateReaction.d.ts +2 -2
  237. package/lib/typescript/store/mappers/mapDateTimeToStorable.d.ts +1 -1
  238. package/lib/typescript/store/mappers/mapMessageToStorable.d.ts +2 -2
  239. package/lib/typescript/store/mappers/mapStorableToTask.d.ts +2 -0
  240. package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +26 -0
  241. package/lib/typescript/store/schema.d.ts +12 -1
  242. package/lib/typescript/store/sqlite-utils/appendOrderByClause.d.ts +3 -0
  243. package/lib/typescript/store/sqlite-utils/createSelectQuery.d.ts +1 -1
  244. package/lib/typescript/store/types.d.ts +21 -0
  245. package/lib/typescript/types/types.d.ts +3 -1
  246. package/lib/typescript/utils/DBSyncManager.d.ts +47 -0
  247. package/lib/typescript/utils/addReactionToLocalState.d.ts +9 -0
  248. package/lib/typescript/utils/removeReactionFromLocalState.d.ts +8 -0
  249. package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
  250. package/lib/typescript/utils/utils.d.ts +3 -3
  251. package/package.json +4 -3
  252. package/src/__tests__/offline-feature.test.js +19 -2
  253. package/src/__tests__/optimistic-update.test.js +368 -0
  254. package/src/components/Attachment/Gallery.tsx +5 -1
  255. package/src/components/Attachment/GalleryImage.tsx +16 -2
  256. package/src/components/Channel/Channel.tsx +266 -57
  257. package/src/components/Channel/hooks/useCreateMessagesContext.ts +6 -0
  258. package/src/components/ChannelList/ChannelList.tsx +2 -10
  259. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
  260. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +76 -26
  261. package/src/components/Chat/Chat.tsx +5 -9
  262. package/src/components/Chat/__tests__/Chat.test.js +1 -1
  263. package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
  264. package/src/components/Message/Message.tsx +18 -2
  265. package/src/components/Message/MessageSimple/MessageFooter.tsx +2 -1
  266. package/src/components/Message/hooks/useMessageActionHandlers.ts +10 -21
  267. package/src/components/Message/hooks/useMessageActions.tsx +10 -5
  268. package/src/components/MessageInput/FileUploadPreview.tsx +7 -2
  269. package/src/components/MessageInput/ImageUploadPreview.tsx +7 -3
  270. package/src/components/MessageInput/MessageInput.tsx +17 -3
  271. package/src/components/MessageInput/SendButton.tsx +1 -1
  272. package/src/components/index.ts +1 -2
  273. package/src/contexts/chatContext/ChatContext.tsx +1 -2
  274. package/src/contexts/messageInputContext/MessageInputContext.tsx +95 -57
  275. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +29 -3
  276. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
  277. package/src/contexts/messagesContext/MessagesContext.tsx +4 -1
  278. package/src/hooks/useTranslatedMessage.ts +1 -1
  279. package/src/mock-builders/DB/mock.ts +2 -2
  280. package/src/mock-builders/api/deleteMessage.js +18 -0
  281. package/src/mock-builders/api/deleteReaction.js +19 -0
  282. package/src/mock-builders/api/sendReaction.tsx +19 -0
  283. package/src/mock-builders/event/connectionChanged.js +2 -1
  284. package/src/store/QuickSqliteClient.ts +39 -37
  285. package/src/store/apis/addPendingTask.ts +24 -0
  286. package/src/store/apis/deleteMessage.ts +13 -0
  287. package/src/store/apis/deletePendingTask.ts +12 -0
  288. package/src/store/apis/deleteReaction.ts +26 -0
  289. package/src/store/apis/getChannelMessages.ts +1 -1
  290. package/src/store/apis/getChannels.ts +2 -2
  291. package/src/store/apis/getPendingTasks.ts +13 -0
  292. package/src/store/apis/index.ts +1 -0
  293. package/src/store/apis/insertReaction.ts +29 -0
  294. package/src/store/apis/updateMessage.ts +2 -2
  295. package/src/store/apis/updateReaction.ts +2 -2
  296. package/src/store/mappers/mapDateTimeToStorable.ts +1 -1
  297. package/src/store/mappers/mapMessageToStorable.ts +8 -2
  298. package/src/store/mappers/mapStorableToTask.ts +13 -0
  299. package/src/store/mappers/mapTaskToStorable.ts +7 -0
  300. package/src/store/schema.ts +25 -1
  301. package/src/store/sqlite-utils/appendOrderByClause.ts +24 -0
  302. package/src/store/sqlite-utils/createCreateTableQuery.ts +2 -2
  303. package/src/store/sqlite-utils/createSelectQuery.ts +4 -1
  304. package/src/store/sqlite-utils/createUpdateQuery.ts +3 -2
  305. package/src/store/sqlite-utils/createUpsertQuery.ts +1 -1
  306. package/src/store/types.ts +28 -0
  307. package/src/types/types.ts +4 -1
  308. package/src/utils/DBSyncManager.ts +222 -0
  309. package/src/utils/addReactionToLocalState.ts +87 -0
  310. package/src/utils/removeReactionFromLocalState.ts +39 -0
  311. package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
  312. package/src/utils/utils.ts +14 -5
  313. package/src/version.json +1 -1
  314. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js +0 -171
  315. package/lib/commonjs/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  316. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
  317. package/lib/module/components/Chat/hooks/useConnectionRecovered.js +0 -171
  318. package/lib/module/components/Chat/hooks/useConnectionRecovered.js.map +0 -1
  319. package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
  320. package/lib/typescript/components/Chat/hooks/useConnectionRecovered.d.ts +0 -10
  321. package/src/components/Chat/hooks/useConnectionRecovered.ts +0 -92
@@ -27,6 +27,8 @@ var _debounce = _interopRequireDefault(require("lodash/debounce"));
27
27
 
28
28
  var _throttle = _interopRequireDefault(require("lodash/throttle"));
29
29
 
30
+ var _mimeTypes = require("mime-types");
31
+
30
32
  var _streamChat = require("stream-chat");
31
33
 
32
34
  var _useCreateChannelContext = require("./hooks/useCreateChannelContext");
@@ -75,6 +77,14 @@ var _icons = require("../../icons");
75
77
 
76
78
  var _native = require("../../native");
77
79
 
80
+ var dbApi = _interopRequireWildcard(require("../../store/apis"));
81
+
82
+ var _addReactionToLocalState = require("../../utils/addReactionToLocalState");
83
+
84
+ var _DBSyncManager = require("../../utils/DBSyncManager");
85
+
86
+ var _removeReactionFromLocalState = require("../../utils/removeReactionFromLocalState");
87
+
78
88
  var _utils = require("../../utils/utils");
79
89
 
80
90
  var _Attachment = require("../Attachment/Attachment");
@@ -188,7 +198,7 @@ var _OverlayReactionList = require("../MessageOverlay/OverlayReactionList");
188
198
  var _Reply = require("../Reply/Reply");
189
199
 
190
200
  var _excluded = ["attachments", "mentioned_users", "parent_id", "text"],
191
- _excluded2 = ["__html", "attachments", "created_at", "html", "id", "mentioned_users", "parent_id", "quoted_message", "reactions", "status", "text", "type", "updated_at", "user"];
201
+ _excluded2 = ["__html", "attachments", "created_at", "deleted_at", "html", "id", "latest_reactions", "mentioned_users", "own_reactions", "parent_id", "quoted_message", "reaction_counts", "reactions", "status", "text", "type", "updated_at", "user"];
192
202
 
193
203
  var _this = this,
194
204
  _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/Channel/Channel.tsx";
@@ -234,7 +244,7 @@ var debounceOptions = {
234
244
  };
235
245
 
236
246
  var ChannelWithContext = function ChannelWithContext(props) {
237
- var _client$user, _channel$data, _ref22, _ref23;
247
+ var _client$user, _channel$data, _ref26, _ref27;
238
248
 
239
249
  var additionalKeyboardAvoidingViewProps = props.additionalKeyboardAvoidingViewProps,
240
250
  additionalTextInputProps = props.additionalTextInputProps,
@@ -290,6 +300,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
290
300
  EmptyStateIndicator = _props$EmptyStateIndi === void 0 ? _EmptyStateIndicator.EmptyStateIndicator : _props$EmptyStateIndi,
291
301
  _props$enableMessageG = props.enableMessageGroupingByUser,
292
302
  enableMessageGroupingByUser = _props$enableMessageG === void 0 ? true : _props$enableMessageG,
303
+ enableOfflineSupport = props.enableOfflineSupport,
293
304
  _props$enforceUniqueR = props.enforceUniqueReaction,
294
305
  enforceUniqueReaction = _props$enforceUniqueR === void 0 ? false : _props$enforceUniqueR,
295
306
  _props$FileAttachment = props.FileAttachment,
@@ -649,18 +660,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
649
660
  }
650
661
  }, stateUpdateThrottleInterval, throttleOptions)).current;
651
662
 
652
- var connectionRecoveredHandler = function connectionRecoveredHandler() {
653
- if (channel && shouldSyncChannel) {
654
- copyChannelState();
655
-
656
- if (thread) {
657
- setThreadMessages((0, _toConsumableArray2["default"])(channel.state.threads[thread.id]));
658
- }
659
- }
660
- };
661
-
662
- var connectionChangedHandler = function connectionChangedHandler(event) {
663
- if (event.online && shouldSyncChannel) {
663
+ var connectionChangedHandler = function connectionChangedHandler() {
664
+ if (shouldSyncChannel) {
664
665
  resyncChannel();
665
666
  }
666
667
  };
@@ -697,8 +698,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
697
698
 
698
699
  var subscribe = function subscribe() {
699
700
  if (!channel) return;
700
- clientSubscriptions.push(client.on('connection.recovered', connectionRecoveredHandler));
701
- clientSubscriptions.push(client.on('connection.changed', connectionChangedHandler));
701
+ clientSubscriptions.push(_DBSyncManager.DBSyncManager.onSyncStatusChange(connectionChangedHandler));
702
702
  clientSubscriptions.push(client.on('channel.deleted', function (event) {
703
703
  if (event.cid === channel.cid) {
704
704
  setDeleted(true);
@@ -716,7 +716,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
716
716
  return s.unsubscribe();
717
717
  });
718
718
  };
719
- }, [channelId, connectionChangedHandler, connectionRecoveredHandler, handleEvent]);
719
+ }, [channelId, connectionChangedHandler, handleEvent]);
720
720
  var channelQueryCallRef = (0, _react.useRef)(function () {
721
721
  var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(queryCall) {
722
722
  var onAfterQueryCall,
@@ -1369,56 +1369,206 @@ var ChannelWithContext = function ChannelWithContext(props) {
1369
1369
  return preview;
1370
1370
  };
1371
1371
 
1372
- var sendMessageRequest = function () {
1373
- var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(message, retrying) {
1374
- var __html, attachments, created_at, html, id, mentioned_users, parent_id, quoted_message, reactions, status, text, type, updated_at, user, extraFields, messageData, messageResponse;
1372
+ var uploadPendingAttachments = function () {
1373
+ var _ref16 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee12(message) {
1374
+ var _updatedMessage$attac;
1375
+
1376
+ var updatedMessage, i, _updatedMessage$attac2, attachment, file, filename, contentType, uploadResponse, response;
1375
1377
 
1376
1378
  return _regenerator["default"].wrap(function _callee12$(_context12) {
1377
1379
  while (1) {
1378
1380
  switch (_context12.prev = _context12.next) {
1379
1381
  case 0:
1380
- __html = message.__html, attachments = message.attachments, created_at = message.created_at, html = message.html, id = message.id, mentioned_users = message.mentioned_users, parent_id = message.parent_id, quoted_message = message.quoted_message, reactions = message.reactions, status = message.status, text = message.text, type = message.type, updated_at = message.updated_at, user = message.user, extraFields = (0, _objectWithoutProperties2["default"])(message, _excluded2);
1381
- messageData = (0, _extends2["default"])({
1382
+ updatedMessage = (0, _extends2["default"])({}, message);
1383
+
1384
+ if (!((_updatedMessage$attac = updatedMessage.attachments) != null && _updatedMessage$attac.length)) {
1385
+ _context12.next = 40;
1386
+ break;
1387
+ }
1388
+
1389
+ i = 0;
1390
+
1391
+ case 3:
1392
+ if (!(i < ((_updatedMessage$attac2 = updatedMessage.attachments) == null ? void 0 : _updatedMessage$attac2.length))) {
1393
+ _context12.next = 40;
1394
+ break;
1395
+ }
1396
+
1397
+ attachment = updatedMessage.attachments[i];
1398
+ file = attachment.originalFile;
1399
+
1400
+ if (!(attachment.type === 'image' && file != null && file.uri && attachment.image_url && (0, _utils.isLocalUrl)(attachment.image_url))) {
1401
+ _context12.next = 22;
1402
+ break;
1403
+ }
1404
+
1405
+ filename = file.uri.replace(/^(file:\/\/|content:\/\/|assets-library:\/\/)/, '');
1406
+ contentType = (0, _mimeTypes.lookup)(filename) || 'multipart/form-data';
1407
+
1408
+ if (!doImageUploadRequest) {
1409
+ _context12.next = 15;
1410
+ break;
1411
+ }
1412
+
1413
+ _context12.next = 12;
1414
+ return doImageUploadRequest(file, channel);
1415
+
1416
+ case 12:
1417
+ _context12.t0 = _context12.sent;
1418
+ _context12.next = 18;
1419
+ break;
1420
+
1421
+ case 15:
1422
+ _context12.next = 17;
1423
+ return channel.sendImage(file == null ? void 0 : file.uri, filename, contentType);
1424
+
1425
+ case 17:
1426
+ _context12.t0 = _context12.sent;
1427
+
1428
+ case 18:
1429
+ uploadResponse = _context12.t0;
1430
+ attachment.image_url = uploadResponse.file;
1431
+ delete attachment.originalFile;
1432
+ dbApi.updateMessage({
1433
+ message: (0, _extends2["default"])({}, updatedMessage, {
1434
+ cid: channel.cid
1435
+ })
1436
+ });
1437
+
1438
+ case 22:
1439
+ if (!((attachment.type === 'file' || attachment.type === 'audio' || attachment.type === 'video') && attachment.asset_url && (0, _utils.isLocalUrl)(attachment.asset_url) && file != null && file.uri)) {
1440
+ _context12.next = 37;
1441
+ break;
1442
+ }
1443
+
1444
+ if (!doDocUploadRequest) {
1445
+ _context12.next = 29;
1446
+ break;
1447
+ }
1448
+
1449
+ _context12.next = 26;
1450
+ return doDocUploadRequest(file, channel);
1451
+
1452
+ case 26:
1453
+ _context12.t1 = _context12.sent;
1454
+ _context12.next = 32;
1455
+ break;
1456
+
1457
+ case 29:
1458
+ _context12.next = 31;
1459
+ return channel.sendFile(file.uri, file.name, file.type);
1460
+
1461
+ case 31:
1462
+ _context12.t1 = _context12.sent;
1463
+
1464
+ case 32:
1465
+ response = _context12.t1;
1466
+ attachment.asset_url = response.file;
1467
+
1468
+ if (response.thumb_url) {
1469
+ attachment.thumb_url = response.thumb_url;
1470
+ }
1471
+
1472
+ delete attachment.originalFile;
1473
+ dbApi.updateMessage({
1474
+ message: (0, _extends2["default"])({}, updatedMessage, {
1475
+ cid: channel.cid
1476
+ })
1477
+ });
1478
+
1479
+ case 37:
1480
+ i++;
1481
+ _context12.next = 3;
1482
+ break;
1483
+
1484
+ case 40:
1485
+ return _context12.abrupt("return", updatedMessage);
1486
+
1487
+ case 41:
1488
+ case "end":
1489
+ return _context12.stop();
1490
+ }
1491
+ }
1492
+ }, _callee12);
1493
+ }));
1494
+
1495
+ return function uploadPendingAttachments(_x5) {
1496
+ return _ref16.apply(this, arguments);
1497
+ };
1498
+ }();
1499
+
1500
+ var sendMessageRequest = function () {
1501
+ var _ref17 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(message, retrying) {
1502
+ var _updatedMessage, __html, attachments, created_at, deleted_at, html, id, latest_reactions, mentioned_users, own_reactions, parent_id, quoted_message, reaction_counts, reactions, status, text, type, updated_at, user, extraFields, _messageData, messageResponse;
1503
+
1504
+ return _regenerator["default"].wrap(function _callee13$(_context13) {
1505
+ while (1) {
1506
+ switch (_context13.prev = _context13.next) {
1507
+ case 0:
1508
+ _context13.prev = 0;
1509
+ _context13.next = 3;
1510
+ return uploadPendingAttachments(message);
1511
+
1512
+ case 3:
1513
+ _updatedMessage = _context13.sent;
1514
+ __html = _updatedMessage.__html, attachments = _updatedMessage.attachments, created_at = _updatedMessage.created_at, deleted_at = _updatedMessage.deleted_at, html = _updatedMessage.html, id = _updatedMessage.id, latest_reactions = _updatedMessage.latest_reactions, mentioned_users = _updatedMessage.mentioned_users, own_reactions = _updatedMessage.own_reactions, parent_id = _updatedMessage.parent_id, quoted_message = _updatedMessage.quoted_message, reaction_counts = _updatedMessage.reaction_counts, reactions = _updatedMessage.reactions, status = _updatedMessage.status, text = _updatedMessage.text, type = _updatedMessage.type, updated_at = _updatedMessage.updated_at, user = _updatedMessage.user, extraFields = (0, _objectWithoutProperties2["default"])(_updatedMessage, _excluded2);
1515
+
1516
+ if (channel.id) {
1517
+ _context13.next = 7;
1518
+ break;
1519
+ }
1520
+
1521
+ return _context13.abrupt("return");
1522
+
1523
+ case 7:
1524
+ _messageData = (0, _extends2["default"])({
1382
1525
  attachments: attachments,
1383
- id: retrying ? undefined : id,
1526
+ id: id,
1384
1527
  mentioned_users: (mentioned_users == null ? void 0 : mentioned_users.map(function (mentionedUser) {
1385
1528
  return mentionedUser.id;
1386
1529
  })) || [],
1387
1530
  parent_id: parent_id,
1388
1531
  text: text
1389
1532
  }, extraFields);
1390
- _context12.prev = 2;
1391
1533
  messageResponse = {};
1392
1534
 
1393
1535
  if (!doSendMessageRequest) {
1394
- _context12.next = 10;
1536
+ _context13.next = 15;
1395
1537
  break;
1396
1538
  }
1397
1539
 
1398
- _context12.next = 7;
1399
- return doSendMessageRequest((channel == null ? void 0 : channel.cid) || '', messageData);
1540
+ _context13.next = 12;
1541
+ return doSendMessageRequest((channel == null ? void 0 : channel.cid) || '', _messageData);
1400
1542
 
1401
- case 7:
1402
- messageResponse = _context12.sent;
1403
- _context12.next = 14;
1543
+ case 12:
1544
+ messageResponse = _context13.sent;
1545
+ _context13.next = 19;
1404
1546
  break;
1405
1547
 
1406
- case 10:
1548
+ case 15:
1407
1549
  if (!channel) {
1408
- _context12.next = 14;
1550
+ _context13.next = 19;
1409
1551
  break;
1410
1552
  }
1411
1553
 
1412
- _context12.next = 13;
1413
- return channel.sendMessage(messageData);
1554
+ _context13.next = 18;
1555
+ return channel.sendMessage(_messageData);
1414
1556
 
1415
- case 13:
1416
- messageResponse = _context12.sent;
1557
+ case 18:
1558
+ messageResponse = _context13.sent;
1417
1559
 
1418
- case 14:
1560
+ case 19:
1419
1561
  if (messageResponse.message) {
1420
1562
  messageResponse.message.status = _utils.MessageStatusTypes.RECEIVED;
1421
1563
 
1564
+ if (enableOfflineSupport) {
1565
+ dbApi.updateMessage({
1566
+ message: (0, _extends2["default"])({}, messageResponse.message, {
1567
+ cid: channel.cid
1568
+ })
1569
+ });
1570
+ }
1571
+
1422
1572
  if (retrying) {
1423
1573
  replaceMessage(message, messageResponse.message);
1424
1574
  } else {
@@ -1426,37 +1576,47 @@ var ChannelWithContext = function ChannelWithContext(props) {
1426
1576
  }
1427
1577
  }
1428
1578
 
1429
- _context12.next = 22;
1579
+ _context13.next = 28;
1430
1580
  break;
1431
1581
 
1432
- case 17:
1433
- _context12.prev = 17;
1434
- _context12.t0 = _context12["catch"](2);
1435
- console.log(_context12.t0);
1582
+ case 22:
1583
+ _context13.prev = 22;
1584
+ _context13.t0 = _context13["catch"](0);
1585
+ console.log(_context13.t0);
1436
1586
  message.status = _utils.MessageStatusTypes.FAILED;
1437
- updateMessage(message);
1587
+ updateMessage((0, _extends2["default"])({}, message, {
1588
+ cid: channel.cid
1589
+ }));
1438
1590
 
1439
- case 22:
1591
+ if (enableOfflineSupport) {
1592
+ dbApi.updateMessage({
1593
+ message: (0, _extends2["default"])({}, message, {
1594
+ cid: channel.cid
1595
+ })
1596
+ });
1597
+ }
1598
+
1599
+ case 28:
1440
1600
  case "end":
1441
- return _context12.stop();
1601
+ return _context13.stop();
1442
1602
  }
1443
1603
  }
1444
- }, _callee12, null, [[2, 17]]);
1604
+ }, _callee13, null, [[0, 22]]);
1445
1605
  }));
1446
1606
 
1447
- return function sendMessageRequest(_x5, _x6) {
1448
- return _ref16.apply(this, arguments);
1607
+ return function sendMessageRequest(_x6, _x7) {
1608
+ return _ref17.apply(this, arguments);
1449
1609
  };
1450
1610
  }();
1451
1611
 
1452
1612
  var sendMessage = function () {
1453
- var _ref17 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee13(message) {
1613
+ var _ref18 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(message) {
1454
1614
  var _channel$state;
1455
1615
 
1456
1616
  var messagePreview;
1457
- return _regenerator["default"].wrap(function _callee13$(_context13) {
1617
+ return _regenerator["default"].wrap(function _callee14$(_context14) {
1458
1618
  while (1) {
1459
- switch (_context13.prev = _context13.next) {
1619
+ switch (_context14.prev = _context14.next) {
1460
1620
  case 0:
1461
1621
  if (channel != null && (_channel$state = channel.state) != null && _channel$state.filterErrorMessages) {
1462
1622
  channel.state.filterErrorMessages();
@@ -1467,11 +1627,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
1467
1627
  }));
1468
1628
 
1469
1629
  if (channel != null && channel.state.isUpToDate) {
1470
- _context13.next = 5;
1630
+ _context14.next = 5;
1471
1631
  break;
1472
1632
  }
1473
1633
 
1474
- _context13.next = 5;
1634
+ _context14.next = 5;
1475
1635
  return reloadChannel();
1476
1636
 
1477
1637
  case 5:
@@ -1479,46 +1639,56 @@ var ChannelWithContext = function ChannelWithContext(props) {
1479
1639
  commands: [],
1480
1640
  messageInput: ''
1481
1641
  });
1482
- _context13.next = 8;
1642
+
1643
+ if (enableOfflineSupport) {
1644
+ dbApi.upsertMessages({
1645
+ messages: [(0, _extends2["default"])({}, messagePreview, {
1646
+ cid: channel.cid,
1647
+ status: _utils.MessageStatusTypes.FAILED
1648
+ })]
1649
+ });
1650
+ }
1651
+
1652
+ _context14.next = 9;
1483
1653
  return sendMessageRequest(messagePreview);
1484
1654
 
1485
- case 8:
1655
+ case 9:
1486
1656
  case "end":
1487
- return _context13.stop();
1657
+ return _context14.stop();
1488
1658
  }
1489
1659
  }
1490
- }, _callee13);
1660
+ }, _callee14);
1491
1661
  }));
1492
1662
 
1493
- return function sendMessage(_x7) {
1494
- return _ref17.apply(this, arguments);
1663
+ return function sendMessage(_x8) {
1664
+ return _ref18.apply(this, arguments);
1495
1665
  };
1496
1666
  }();
1497
1667
 
1498
1668
  var retrySendMessage = function () {
1499
- var _ref18 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee14(message) {
1669
+ var _ref19 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15(message) {
1500
1670
  var statusPendingMessage;
1501
- return _regenerator["default"].wrap(function _callee14$(_context14) {
1671
+ return _regenerator["default"].wrap(function _callee15$(_context15) {
1502
1672
  while (1) {
1503
- switch (_context14.prev = _context14.next) {
1673
+ switch (_context15.prev = _context15.next) {
1504
1674
  case 0:
1505
1675
  statusPendingMessage = (0, _extends2["default"])({}, message, {
1506
1676
  status: _utils.MessageStatusTypes.SENDING
1507
1677
  });
1508
1678
  updateMessage(statusPendingMessage);
1509
- _context14.next = 4;
1679
+ _context15.next = 4;
1510
1680
  return sendMessageRequest(statusPendingMessage, true);
1511
1681
 
1512
1682
  case 4:
1513
1683
  case "end":
1514
- return _context14.stop();
1684
+ return _context15.stop();
1515
1685
  }
1516
1686
  }
1517
- }, _callee14);
1687
+ }, _callee15);
1518
1688
  }));
1519
1689
 
1520
- return function retrySendMessage(_x8) {
1521
- return _ref18.apply(this, arguments);
1690
+ return function retrySendMessage(_x9) {
1691
+ return _ref19.apply(this, arguments);
1522
1692
  };
1523
1693
  }();
1524
1694
 
@@ -1530,56 +1700,56 @@ var ChannelWithContext = function ChannelWithContext(props) {
1530
1700
  }, defaultDebounceInterval, debounceOptions)).current;
1531
1701
 
1532
1702
  var loadMore = function () {
1533
- var _ref19 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee15() {
1703
+ var _ref20 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee16() {
1534
1704
  var limit,
1535
1705
  oldestMessage,
1536
1706
  oldestID,
1537
1707
  queryResponse,
1538
1708
  updatedHasMore,
1539
- _args15 = arguments;
1540
- return _regenerator["default"].wrap(function _callee15$(_context15) {
1709
+ _args16 = arguments;
1710
+ return _regenerator["default"].wrap(function _callee16$(_context16) {
1541
1711
  while (1) {
1542
- switch (_context15.prev = _context15.next) {
1712
+ switch (_context16.prev = _context16.next) {
1543
1713
  case 0:
1544
- limit = _args15.length > 0 && _args15[0] !== undefined ? _args15[0] : 20;
1714
+ limit = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : 20;
1545
1715
 
1546
1716
  if (!(loadingMore || hasMore === false)) {
1547
- _context15.next = 3;
1717
+ _context16.next = 3;
1548
1718
  break;
1549
1719
  }
1550
1720
 
1551
- return _context15.abrupt("return");
1721
+ return _context16.abrupt("return");
1552
1722
 
1553
1723
  case 3:
1554
1724
  setLoadingMore(true);
1555
1725
 
1556
1726
  if (messages.length) {
1557
- _context15.next = 6;
1727
+ _context16.next = 6;
1558
1728
  break;
1559
1729
  }
1560
1730
 
1561
- return _context15.abrupt("return", setLoadingMore(false));
1731
+ return _context16.abrupt("return", setLoadingMore(false));
1562
1732
 
1563
1733
  case 6:
1564
1734
  oldestMessage = messages && messages[0];
1565
1735
 
1566
1736
  if (!(oldestMessage && oldestMessage.status !== _utils.MessageStatusTypes.RECEIVED)) {
1567
- _context15.next = 9;
1737
+ _context16.next = 9;
1568
1738
  break;
1569
1739
  }
1570
1740
 
1571
- return _context15.abrupt("return", setLoadingMore(false));
1741
+ return _context16.abrupt("return", setLoadingMore(false));
1572
1742
 
1573
1743
  case 9:
1574
1744
  oldestID = oldestMessage && oldestMessage.id;
1575
- _context15.prev = 10;
1745
+ _context16.prev = 10;
1576
1746
 
1577
1747
  if (!channel) {
1578
- _context15.next = 17;
1748
+ _context16.next = 17;
1579
1749
  break;
1580
1750
  }
1581
1751
 
1582
- _context15.next = 14;
1752
+ _context16.next = 14;
1583
1753
  return channel.query({
1584
1754
  messages: {
1585
1755
  id_lt: oldestID,
@@ -1588,80 +1758,80 @@ var ChannelWithContext = function ChannelWithContext(props) {
1588
1758
  });
1589
1759
 
1590
1760
  case 14:
1591
- queryResponse = _context15.sent;
1761
+ queryResponse = _context16.sent;
1592
1762
  updatedHasMore = queryResponse.messages.length === limit;
1593
1763
  loadMoreFinished(updatedHasMore, channel.state.messages);
1594
1764
 
1595
1765
  case 17:
1596
- _context15.next = 24;
1766
+ _context16.next = 24;
1597
1767
  break;
1598
1768
 
1599
1769
  case 19:
1600
- _context15.prev = 19;
1601
- _context15.t0 = _context15["catch"](10);
1770
+ _context16.prev = 19;
1771
+ _context16.t0 = _context16["catch"](10);
1602
1772
 
1603
- if (_context15.t0 instanceof Error) {
1604
- setError(_context15.t0);
1773
+ if (_context16.t0 instanceof Error) {
1774
+ setError(_context16.t0);
1605
1775
  } else {
1606
1776
  setError(true);
1607
1777
  }
1608
1778
 
1609
1779
  setLoadingMore(false);
1610
- throw _context15.t0;
1780
+ throw _context16.t0;
1611
1781
 
1612
1782
  case 24:
1613
1783
  case "end":
1614
- return _context15.stop();
1784
+ return _context16.stop();
1615
1785
  }
1616
1786
  }
1617
- }, _callee15, null, [[10, 19]]);
1787
+ }, _callee16, null, [[10, 19]]);
1618
1788
  }));
1619
1789
 
1620
1790
  return function loadMore() {
1621
- return _ref19.apply(this, arguments);
1791
+ return _ref20.apply(this, arguments);
1622
1792
  };
1623
1793
  }();
1624
1794
 
1625
1795
  var loadMoreRecent = function () {
1626
- var _ref20 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee16() {
1796
+ var _ref21 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee17() {
1627
1797
  var limit,
1628
1798
  recentMessage,
1629
1799
  state,
1630
- _args16 = arguments;
1631
- return _regenerator["default"].wrap(function _callee16$(_context16) {
1800
+ _args17 = arguments;
1801
+ return _regenerator["default"].wrap(function _callee17$(_context17) {
1632
1802
  while (1) {
1633
- switch (_context16.prev = _context16.next) {
1803
+ switch (_context17.prev = _context17.next) {
1634
1804
  case 0:
1635
- limit = _args16.length > 0 && _args16[0] !== undefined ? _args16[0] : 5;
1805
+ limit = _args17.length > 0 && _args17[0] !== undefined ? _args17[0] : 5;
1636
1806
 
1637
1807
  if (!hasNoMoreRecentMessagesToLoad) {
1638
- _context16.next = 3;
1808
+ _context17.next = 3;
1639
1809
  break;
1640
1810
  }
1641
1811
 
1642
- return _context16.abrupt("return");
1812
+ return _context17.abrupt("return");
1643
1813
 
1644
1814
  case 3:
1645
1815
  setLoadingMoreRecent(true);
1646
1816
  recentMessage = messages[messages.length - 1];
1647
1817
 
1648
1818
  if (!((recentMessage == null ? void 0 : recentMessage.status) !== _utils.MessageStatusTypes.RECEIVED)) {
1649
- _context16.next = 8;
1819
+ _context17.next = 8;
1650
1820
  break;
1651
1821
  }
1652
1822
 
1653
1823
  setLoadingMoreRecent(false);
1654
- return _context16.abrupt("return");
1824
+ return _context17.abrupt("return");
1655
1825
 
1656
1826
  case 8:
1657
- _context16.prev = 8;
1827
+ _context17.prev = 8;
1658
1828
 
1659
1829
  if (!channel) {
1660
- _context16.next = 15;
1830
+ _context17.next = 15;
1661
1831
  break;
1662
1832
  }
1663
1833
 
1664
- _context16.next = 12;
1834
+ _context17.next = 12;
1665
1835
  return channel.query({
1666
1836
  messages: {
1667
1837
  id_gte: recentMessage.id,
@@ -1671,38 +1841,38 @@ var ChannelWithContext = function ChannelWithContext(props) {
1671
1841
  });
1672
1842
 
1673
1843
  case 12:
1674
- state = _context16.sent;
1844
+ state = _context17.sent;
1675
1845
  setHasNoMoreRecentMessagesToLoad(state.messages.length < limit);
1676
1846
  loadMoreRecentFinished(channel.state.messages);
1677
1847
 
1678
1848
  case 15:
1679
- _context16.next = 23;
1849
+ _context17.next = 23;
1680
1850
  break;
1681
1851
 
1682
1852
  case 17:
1683
- _context16.prev = 17;
1684
- _context16.t0 = _context16["catch"](8);
1685
- console.warn('Message pagination request failed with error', _context16.t0);
1853
+ _context17.prev = 17;
1854
+ _context17.t0 = _context17["catch"](8);
1855
+ console.warn('Message pagination request failed with error', _context17.t0);
1686
1856
 
1687
- if (_context16.t0 instanceof Error) {
1688
- setError(_context16.t0);
1857
+ if (_context17.t0 instanceof Error) {
1858
+ setError(_context17.t0);
1689
1859
  } else {
1690
1860
  setError(true);
1691
1861
  }
1692
1862
 
1693
1863
  setLoadingMoreRecent(false);
1694
- throw _context16.t0;
1864
+ throw _context17.t0;
1695
1865
 
1696
1866
  case 23:
1697
1867
  case "end":
1698
- return _context16.stop();
1868
+ return _context17.stop();
1699
1869
  }
1700
1870
  }
1701
- }, _callee16, null, [[8, 17]]);
1871
+ }, _callee17, null, [[8, 17]]);
1702
1872
  }));
1703
1873
 
1704
1874
  return function loadMoreRecent() {
1705
- return _ref20.apply(this, arguments);
1875
+ return _ref21.apply(this, arguments);
1706
1876
  };
1707
1877
  }();
1708
1878
 
@@ -1741,8 +1911,219 @@ var ChannelWithContext = function ChannelWithContext(props) {
1741
1911
  setThreadMessages(channel.state.threads[thread.id] || []);
1742
1912
  }
1743
1913
  }
1914
+
1915
+ if (enableOfflineSupport) {
1916
+ dbApi.deleteMessage({
1917
+ id: message.id
1918
+ });
1919
+ }
1744
1920
  };
1745
1921
 
1922
+ var sendReaction = function () {
1923
+ var _ref22 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee18(type, messageId) {
1924
+ var payload;
1925
+ return _regenerator["default"].wrap(function _callee18$(_context18) {
1926
+ while (1) {
1927
+ switch (_context18.prev = _context18.next) {
1928
+ case 0:
1929
+ if (!(!(channel != null && channel.id) || !client.user)) {
1930
+ _context18.next = 2;
1931
+ break;
1932
+ }
1933
+
1934
+ throw new Error('Channel has not been initialized');
1935
+
1936
+ case 2:
1937
+ payload = [messageId, {
1938
+ type: type
1939
+ }, {
1940
+ enforce_unique: enforceUniqueReaction
1941
+ }];
1942
+
1943
+ if (enableOfflineSupport) {
1944
+ _context18.next = 7;
1945
+ break;
1946
+ }
1947
+
1948
+ _context18.next = 6;
1949
+ return channel.sendReaction.apply(channel, payload);
1950
+
1951
+ case 6:
1952
+ return _context18.abrupt("return");
1953
+
1954
+ case 7:
1955
+ (0, _addReactionToLocalState.addReactionToLocalState)({
1956
+ channel: channel,
1957
+ enforceUniqueReaction: enforceUniqueReaction,
1958
+ messageId: messageId,
1959
+ reactionType: type,
1960
+ user: client.user
1961
+ });
1962
+ setMessages(channel.state.messages);
1963
+ _context18.next = 11;
1964
+ return _DBSyncManager.DBSyncManager.queueTask({
1965
+ client: client,
1966
+ task: {
1967
+ channelId: channel.id,
1968
+ channelType: channel.type,
1969
+ messageId: messageId,
1970
+ payload: payload,
1971
+ type: 'send-reaction'
1972
+ }
1973
+ });
1974
+
1975
+ case 11:
1976
+ case "end":
1977
+ return _context18.stop();
1978
+ }
1979
+ }
1980
+ }, _callee18);
1981
+ }));
1982
+
1983
+ return function sendReaction(_x10, _x11) {
1984
+ return _ref22.apply(this, arguments);
1985
+ };
1986
+ }();
1987
+
1988
+ var deleteMessage = function () {
1989
+ var _ref23 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee19(message) {
1990
+ var data;
1991
+ return _regenerator["default"].wrap(function _callee19$(_context19) {
1992
+ while (1) {
1993
+ switch (_context19.prev = _context19.next) {
1994
+ case 0:
1995
+ if (channel.id) {
1996
+ _context19.next = 2;
1997
+ break;
1998
+ }
1999
+
2000
+ throw new Error('Channel has not been initialized yet');
2001
+
2002
+ case 2:
2003
+ if (enableOfflineSupport) {
2004
+ _context19.next = 6;
2005
+ break;
2006
+ }
2007
+
2008
+ _context19.next = 5;
2009
+ return client.deleteMessage(message.id);
2010
+
2011
+ case 5:
2012
+ return _context19.abrupt("return");
2013
+
2014
+ case 6:
2015
+ if (!(message.status === _utils.MessageStatusTypes.FAILED)) {
2016
+ _context19.next = 11;
2017
+ break;
2018
+ }
2019
+
2020
+ _DBSyncManager.DBSyncManager.dropPendingTasks({
2021
+ messageId: message.id
2022
+ });
2023
+
2024
+ removeMessage(message);
2025
+ _context19.next = 16;
2026
+ break;
2027
+
2028
+ case 11:
2029
+ updateMessage((0, _extends2["default"])({}, message, {
2030
+ cid: channel.cid,
2031
+ deleted_at: new Date().toISOString(),
2032
+ type: 'deleted'
2033
+ }));
2034
+ _context19.next = 14;
2035
+ return _DBSyncManager.DBSyncManager.queueTask({
2036
+ client: client,
2037
+ task: {
2038
+ channelId: channel.id,
2039
+ channelType: channel.type,
2040
+ messageId: message.id,
2041
+ payload: [message.id],
2042
+ type: 'delete-message'
2043
+ }
2044
+ });
2045
+
2046
+ case 14:
2047
+ data = _context19.sent;
2048
+
2049
+ if (data != null && data.message) {
2050
+ updateMessage((0, _extends2["default"])({}, data.message));
2051
+ }
2052
+
2053
+ case 16:
2054
+ case "end":
2055
+ return _context19.stop();
2056
+ }
2057
+ }
2058
+ }, _callee19);
2059
+ }));
2060
+
2061
+ return function deleteMessage(_x12) {
2062
+ return _ref23.apply(this, arguments);
2063
+ };
2064
+ }();
2065
+
2066
+ var deleteReaction = function () {
2067
+ var _ref24 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee20(type, messageId) {
2068
+ var payload;
2069
+ return _regenerator["default"].wrap(function _callee20$(_context20) {
2070
+ while (1) {
2071
+ switch (_context20.prev = _context20.next) {
2072
+ case 0:
2073
+ if (!(!(channel != null && channel.id) || !client.user)) {
2074
+ _context20.next = 2;
2075
+ break;
2076
+ }
2077
+
2078
+ throw new Error('Channel has not been initialized');
2079
+
2080
+ case 2:
2081
+ payload = [messageId, type];
2082
+
2083
+ if (enableOfflineSupport) {
2084
+ _context20.next = 7;
2085
+ break;
2086
+ }
2087
+
2088
+ _context20.next = 6;
2089
+ return channel.deleteReaction.apply(channel, payload);
2090
+
2091
+ case 6:
2092
+ return _context20.abrupt("return");
2093
+
2094
+ case 7:
2095
+ (0, _removeReactionFromLocalState.removeReactionFromLocalState)({
2096
+ channel: channel,
2097
+ messageId: messageId,
2098
+ reactionType: type,
2099
+ user: client.user
2100
+ });
2101
+ setMessages(channel.state.messages);
2102
+ _context20.next = 11;
2103
+ return _DBSyncManager.DBSyncManager.queueTask({
2104
+ client: client,
2105
+ task: {
2106
+ channelId: channel.id,
2107
+ channelType: channel.type,
2108
+ messageId: messageId,
2109
+ payload: payload,
2110
+ type: 'delete-reaction'
2111
+ }
2112
+ });
2113
+
2114
+ case 11:
2115
+ case "end":
2116
+ return _context20.stop();
2117
+ }
2118
+ }
2119
+ }, _callee20);
2120
+ }));
2121
+
2122
+ return function deleteReaction(_x13, _x14) {
2123
+ return _ref24.apply(this, arguments);
2124
+ };
2125
+ }();
2126
+
1746
2127
  var openThread = function openThread(message) {
1747
2128
  var _channel$state2;
1748
2129
 
@@ -1762,26 +2143,26 @@ var ChannelWithContext = function ChannelWithContext(props) {
1762
2143
  }, defaultDebounceInterval, debounceOptions)).current;
1763
2144
 
1764
2145
  var loadMoreThread = function () {
1765
- var _ref21 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee17() {
2146
+ var _ref25 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee21() {
1766
2147
  var _threadMessages$, parentID, oldestMessageID, limit, queryResponse, updatedHasMore, updatedThreadMessages;
1767
2148
 
1768
- return _regenerator["default"].wrap(function _callee17$(_context17) {
2149
+ return _regenerator["default"].wrap(function _callee21$(_context21) {
1769
2150
  while (1) {
1770
- switch (_context17.prev = _context17.next) {
2151
+ switch (_context21.prev = _context21.next) {
1771
2152
  case 0:
1772
2153
  if (!(threadLoadingMore || !(thread != null && thread.id))) {
1773
- _context17.next = 2;
2154
+ _context21.next = 2;
1774
2155
  break;
1775
2156
  }
1776
2157
 
1777
- return _context17.abrupt("return");
2158
+ return _context21.abrupt("return");
1778
2159
 
1779
2160
  case 2:
1780
2161
  setThreadLoadingMore(true);
1781
- _context17.prev = 3;
2162
+ _context21.prev = 3;
1782
2163
 
1783
2164
  if (!channel) {
1784
- _context17.next = 15;
2165
+ _context21.next = 15;
1785
2166
  break;
1786
2167
  }
1787
2168
 
@@ -1789,46 +2170,46 @@ var ChannelWithContext = function ChannelWithContext(props) {
1789
2170
  channel.state.threads[parentID] = threadMessages;
1790
2171
  oldestMessageID = threadMessages == null ? void 0 : (_threadMessages$ = threadMessages[0]) == null ? void 0 : _threadMessages$.id;
1791
2172
  limit = 50;
1792
- _context17.next = 11;
2173
+ _context21.next = 11;
1793
2174
  return channel.getReplies(parentID, {
1794
2175
  id_lt: oldestMessageID,
1795
2176
  limit: limit
1796
2177
  });
1797
2178
 
1798
2179
  case 11:
1799
- queryResponse = _context17.sent;
2180
+ queryResponse = _context21.sent;
1800
2181
  updatedHasMore = queryResponse.messages.length === limit;
1801
2182
  updatedThreadMessages = channel.state.threads[parentID] || [];
1802
2183
  loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
1803
2184
 
1804
2185
  case 15:
1805
- _context17.next = 23;
2186
+ _context21.next = 23;
1806
2187
  break;
1807
2188
 
1808
2189
  case 17:
1809
- _context17.prev = 17;
1810
- _context17.t0 = _context17["catch"](3);
1811
- console.warn('Message pagination request failed with error', _context17.t0);
2190
+ _context21.prev = 17;
2191
+ _context21.t0 = _context21["catch"](3);
2192
+ console.warn('Message pagination request failed with error', _context21.t0);
1812
2193
 
1813
- if (_context17.t0 instanceof Error) {
1814
- setError(_context17.t0);
2194
+ if (_context21.t0 instanceof Error) {
2195
+ setError(_context21.t0);
1815
2196
  } else {
1816
2197
  setError(true);
1817
2198
  }
1818
2199
 
1819
2200
  setThreadLoadingMore(false);
1820
- throw _context17.t0;
2201
+ throw _context21.t0;
1821
2202
 
1822
2203
  case 23:
1823
2204
  case "end":
1824
- return _context17.stop();
2205
+ return _context21.stop();
1825
2206
  }
1826
2207
  }
1827
- }, _callee17, null, [[3, 17]]);
2208
+ }, _callee21, null, [[3, 17]]);
1828
2209
  }));
1829
2210
 
1830
2211
  return function loadMoreThread() {
1831
- return _ref21.apply(this, arguments);
2212
+ return _ref25.apply(this, arguments);
1832
2213
  };
1833
2214
  }();
1834
2215
 
@@ -1843,7 +2224,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1843
2224
  enableMessageGroupingByUser: enableMessageGroupingByUser,
1844
2225
  enforceUniqueReaction: enforceUniqueReaction,
1845
2226
  error: error,
1846
- giphyEnabled: giphyEnabled != null ? giphyEnabled : !!((_ref22 = (clientChannelConfig == null ? void 0 : clientChannelConfig.commands) || []) != null && _ref22.some(function (command) {
2227
+ giphyEnabled: giphyEnabled != null ? giphyEnabled : !!((_ref26 = (clientChannelConfig == null ? void 0 : clientChannelConfig.commands) || []) != null && _ref26.some(function (command) {
1847
2228
  return command.name === 'giphy';
1848
2229
  })),
1849
2230
  hideDateSeparators: hideDateSeparators,
@@ -1898,7 +2279,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1898
2279
  InputEditingStateHeader: InputEditingStateHeader,
1899
2280
  InputGiphySearch: InputGiphySearch,
1900
2281
  InputReplyStateHeader: InputReplyStateHeader,
1901
- maxMessageLength: (_ref23 = maxMessageLengthProp != null ? maxMessageLengthProp : clientChannelConfig == null ? void 0 : clientChannelConfig.max_message_length) != null ? _ref23 : undefined,
2282
+ maxMessageLength: (_ref27 = maxMessageLengthProp != null ? maxMessageLengthProp : clientChannelConfig == null ? void 0 : clientChannelConfig.max_message_length) != null ? _ref27 : undefined,
1902
2283
  maxNumberOfFiles: maxNumberOfFiles,
1903
2284
  mentionAllAppUsersEnabled: mentionAllAppUsersEnabled,
1904
2285
  mentionAllAppUsersQuery: mentionAllAppUsersQuery,
@@ -1939,6 +2320,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
1939
2320
  channelId: channelId,
1940
2321
  DateHeader: DateHeader,
1941
2322
  deletedMessagesVisibilityType: deletedMessagesVisibilityType,
2323
+ deleteMessage: deleteMessage,
2324
+ deleteReaction: deleteReaction,
1942
2325
  disableTypingIndicator: disableTypingIndicator,
1943
2326
  dismissKeyboardOnMessageTouch: dismissKeyboardOnMessageTouch,
1944
2327
  enableMessageGroupingByUser: enableMessageGroupingByUser,
@@ -1998,6 +2381,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
1998
2381
  retrySendMessage: retrySendMessage,
1999
2382
  ScrollToBottomButton: ScrollToBottomButton,
2000
2383
  selectReaction: selectReaction,
2384
+ sendReaction: sendReaction,
2001
2385
  setEditingState: setEditingState,
2002
2386
  setQuotedMessageState: setQuotedMessageState,
2003
2387
  supportedReactions: supportedReactions,
@@ -2038,7 +2422,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2038
2422
  __self: _this,
2039
2423
  __source: {
2040
2424
  fileName: _jsxFileName,
2041
- lineNumber: 1754,
2425
+ lineNumber: 1962,
2042
2426
  columnNumber: 12
2043
2427
  }
2044
2428
  });
@@ -2053,7 +2437,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2053
2437
  __self: _this,
2054
2438
  __source: {
2055
2439
  fileName: _jsxFileName,
2056
- lineNumber: 1759,
2440
+ lineNumber: 1967,
2057
2441
  columnNumber: 7
2058
2442
  }
2059
2443
  }, t('Please select a channel first'));
@@ -2067,7 +2451,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2067
2451
  __self: _this,
2068
2452
  __source: {
2069
2453
  fileName: _jsxFileName,
2070
- lineNumber: 1766,
2454
+ lineNumber: 1974,
2071
2455
  columnNumber: 5
2072
2456
  }
2073
2457
  }), _react["default"].createElement(_ChannelContext.ChannelProvider, {
@@ -2075,7 +2459,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2075
2459
  __self: _this,
2076
2460
  __source: {
2077
2461
  fileName: _jsxFileName,
2078
- lineNumber: 1772,
2462
+ lineNumber: 1980,
2079
2463
  columnNumber: 7
2080
2464
  }
2081
2465
  }, _react["default"].createElement(_OwnCapabilitiesContext.OwnCapabilitiesProvider, {
@@ -2083,7 +2467,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2083
2467
  __self: _this,
2084
2468
  __source: {
2085
2469
  fileName: _jsxFileName,
2086
- lineNumber: 1773,
2470
+ lineNumber: 1981,
2087
2471
  columnNumber: 9
2088
2472
  }
2089
2473
  }, _react["default"].createElement(_TypingContext.TypingProvider, {
@@ -2091,7 +2475,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2091
2475
  __self: _this,
2092
2476
  __source: {
2093
2477
  fileName: _jsxFileName,
2094
- lineNumber: 1774,
2478
+ lineNumber: 1982,
2095
2479
  columnNumber: 11
2096
2480
  }
2097
2481
  }, _react["default"].createElement(_PaginatedMessageListContext.PaginatedMessageListProvider, {
@@ -2099,7 +2483,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2099
2483
  __self: _this,
2100
2484
  __source: {
2101
2485
  fileName: _jsxFileName,
2102
- lineNumber: 1775,
2486
+ lineNumber: 1983,
2103
2487
  columnNumber: 13
2104
2488
  }
2105
2489
  }, _react["default"].createElement(_MessagesContext.MessagesProvider, {
@@ -2107,7 +2491,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2107
2491
  __self: _this,
2108
2492
  __source: {
2109
2493
  fileName: _jsxFileName,
2110
- lineNumber: 1776,
2494
+ lineNumber: 1984,
2111
2495
  columnNumber: 15
2112
2496
  }
2113
2497
  }, _react["default"].createElement(_ThreadContext.ThreadProvider, {
@@ -2115,7 +2499,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2115
2499
  __self: _this,
2116
2500
  __source: {
2117
2501
  fileName: _jsxFileName,
2118
- lineNumber: 1777,
2502
+ lineNumber: 1985,
2119
2503
  columnNumber: 17
2120
2504
  }
2121
2505
  }, _react["default"].createElement(_SuggestionsContext.SuggestionsProvider, {
@@ -2123,7 +2507,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2123
2507
  __self: _this,
2124
2508
  __source: {
2125
2509
  fileName: _jsxFileName,
2126
- lineNumber: 1778,
2510
+ lineNumber: 1986,
2127
2511
  columnNumber: 19
2128
2512
  }
2129
2513
  }, _react["default"].createElement(_MessageInputContext.MessageInputProvider, {
@@ -2131,7 +2515,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2131
2515
  __self: _this,
2132
2516
  __source: {
2133
2517
  fileName: _jsxFileName,
2134
- lineNumber: 1779,
2518
+ lineNumber: 1987,
2135
2519
  columnNumber: 21
2136
2520
  }
2137
2521
  }, _react["default"].createElement(_reactNative.View, {
@@ -2141,7 +2525,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
2141
2525
  __self: _this,
2142
2526
  __source: {
2143
2527
  fileName: _jsxFileName,
2144
- lineNumber: 1780,
2528
+ lineNumber: 1988,
2145
2529
  columnNumber: 23
2146
2530
  }
2147
2531
  }, children))))))))));
@@ -2151,7 +2535,8 @@ var Channel = function Channel(props) {
2151
2535
  var _props$thread, _props$thread2;
2152
2536
 
2153
2537
  var _useChatContext = (0, _ChatContext.useChatContext)(),
2154
- client = _useChatContext.client;
2538
+ client = _useChatContext.client,
2539
+ enableOfflineSupport = _useChatContext.enableOfflineSupport;
2155
2540
 
2156
2541
  var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
2157
2542
  t = _useTranslationContex.t;
@@ -2176,6 +2561,7 @@ var Channel = function Channel(props) {
2176
2561
 
2177
2562
  return _react["default"].createElement(ChannelWithContext, (0, _extends2["default"])({
2178
2563
  client: client,
2564
+ enableOfflineSupport: enableOfflineSupport,
2179
2565
  t: t
2180
2566
  }, props, {
2181
2567
  shouldSyncChannel: shouldSyncChannel,
@@ -2196,7 +2582,7 @@ var Channel = function Channel(props) {
2196
2582
  __self: _this,
2197
2583
  __source: {
2198
2584
  fileName: _jsxFileName,
2199
- lineNumber: 1837,
2585
+ lineNumber: 2045,
2200
2586
  columnNumber: 5
2201
2587
  }
2202
2588
  }));