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
@@ -13,6 +13,8 @@ var _reactNative = require("react-native");
13
13
 
14
14
  var _UploadProgressIndicator = require("./UploadProgressIndicator");
15
15
 
16
+ var _contexts = require("../../contexts");
17
+
16
18
  var _MessageInputContext = require("../../contexts/messageInputContext/MessageInputContext");
17
19
 
18
20
  var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
@@ -81,7 +83,8 @@ var styles = _reactNative.StyleSheet.create({
81
83
  });
82
84
 
83
85
  var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props) {
84
- var imageUploads = props.imageUploads,
86
+ var enableOfflineSupport = props.enableOfflineSupport,
87
+ imageUploads = props.imageUploads,
85
88
  removeImage = props.removeImage,
86
89
  uploadImage = props.uploadImage;
87
90
 
@@ -110,7 +113,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
110
113
  __self: _this,
111
114
  __source: {
112
115
  fileName: _jsxFileName,
113
- lineNumber: 117,
116
+ lineNumber: 119,
114
117
  columnNumber: 7
115
118
  }
116
119
  }, _react["default"].createElement(_reactNative.View, {
@@ -118,7 +121,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
118
121
  __self: _this,
119
122
  __source: {
120
123
  fileName: _jsxFileName,
121
- lineNumber: 118,
124
+ lineNumber: 120,
122
125
  columnNumber: 9
123
126
  }
124
127
  }, _react["default"].createElement(_Warning.Warning, {
@@ -129,7 +132,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
129
132
  __self: _this,
130
133
  __source: {
131
134
  fileName: _jsxFileName,
132
- lineNumber: 119,
135
+ lineNumber: 121,
133
136
  columnNumber: 11
134
137
  }
135
138
  }), _react["default"].createElement(_reactNative.Text, {
@@ -139,7 +142,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
139
142
  __self: _this,
140
143
  __source: {
141
144
  fileName: _jsxFileName,
142
- lineNumber: 125,
145
+ lineNumber: 127,
143
146
  columnNumber: 11
144
147
  }
145
148
  }, t('Not supported')))) : null;
@@ -148,7 +151,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
148
151
  var renderItem = function renderItem(_ref2) {
149
152
  var index = _ref2.index,
150
153
  item = _ref2.item;
151
- var indicatorType = (0, _utils.getIndicatorTypeForFileState)(item.state);
154
+ var indicatorType = (0, _utils.getIndicatorTypeForFileState)(item.state, enableOfflineSupport);
152
155
  var itemMarginForIndex = index === imageUploads.length - 1 ? {
153
156
  marginRight: 8
154
157
  } : {};
@@ -157,7 +160,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
157
160
  __self: _this,
158
161
  __source: {
159
162
  fileName: _jsxFileName,
160
- lineNumber: 136,
163
+ lineNumber: 138,
161
164
  columnNumber: 7
162
165
  }
163
166
  }, _react["default"].createElement(_UploadProgressIndicator.UploadProgressIndicator, {
@@ -171,7 +174,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
171
174
  __self: _this,
172
175
  __source: {
173
176
  fileName: _jsxFileName,
174
- lineNumber: 137,
177
+ lineNumber: 139,
175
178
  columnNumber: 9
176
179
  }
177
180
  }, _react["default"].createElement(_reactNative.Image, {
@@ -183,7 +186,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
183
186
  __self: _this,
184
187
  __source: {
185
188
  fileName: _jsxFileName,
186
- lineNumber: 144,
189
+ lineNumber: 146,
187
190
  columnNumber: 11
188
191
  }
189
192
  })), _react["default"].createElement(DismissUpload, {
@@ -193,7 +196,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
193
196
  __self: _this,
194
197
  __source: {
195
198
  fileName: _jsxFileName,
196
- lineNumber: 150,
199
+ lineNumber: 152,
197
200
  columnNumber: 9
198
201
  }
199
202
  }), _react["default"].createElement(UnsupportedImageTypeIndicator, {
@@ -201,7 +204,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
201
204
  __self: _this,
202
205
  __source: {
203
206
  fileName: _jsxFileName,
204
- lineNumber: 155,
207
+ lineNumber: 157,
205
208
  columnNumber: 9
206
209
  }
207
210
  }));
@@ -225,7 +228,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
225
228
  __self: _this,
226
229
  __source: {
227
230
  fileName: _jsxFileName,
228
- lineNumber: 161,
231
+ lineNumber: 163,
229
232
  columnNumber: 5
230
233
  }
231
234
  }) : null;
@@ -252,7 +255,7 @@ var DismissUpload = function DismissUpload(_ref3) {
252
255
  __self: _this,
253
256
  __source: {
254
257
  fileName: _jsxFileName,
255
- lineNumber: 189,
258
+ lineNumber: 191,
256
259
  columnNumber: 5
257
260
  }
258
261
  }, _react["default"].createElement(_Close.Close, {
@@ -260,7 +263,7 @@ var DismissUpload = function DismissUpload(_ref3) {
260
263
  __self: _this,
261
264
  __source: {
262
265
  fileName: _jsxFileName,
263
- lineNumber: 194,
266
+ lineNumber: 196,
264
267
  columnNumber: 7
265
268
  }
266
269
  }));
@@ -277,6 +280,9 @@ var areEqual = function areEqual(prevProps, nextProps) {
277
280
  var MemoizedImageUploadPreviewWithContext = _react["default"].memo(ImageUploadPreviewWithContext, areEqual);
278
281
 
279
282
  var ImageUploadPreview = function ImageUploadPreview(props) {
283
+ var _useChatContext = (0, _contexts.useChatContext)(),
284
+ enableOfflineSupport = _useChatContext.enableOfflineSupport;
285
+
280
286
  var _useMessageInputConte = (0, _MessageInputContext.useMessageInputContext)(),
281
287
  imageUploads = _useMessageInputConte.imageUploads,
282
288
  removeImage = _useMessageInputConte.removeImage,
@@ -285,12 +291,13 @@ var ImageUploadPreview = function ImageUploadPreview(props) {
285
291
  return _react["default"].createElement(MemoizedImageUploadPreviewWithContext, (0, _extends2["default"])({
286
292
  imageUploads: imageUploads,
287
293
  removeImage: removeImage,
288
- uploadImage: uploadImage
294
+ uploadImage: uploadImage,
295
+ enableOfflineSupport: enableOfflineSupport
289
296
  }, props, {
290
297
  __self: _this,
291
298
  __source: {
292
299
  fileName: _jsxFileName,
293
- lineNumber: 230,
300
+ lineNumber: 233,
294
301
  columnNumber: 5
295
302
  }
296
303
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["ImageUploadPreview.tsx"],"names":["IMAGE_PREVIEW_SIZE","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","position","right","top","fileSizeText","fontSize","paddingHorizontal","flatList","paddingBottom","iconContainer","alignItems","flexDirection","justifyContent","itemContainer","height","marginLeft","unsupportedImage","bottom","marginHorizontal","upload","width","warningIconStyle","marginTop","warningText","color","ImageUploadPreviewWithContext","props","imageUploads","removeImage","uploadImage","theme","messageInput","imageUploadPreview","UnsupportedImageTypeIndicator","indicatorType","colors","accent_red","overlay","white","t","ProgressIndicatorTypes","NOT_SUPPORTED","backgroundColor","renderItem","index","item","state","itemMarginForIndex","length","marginRight","newImage","uri","file","url","id","_","offset","DismissUpload","onPress","dismissIconColor","areEqual","prevProps","nextProps","prevImageUploads","nextImageUploads","every","prevImageUpload","MemoizedImageUploadPreviewWithContext","React","memo","ImageUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n FlatList,\n Image,\n StyleSheet,\n Text,\n TouchableOpacity,\n TouchableOpacityProps,\n View,\n} from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport {\n ImageUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\n\nconst IMAGE_PREVIEW_SIZE = 100;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n flatList: { paddingBottom: 12 },\n iconContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'center',\n },\n itemContainer: {\n flexDirection: 'row',\n height: IMAGE_PREVIEW_SIZE,\n marginLeft: 8,\n },\n unsupportedImage: {\n borderRadius: 20,\n bottom: 8,\n flexDirection: 'row',\n marginHorizontal: 3,\n position: 'absolute',\n },\n upload: {\n borderRadius: 10,\n height: IMAGE_PREVIEW_SIZE,\n width: IMAGE_PREVIEW_SIZE,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 6,\n },\n warningText: {\n alignItems: 'center',\n color: 'black',\n fontSize: 10,\n justifyContent: 'center',\n marginHorizontal: 4,\n },\n});\n\ntype ImageUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'imageUploads' | 'removeImage' | 'uploadImage'\n>;\n\nexport type ImageUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ImageUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\ntype ImageUploadPreviewItem = { index: number; item: ImageUpload };\n\nconst ImageUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { imageUploads, removeImage, uploadImage } = props;\n\n const {\n theme: {\n messageInput: {\n imageUploadPreview: { flatList, itemContainer, upload },\n },\n },\n } = useTheme();\n\n const UnsupportedImageTypeIndicator = ({\n indicatorType,\n }: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes] | null;\n }) => {\n const {\n theme: {\n colors: { accent_red, overlay, white },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={[styles.unsupportedImage, { backgroundColor: overlay }]}>\n <View style={[styles.iconContainer]}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.warningText, { color: white }]}>{t('Not supported')}</Text>\n </View>\n </View>\n ) : null;\n };\n\n const renderItem = ({ index, item }: ImageUploadPreviewItem) => {\n const indicatorType = getIndicatorTypeForFileState(item.state);\n const itemMarginForIndex = index === imageUploads.length - 1 ? { marginRight: 8 } : {};\n\n return (\n <View style={[styles.itemContainer, itemMarginForIndex, itemContainer]}>\n <UploadProgressIndicator\n action={() => {\n uploadImage({ newImage: item });\n }}\n style={styles.upload}\n type={indicatorType}\n >\n <Image\n resizeMode='cover'\n source={{ uri: item.file.uri || item.url }}\n style={[styles.upload, upload]}\n />\n </UploadProgressIndicator>\n <DismissUpload\n onPress={() => {\n removeImage(item.id);\n }}\n />\n <UnsupportedImageTypeIndicator indicatorType={indicatorType} />\n </View>\n );\n };\n\n return imageUploads.length > 0 ? (\n <FlatList\n data={imageUploads}\n getItemLayout={(_, index) => ({\n index,\n length: IMAGE_PREVIEW_SIZE + 8,\n offset: (IMAGE_PREVIEW_SIZE + 8) * index,\n })}\n horizontal\n keyExtractor={(item) => item.id}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\ntype DismissUploadProps = Pick<TouchableOpacityProps, 'onPress'>;\n\nconst DismissUpload = ({ onPress }: DismissUploadProps) => {\n const {\n theme: {\n colors: { overlay, white },\n messageInput: {\n imageUploadPreview: { dismiss, dismissIconColor },\n },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.dismiss, { backgroundColor: overlay }, dismiss]}\n testID='remove-image-upload-preview'\n >\n <Close pathFill={dismissIconColor || white} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { imageUploads: prevImageUploads } = prevProps;\n const { imageUploads: nextImageUploads } = nextProps;\n\n return (\n prevImageUploads.length === nextImageUploads.length &&\n prevImageUploads.every(\n (prevImageUpload, index) => prevImageUpload.state === nextImageUploads[index].state,\n )\n );\n};\n\nconst MemoizedImageUploadPreviewWithContext = React.memo(\n ImageUploadPreviewWithContext,\n areEqual,\n) as typeof ImageUploadPreviewWithContext;\n\n/**\n * UI Component to preview the images set for upload\n */\nexport const ImageUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { imageUploads, removeImage, uploadImage } = useMessageInputContext<StreamChatGenerics>();\n\n return (\n <MemoizedImageUploadPreviewWithContext\n {...{ imageUploads, removeImage, uploadImage }}\n {...props}\n />\n );\n};\n\nImageUploadPreview.displayName = 'ImageUploadPreview{messageInput{imageUploadPreview}}';\n"]}
1
+ {"version":3,"sources":["ImageUploadPreview.tsx"],"names":["IMAGE_PREVIEW_SIZE","WARNING_ICON_SIZE","styles","StyleSheet","create","dismiss","borderRadius","position","right","top","fileSizeText","fontSize","paddingHorizontal","flatList","paddingBottom","iconContainer","alignItems","flexDirection","justifyContent","itemContainer","height","marginLeft","unsupportedImage","bottom","marginHorizontal","upload","width","warningIconStyle","marginTop","warningText","color","ImageUploadPreviewWithContext","props","enableOfflineSupport","imageUploads","removeImage","uploadImage","theme","messageInput","imageUploadPreview","UnsupportedImageTypeIndicator","indicatorType","colors","accent_red","overlay","white","t","ProgressIndicatorTypes","NOT_SUPPORTED","backgroundColor","renderItem","index","item","state","itemMarginForIndex","length","marginRight","newImage","uri","file","url","id","_","offset","DismissUpload","onPress","dismissIconColor","areEqual","prevProps","nextProps","prevImageUploads","nextImageUploads","every","prevImageUpload","MemoizedImageUploadPreviewWithContext","React","memo","ImageUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n FlatList,\n Image,\n StyleSheet,\n Text,\n TouchableOpacity,\n TouchableOpacityProps,\n View,\n} from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { ChatContextValue, useChatContext } from '../../contexts';\nimport {\n ImageUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\nimport { Close } from '../../icons/Close';\nimport { Warning } from '../../icons/Warning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getIndicatorTypeForFileState, ProgressIndicatorTypes } from '../../utils/utils';\n\nconst IMAGE_PREVIEW_SIZE = 100;\nconst WARNING_ICON_SIZE = 16;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n },\n fileSizeText: {\n fontSize: 12,\n paddingHorizontal: 10,\n },\n flatList: { paddingBottom: 12 },\n iconContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n justifyContent: 'center',\n },\n itemContainer: {\n flexDirection: 'row',\n height: IMAGE_PREVIEW_SIZE,\n marginLeft: 8,\n },\n unsupportedImage: {\n borderRadius: 20,\n bottom: 8,\n flexDirection: 'row',\n marginHorizontal: 3,\n position: 'absolute',\n },\n upload: {\n borderRadius: 10,\n height: IMAGE_PREVIEW_SIZE,\n width: IMAGE_PREVIEW_SIZE,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginTop: 6,\n },\n warningText: {\n alignItems: 'center',\n color: 'black',\n fontSize: 10,\n justifyContent: 'center',\n marginHorizontal: 4,\n },\n});\n\ntype ImageUploadPreviewPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageInputContextValue<StreamChatGenerics>,\n 'imageUploads' | 'removeImage' | 'uploadImage'\n> &\n Pick<ChatContextValue<StreamChatGenerics>, 'enableOfflineSupport'>;\n\nexport type ImageUploadPreviewProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<ImageUploadPreviewPropsWithContext<StreamChatGenerics>>;\n\ntype ImageUploadPreviewItem = { index: number; item: ImageUpload };\n\nconst ImageUploadPreviewWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport, imageUploads, removeImage, uploadImage } = props;\n\n const {\n theme: {\n messageInput: {\n imageUploadPreview: { flatList, itemContainer, upload },\n },\n },\n } = useTheme();\n\n const UnsupportedImageTypeIndicator = ({\n indicatorType,\n }: {\n indicatorType: typeof ProgressIndicatorTypes[keyof typeof ProgressIndicatorTypes] | null;\n }) => {\n const {\n theme: {\n colors: { accent_red, overlay, white },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n return indicatorType === ProgressIndicatorTypes.NOT_SUPPORTED ? (\n <View style={[styles.unsupportedImage, { backgroundColor: overlay }]}>\n <View style={[styles.iconContainer]}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.warningText, { color: white }]}>{t('Not supported')}</Text>\n </View>\n </View>\n ) : null;\n };\n\n const renderItem = ({ index, item }: ImageUploadPreviewItem) => {\n const indicatorType = getIndicatorTypeForFileState(item.state, enableOfflineSupport);\n const itemMarginForIndex = index === imageUploads.length - 1 ? { marginRight: 8 } : {};\n\n return (\n <View style={[styles.itemContainer, itemMarginForIndex, itemContainer]}>\n <UploadProgressIndicator\n action={() => {\n uploadImage({ newImage: item });\n }}\n style={styles.upload}\n type={indicatorType}\n >\n <Image\n resizeMode='cover'\n source={{ uri: item.file.uri || item.url }}\n style={[styles.upload, upload]}\n />\n </UploadProgressIndicator>\n <DismissUpload\n onPress={() => {\n removeImage(item.id);\n }}\n />\n <UnsupportedImageTypeIndicator indicatorType={indicatorType} />\n </View>\n );\n };\n\n return imageUploads.length > 0 ? (\n <FlatList\n data={imageUploads}\n getItemLayout={(_, index) => ({\n index,\n length: IMAGE_PREVIEW_SIZE + 8,\n offset: (IMAGE_PREVIEW_SIZE + 8) * index,\n })}\n horizontal\n keyExtractor={(item) => item.id}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : null;\n};\n\ntype DismissUploadProps = Pick<TouchableOpacityProps, 'onPress'>;\n\nconst DismissUpload = ({ onPress }: DismissUploadProps) => {\n const {\n theme: {\n colors: { overlay, white },\n messageInput: {\n imageUploadPreview: { dismiss, dismissIconColor },\n },\n },\n } = useTheme();\n\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.dismiss, { backgroundColor: overlay }, dismiss]}\n testID='remove-image-upload-preview'\n >\n <Close pathFill={dismissIconColor || white} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n nextProps: ImageUploadPreviewPropsWithContext<StreamChatGenerics>,\n) => {\n const { imageUploads: prevImageUploads } = prevProps;\n const { imageUploads: nextImageUploads } = nextProps;\n\n return (\n prevImageUploads.length === nextImageUploads.length &&\n prevImageUploads.every(\n (prevImageUpload, index) => prevImageUpload.state === nextImageUploads[index].state,\n )\n );\n};\n\nconst MemoizedImageUploadPreviewWithContext = React.memo(\n ImageUploadPreviewWithContext,\n areEqual,\n) as typeof ImageUploadPreviewWithContext;\n\n/**\n * UI Component to preview the images set for upload\n */\nexport const ImageUploadPreview = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageUploadPreviewProps<StreamChatGenerics>,\n) => {\n const { enableOfflineSupport } = useChatContext<StreamChatGenerics>();\n const { imageUploads, removeImage, uploadImage } = useMessageInputContext<StreamChatGenerics>();\n\n return (\n <MemoizedImageUploadPreviewWithContext\n {...{ imageUploads, removeImage, uploadImage }}\n {...{ enableOfflineSupport }}\n {...props}\n />\n );\n};\n\nImageUploadPreview.displayName = 'ImageUploadPreview{messageInput{imageUploadPreview}}';\n"]}
@@ -19,6 +19,8 @@ var _reactNative = require("react-native");
19
19
 
20
20
  var _useCountdown2 = require("./hooks/useCountdown");
21
21
 
22
+ var _contexts = require("../../contexts");
23
+
22
24
  var _AttachmentPickerContext = require("../../contexts/attachmentPickerContext/AttachmentPickerContext");
23
25
 
24
26
  var _ChannelContext = require("../../contexts/channelContext/ChannelContext");
@@ -126,6 +128,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
126
128
  InputEditingStateHeader = props.InputEditingStateHeader,
127
129
  InputGiphySearch = props.InputGiphySearch,
128
130
  InputReplyStateHeader = props.InputReplyStateHeader,
131
+ isOnline = props.isOnline,
129
132
  isValidMessage = props.isValidMessage,
130
133
  maxNumberOfFiles = props.maxNumberOfFiles,
131
134
  members = props.members,
@@ -427,21 +430,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
427
430
  __self: _this,
428
431
  __source: {
429
432
  fileName: _jsxFileName,
430
- lineNumber: 479,
433
+ lineNumber: 482,
431
434
  columnNumber: 7
432
435
  }
433
436
  }, editing && _react["default"].createElement(InputEditingStateHeader, {
434
437
  __self: _this,
435
438
  __source: {
436
439
  fileName: _jsxFileName,
437
- lineNumber: 487,
440
+ lineNumber: 490,
438
441
  columnNumber: 21
439
442
  }
440
443
  }), quotedMessage && _react["default"].createElement(InputReplyStateHeader, {
441
444
  __self: _this,
442
445
  __source: {
443
446
  fileName: _jsxFileName,
444
- lineNumber: 488,
447
+ lineNumber: 491,
445
448
  columnNumber: 27
446
449
  }
447
450
  }), _react["default"].createElement(_reactNative.View, {
@@ -449,7 +452,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
449
452
  __self: _this,
450
453
  __source: {
451
454
  fileName: _jsxFileName,
452
- lineNumber: 489,
455
+ lineNumber: 492,
453
456
  columnNumber: 9
454
457
  }
455
458
  }, Input ? _react["default"].createElement(Input, {
@@ -458,7 +461,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
458
461
  __self: _this,
459
462
  __source: {
460
463
  fileName: _jsxFileName,
461
- lineNumber: 491,
464
+ lineNumber: 494,
462
465
  columnNumber: 13
463
466
  }
464
467
  }) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
@@ -466,14 +469,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
466
469
  __self: _this,
467
470
  __source: {
468
471
  fileName: _jsxFileName,
469
- lineNumber: 497,
472
+ lineNumber: 500,
470
473
  columnNumber: 15
471
474
  }
472
475
  }, InputButtons && _react["default"].createElement(InputButtons, {
473
476
  __self: _this,
474
477
  __source: {
475
478
  fileName: _jsxFileName,
476
- lineNumber: 498,
479
+ lineNumber: 501,
477
480
  columnNumber: 34
478
481
  }
479
482
  })), _react["default"].createElement(_reactNative.View, {
@@ -484,7 +487,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
484
487
  __self: _this,
485
488
  __source: {
486
489
  fileName: _jsxFileName,
487
- lineNumber: 500,
490
+ lineNumber: 503,
488
491
  columnNumber: 15
489
492
  }
490
493
  }, (typeof editing !== 'boolean' && (editing == null ? void 0 : editing.quoted_message) || quotedMessage) && _react["default"].createElement(_reactNative.View, {
@@ -492,21 +495,21 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
492
495
  __self: _this,
493
496
  __source: {
494
497
  fileName: _jsxFileName,
495
- lineNumber: 511,
498
+ lineNumber: 514,
496
499
  columnNumber: 19
497
500
  }
498
501
  }, _react["default"].createElement(Reply, {
499
502
  __self: _this,
500
503
  __source: {
501
504
  fileName: _jsxFileName,
502
- lineNumber: 512,
505
+ lineNumber: 515,
503
506
  columnNumber: 21
504
507
  }
505
508
  })), imageUploads.length ? _react["default"].createElement(ImageUploadPreview, {
506
509
  __self: _this,
507
510
  __source: {
508
511
  fileName: _jsxFileName,
509
- lineNumber: 515,
512
+ lineNumber: 518,
510
513
  columnNumber: 40
511
514
  }
512
515
  }) : null, imageUploads.length && fileUploads.length ? _react["default"].createElement(_reactNative.View, {
@@ -517,21 +520,22 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
517
520
  __self: _this,
518
521
  __source: {
519
522
  fileName: _jsxFileName,
520
- lineNumber: 517,
523
+ lineNumber: 520,
521
524
  columnNumber: 19
522
525
  }
523
526
  }) : null, fileUploads.length ? _react["default"].createElement(FileUploadPreview, {
524
527
  __self: _this,
525
528
  __source: {
526
529
  fileName: _jsxFileName,
527
- lineNumber: 527,
530
+ lineNumber: 530,
528
531
  columnNumber: 39
529
532
  }
530
533
  }) : null, giphyActive ? _react["default"].createElement(InputGiphySearch, {
534
+ disabled: !isOnline,
531
535
  __self: _this,
532
536
  __source: {
533
537
  fileName: _jsxFileName,
534
- lineNumber: 529,
538
+ lineNumber: 532,
535
539
  columnNumber: 19
536
540
  }
537
541
  }) : _react["default"].createElement(_reactNative.View, {
@@ -539,7 +543,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
539
543
  __self: _this,
540
544
  __source: {
541
545
  fileName: _jsxFileName,
542
- lineNumber: 531,
546
+ lineNumber: 534,
543
547
  columnNumber: 19
544
548
  }
545
549
  }, _react["default"].createElement(_AutoCompleteInput.AutoCompleteInput, {
@@ -548,7 +552,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
548
552
  __self: _this,
549
553
  __source: {
550
554
  fileName: _jsxFileName,
551
- lineNumber: 532,
555
+ lineNumber: 535,
552
556
  columnNumber: 21
553
557
  }
554
558
  }))), _react["default"].createElement(_reactNative.View, {
@@ -556,7 +560,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
556
560
  __self: _this,
557
561
  __source: {
558
562
  fileName: _jsxFileName,
559
- lineNumber: 539,
563
+ lineNumber: 542,
560
564
  columnNumber: 15
561
565
  }
562
566
  }, cooldownRemainingSeconds ? _react["default"].createElement(CooldownTimer, {
@@ -564,15 +568,15 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
564
568
  __self: _this,
565
569
  __source: {
566
570
  fileName: _jsxFileName,
567
- lineNumber: 541,
571
+ lineNumber: 544,
568
572
  columnNumber: 19
569
573
  }
570
574
  }) : _react["default"].createElement(SendButton, {
571
- disabled: disabled || sending.current || !isValidMessage(),
575
+ disabled: disabled || sending.current || !isValidMessage() || giphyActive && !isOnline,
572
576
  __self: _this,
573
577
  __source: {
574
578
  fileName: _jsxFileName,
575
- lineNumber: 543,
579
+ lineNumber: 546,
576
580
  columnNumber: 19
577
581
  }
578
582
  })))), _react["default"].createElement(ShowThreadMessageInChannelButton, {
@@ -580,7 +584,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
580
584
  __self: _this,
581
585
  __source: {
582
586
  fileName: _jsxFileName,
583
- lineNumber: 549,
587
+ lineNumber: 556,
584
588
  columnNumber: 9
585
589
  }
586
590
  })), triggerType && suggestions ? _react["default"].createElement(_reactNative.View, {
@@ -591,7 +595,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
591
595
  __self: _this,
592
596
  __source: {
593
597
  fileName: _jsxFileName,
594
- lineNumber: 553,
598
+ lineNumber: 560,
595
599
  columnNumber: 9
596
600
  }
597
601
  }, _react["default"].createElement(AutoCompleteSuggestionList, {
@@ -603,7 +607,7 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
603
607
  __self: _this,
604
608
  __source: {
605
609
  fileName: _jsxFileName,
606
- lineNumber: 560,
610
+ lineNumber: 567,
607
611
  columnNumber: 11
608
612
  }
609
613
  })) : null, selectedPicker && _react["default"].createElement(_reactNative.View, {
@@ -614,14 +618,14 @@ var MessageInputWithContext = function MessageInputWithContext(props) {
614
618
  __self: _this,
615
619
  __source: {
616
620
  fileName: _jsxFileName,
617
- lineNumber: 570,
621
+ lineNumber: 577,
618
622
  columnNumber: 9
619
623
  }
620
624
  }, _react["default"].createElement(_AttachmentSelectionBar.AttachmentSelectionBar, {
621
625
  __self: _this,
622
626
  __source: {
623
627
  fileName: _jsxFileName,
624
- lineNumber: 582,
628
+ lineNumber: 589,
625
629
  columnNumber: 11
626
630
  }
627
631
  })));
@@ -635,6 +639,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
635
639
  prevFileUploads = prevProps.fileUploads,
636
640
  prevGiphyActive = prevProps.giphyActive,
637
641
  prevImageUploads = prevProps.imageUploads,
642
+ prevIsOnline = prevProps.isOnline,
638
643
  prevIsValidMessage = prevProps.isValidMessage,
639
644
  prevMentionedUsers = prevProps.mentionedUsers,
640
645
  prevQuotedMessage = prevProps.quotedMessage,
@@ -651,6 +656,7 @@ var areEqual = function areEqual(prevProps, nextProps) {
651
656
  nextFileUploads = nextProps.fileUploads,
652
657
  nextGiphyActive = nextProps.giphyActive,
653
658
  nextImageUploads = nextProps.imageUploads,
659
+ nextIsOnline = nextProps.isOnline,
654
660
  nextIsValidMessage = nextProps.isValidMessage,
655
661
  nextMentionedUsers = nextProps.mentionedUsers,
656
662
  nextQuotedMessage = nextProps.quotedMessage,
@@ -678,6 +684,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
678
684
  if (!sendingEqual) return false;
679
685
  var showMoreOptionsEqual = prevShowMoreOptions === nextShowMoreOptions;
680
686
  if (!showMoreOptionsEqual) return false;
687
+ var isOnlineEqual = prevIsOnline === nextIsOnline;
688
+ if (!isOnlineEqual) return false;
681
689
  var isValidMessageEqual = prevIsValidMessage() === nextIsValidMessage();
682
690
  if (!isValidMessageEqual) return false;
683
691
  var asyncUploadsEqual = Object.keys(prevAsyncUploads).every(function (key) {
@@ -703,6 +711,9 @@ var areEqual = function areEqual(prevProps, nextProps) {
703
711
  var MemoizedMessageInput = _react["default"].memo(MessageInputWithContext, areEqual);
704
712
 
705
713
  var MessageInput = function MessageInput(props) {
714
+ var _useChatContext = (0, _contexts.useChatContext)(),
715
+ isOnline = _useChatContext.isOnline;
716
+
706
717
  var ownCapabilities = (0, _OwnCapabilitiesContext.useOwnCapabilitiesContext)();
707
718
 
708
719
  var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
@@ -772,7 +783,7 @@ var MessageInput = function MessageInput(props) {
772
783
  __self: _this,
773
784
  __source: {
774
785
  fileName: _jsxFileName,
775
- lineNumber: 782,
786
+ lineNumber: 795,
776
787
  columnNumber: 12
777
788
  }
778
789
  });
@@ -803,6 +814,7 @@ var MessageInput = function MessageInput(props) {
803
814
  InputEditingStateHeader: InputEditingStateHeader,
804
815
  InputGiphySearch: InputGiphySearch,
805
816
  InputReplyStateHeader: InputReplyStateHeader,
817
+ isOnline: isOnline,
806
818
  isValidMessage: isValidMessage,
807
819
  maxNumberOfFiles: maxNumberOfFiles,
808
820
  members: members,
@@ -831,7 +843,7 @@ var MessageInput = function MessageInput(props) {
831
843
  __self: _this,
832
844
  __source: {
833
845
  fileName: _jsxFileName,
834
- lineNumber: 786,
846
+ lineNumber: 799,
835
847
  columnNumber: 5
836
848
  }
837
849
  }));