stream-chat-react-native-core 5.6.0-beta.0 → 5.6.0-beta.2

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 (171) 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 +3 -3
  4. package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
  5. package/lib/commonjs/components/Channel/Channel.js +43 -33
  6. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  7. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
  8. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  9. package/lib/commonjs/components/Chat/Chat.js +1 -1
  10. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  11. package/lib/commonjs/components/Chat/hooks/useAppSettings.js +51 -22
  12. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +1 -1
  13. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +1 -1
  14. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  15. package/lib/commonjs/components/Message/hooks/useMessageActions.js +2 -2
  16. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  17. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +18 -21
  18. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  19. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -32
  20. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  21. package/lib/commonjs/components/index.js +1 -1
  22. package/lib/commonjs/components/index.js.map +1 -1
  23. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  24. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +128 -89
  25. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  26. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  27. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  28. package/lib/commonjs/store/QuickSqliteClient.js +46 -1
  29. package/lib/commonjs/store/QuickSqliteClient.js.map +1 -1
  30. package/lib/commonjs/store/QuickSqliteClient_v4.js +112 -0
  31. package/lib/commonjs/store/QuickSqliteClient_v4.js.map +1 -0
  32. package/lib/commonjs/store/apis/getAppSettings.js +23 -0
  33. package/lib/commonjs/store/apis/getAppSettings.js.map +1 -0
  34. package/lib/commonjs/store/apis/getPendingTasks.js.map +1 -1
  35. package/lib/commonjs/store/apis/index.js +26 -0
  36. package/lib/commonjs/store/apis/index.js.map +1 -1
  37. package/lib/commonjs/store/apis/queries/selectChannels.js.map +1 -1
  38. package/lib/commonjs/store/apis/queries/selectMembersForChannels.js.map +1 -1
  39. package/lib/commonjs/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  40. package/lib/commonjs/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  41. package/lib/commonjs/store/apis/queries/selectReadsForChannels.js.map +1 -1
  42. package/lib/commonjs/store/apis/upsertAppSettings.js +26 -0
  43. package/lib/commonjs/store/apis/upsertAppSettings.js.map +1 -0
  44. package/lib/commonjs/store/schema.js +1 -0
  45. package/lib/commonjs/store/schema.js.map +1 -1
  46. package/lib/commonjs/utils/DBSyncManager.js +16 -16
  47. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  48. package/lib/commonjs/{components/Message/utils → utils}/removeReservedFields.js +1 -1
  49. package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
  50. package/lib/commonjs/utils/utils.js +2 -2
  51. package/lib/commonjs/utils/utils.js.map +1 -1
  52. package/lib/commonjs/version.json +1 -1
  53. package/lib/module/components/Attachment/Gallery.js +21 -16
  54. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  55. package/lib/module/components/Attachment/GalleryImage.js +3 -3
  56. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  57. package/lib/module/components/Channel/Channel.js +43 -33
  58. package/lib/module/components/Channel/Channel.js.map +1 -1
  59. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
  60. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  61. package/lib/module/components/Chat/Chat.js +1 -1
  62. package/lib/module/components/Chat/Chat.js.map +1 -1
  63. package/lib/module/components/Chat/hooks/useAppSettings.js +51 -22
  64. package/lib/module/components/Chat/hooks/useAppSettings.js.map +1 -1
  65. package/lib/module/components/Chat/hooks/useIsOnline.js +1 -1
  66. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  67. package/lib/module/components/Message/hooks/useMessageActions.js +2 -2
  68. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  69. package/lib/module/components/MessageInput/FileUploadPreview.js +18 -21
  70. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  71. package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -32
  72. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  73. package/lib/module/components/index.js +1 -1
  74. package/lib/module/components/index.js.map +1 -1
  75. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  76. package/lib/module/contexts/messageInputContext/MessageInputContext.js +128 -89
  77. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  78. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  79. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  80. package/lib/module/store/QuickSqliteClient.js +46 -1
  81. package/lib/module/store/QuickSqliteClient.js.map +1 -1
  82. package/lib/module/store/QuickSqliteClient_v4.js +112 -0
  83. package/lib/module/store/QuickSqliteClient_v4.js.map +1 -0
  84. package/lib/module/store/apis/getAppSettings.js +23 -0
  85. package/lib/module/store/apis/getAppSettings.js.map +1 -0
  86. package/lib/module/store/apis/getPendingTasks.js.map +1 -1
  87. package/lib/module/store/apis/index.js +26 -0
  88. package/lib/module/store/apis/index.js.map +1 -1
  89. package/lib/module/store/apis/queries/selectChannels.js.map +1 -1
  90. package/lib/module/store/apis/queries/selectMembersForChannels.js.map +1 -1
  91. package/lib/module/store/apis/queries/selectMessagesForChannels.js.map +1 -1
  92. package/lib/module/store/apis/queries/selectReactionsForMessages.js.map +1 -1
  93. package/lib/module/store/apis/queries/selectReadsForChannels.js.map +1 -1
  94. package/lib/module/store/apis/upsertAppSettings.js +26 -0
  95. package/lib/module/store/apis/upsertAppSettings.js.map +1 -0
  96. package/lib/module/store/schema.js +1 -0
  97. package/lib/module/store/schema.js.map +1 -1
  98. package/lib/module/utils/DBSyncManager.js +16 -16
  99. package/lib/module/utils/DBSyncManager.js.map +1 -1
  100. package/lib/module/{components/Message/utils → utils}/removeReservedFields.js +1 -1
  101. package/lib/module/utils/removeReservedFields.js.map +1 -0
  102. package/lib/module/utils/utils.js +2 -2
  103. package/lib/module/utils/utils.js.map +1 -1
  104. package/lib/module/version.json +1 -1
  105. package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +2 -2
  106. package/lib/typescript/components/Chat/hooks/useIsOnline.d.ts +1 -1
  107. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  108. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +1 -1
  109. package/lib/typescript/components/index.d.ts +1 -1
  110. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -1
  111. package/lib/typescript/store/QuickSqliteClient.d.ts +4 -1
  112. package/lib/typescript/store/QuickSqliteClient_v4.d.ts +12 -0
  113. package/lib/typescript/store/apis/getAppSettings.d.ts +4 -0
  114. package/lib/typescript/store/apis/getPendingTasks.d.ts +1 -1
  115. package/lib/typescript/store/apis/index.d.ts +2 -0
  116. package/lib/typescript/store/apis/upsertAppSettings.d.ts +6 -0
  117. package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +0 -8
  118. package/lib/typescript/store/schema.d.ts +1 -0
  119. package/lib/typescript/store/types.d.ts +0 -4
  120. package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
  121. package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
  122. package/lib/typescript/utils/utils.d.ts +1 -1
  123. package/package.json +1 -1
  124. package/src/components/Attachment/Gallery.tsx +5 -1
  125. package/src/components/Attachment/GalleryImage.tsx +2 -0
  126. package/src/components/Attachment/__tests__/Gallery.test.js +9 -2
  127. package/src/components/Attachment/__tests__/Giphy.test.js +9 -5
  128. package/src/components/Channel/Channel.tsx +20 -12
  129. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +6 -4
  130. package/src/components/Chat/Chat.tsx +1 -1
  131. package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +1 -0
  132. package/src/components/Chat/hooks/useAppSettings.ts +19 -6
  133. package/src/components/Chat/hooks/useIsOnline.ts +1 -1
  134. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +29 -15
  135. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +12 -6
  136. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +9 -4
  137. package/src/components/Message/hooks/useMessageActions.tsx +1 -1
  138. package/src/components/MessageInput/FileUploadPreview.tsx +4 -5
  139. package/src/components/MessageInput/ImageUploadPreview.tsx +10 -35
  140. package/src/components/index.ts +1 -1
  141. package/src/contexts/chatContext/ChatContext.tsx +1 -1
  142. package/src/contexts/messageInputContext/MessageInputContext.tsx +94 -75
  143. package/src/contexts/messageInputContext/__tests__/MessageInputContext.test.tsx +8 -3
  144. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +0 -3
  145. package/src/contexts/messageInputContext/__tests__/uploadFile.test.tsx +16 -6
  146. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
  147. package/src/store/QuickSqliteClient.ts +49 -5
  148. package/src/store/QuickSqliteClient_v4.ts +98 -0
  149. package/src/store/apis/getAppSettings.ts +19 -0
  150. package/src/store/apis/getPendingTasks.ts +2 -1
  151. package/src/store/apis/index.ts +2 -0
  152. package/src/store/apis/queries/selectChannels.ts +4 -1
  153. package/src/store/apis/queries/selectMembersForChannels.ts +1 -1
  154. package/src/store/apis/queries/selectMessagesForChannels.ts +1 -1
  155. package/src/store/apis/queries/selectReactionsForMessages.ts +1 -1
  156. package/src/store/apis/queries/selectReadsForChannels.ts +1 -1
  157. package/src/store/apis/upsertAppSettings.ts +23 -0
  158. package/src/store/schema.ts +2 -0
  159. package/src/store/types.ts +0 -5
  160. package/src/utils/DBSyncManager.ts +1 -1
  161. package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
  162. package/src/utils/utils.ts +7 -6
  163. package/src/version.json +1 -1
  164. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
  165. package/lib/commonjs/utils/pendingTaskUtils.js +0 -302
  166. package/lib/commonjs/utils/pendingTaskUtils.js.map +0 -1
  167. package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
  168. package/lib/module/utils/pendingTaskUtils.js +0 -302
  169. package/lib/module/utils/pendingTaskUtils.js.map +0 -1
  170. package/lib/typescript/utils/pendingTaskUtils.d.ts +0 -13
  171. package/src/utils/pendingTaskUtils.ts +0 -131
@@ -0,0 +1,23 @@
1
+ import type { AppSettingsAPIResponse } from 'stream-chat';
2
+
3
+ import { QuickSqliteClient } from '../QuickSqliteClient';
4
+ import { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';
5
+
6
+ export const upsertAppSettings = ({
7
+ appSettings,
8
+ currentUserId,
9
+ flush = true,
10
+ }: {
11
+ appSettings: AppSettingsAPIResponse;
12
+ currentUserId: string;
13
+ flush?: boolean;
14
+ }) => {
15
+ const query = createUpsertQuery('userSyncStatus', {
16
+ appSettings: JSON.stringify(appSettings),
17
+ userId: currentUserId,
18
+ });
19
+
20
+ if (flush) {
21
+ QuickSqliteClient.executeSql.apply(null, query);
22
+ }
23
+ };
@@ -201,6 +201,7 @@ export const tables: Tables = {
201
201
  },
202
202
  userSyncStatus: {
203
203
  columns: {
204
+ appSettings: 'TEXT',
204
205
  lastSyncedAt: 'TEXT',
205
206
  userId: 'TEXT',
206
207
  },
@@ -302,6 +303,7 @@ export type Schema = {
302
303
  updatedAt?: string;
303
304
  };
304
305
  userSyncStatus: {
306
+ appSettings: string;
305
307
  lastSyncedAt: string;
306
308
  userId: string;
307
309
  };
@@ -16,7 +16,6 @@ export type PreparedQueries = [string] | [string, Array<any>];
16
16
  export type PendingTaskTypes = {
17
17
  deleteMessage: 'delete-message';
18
18
  deleteReaction: 'delete-reaction';
19
- sendMessage: 'send-message';
20
19
  sendReaction: 'send-reaction';
21
20
  };
22
21
 
@@ -30,10 +29,6 @@ export type PendingTask = {
30
29
  payload: Parameters<Channel['sendReaction']>;
31
30
  type: PendingTaskTypes['sendReaction'];
32
31
  }
33
- | {
34
- payload: Parameters<Channel['sendMessage']>;
35
- type: PendingTaskTypes['sendMessage'];
36
- }
37
32
  | {
38
33
  payload: Parameters<StreamChat['deleteMessage']>;
39
34
  type: PendingTaskTypes['deleteMessage'];
@@ -208,7 +208,7 @@ export class DBSyncManager {
208
208
  }
209
209
  };
210
210
 
211
- dropPendingTasks = (conditions: { messageId: string }) => {
211
+ static dropPendingTasks = (conditions: { messageId: string }) => {
212
212
  const tasks = getPendingTasks(conditions);
213
213
 
214
214
  for (const task of tasks) {
@@ -1,5 +1,5 @@
1
- import type { DefaultStreamChatGenerics } from '../../../types/types';
2
- import type { MessageType } from '../../MessageList/hooks/useMessageList';
1
+ import type { MessageType } from '../components/MessageList/hooks/useMessageList';
2
+ import type { DefaultStreamChatGenerics } from '../types/types';
3
3
 
4
4
  export const removeReservedFields = <
5
5
  StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,
@@ -12,7 +12,11 @@ export const removeReservedFields = <
12
12
  'config',
13
13
  'created_at',
14
14
  'created_by',
15
- 'id',
15
+ 'deleted_at',
16
+ 'i18n',
17
+ 'latest_reactions',
18
+ 'own_reactions',
19
+ 'reaction_counts',
16
20
  'last_message_at',
17
21
  'member_count',
18
22
  'type',
@@ -64,15 +64,16 @@ type IndicatorStatesMap = Record<ValueOf<typeof FileState>, Progress | null>;
64
64
 
65
65
  export const getIndicatorTypeForFileState = (
66
66
  fileState: FileStateValue,
67
- isOnline: boolean,
68
67
  enableOfflineSupport: boolean,
69
68
  ): Progress | null => {
70
69
  const indicatorMap: IndicatorStatesMap = {
71
- [FileState.UPLOADING]: ProgressIndicatorTypes.IN_PROGRESS,
72
- [FileState.UPLOAD_FAILED]:
73
- !isOnline && enableOfflineSupport
74
- ? ProgressIndicatorTypes.INACTIVE
75
- : ProgressIndicatorTypes.RETRY,
70
+ [FileState.UPLOADING]: enableOfflineSupport
71
+ ? ProgressIndicatorTypes.INACTIVE
72
+ : ProgressIndicatorTypes.IN_PROGRESS,
73
+ // If offline support is disabled, then there is no need
74
+ [FileState.UPLOAD_FAILED]: enableOfflineSupport
75
+ ? ProgressIndicatorTypes.INACTIVE
76
+ : ProgressIndicatorTypes.RETRY,
76
77
  [FileState.NOT_SUPPORTED]: ProgressIndicatorTypes.NOT_SUPPORTED,
77
78
  [FileState.UPLOADED]: ProgressIndicatorTypes.INACTIVE,
78
79
  [FileState.FINISHED]: ProgressIndicatorTypes.INACTIVE,
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.6.0-beta.0"
2
+ "version": "5.6.0-beta.2"
3
3
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["removeReservedFields.ts"],"names":["removeReservedFields","message","retryMessage","reserved","forEach","key"],"mappings":";;;;;;;;;AAGO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAGlCC,OAHkC,EAI/B;AACH,MAAMC,YAAY,iCAAQD,OAAR,CAAlB;AACA,MAAME,QAAQ,GAAG,CACf,KADe,EAEf,QAFe,EAGf,YAHe,EAIf,YAJe,EAKf,IALe,EAMf,iBANe,EAOf,cAPe,EAQf,MARe,EASf,YATe,CAAjB;AAWAA,EAAAA,QAAQ,CAACC,OAAT,CAAiB,UAACC,GAAD,EAAS;AACxB,WAAOH,YAAY,CAACG,GAAD,CAAnB;AACD,GAFD;AAIA,SAAOH,YAAP;AACD,CAtBM","sourcesContent":["import type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nexport const removeReservedFields = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => {\n const retryMessage = { ...message };\n const reserved = [\n 'cid',\n 'config',\n 'created_at',\n 'created_by',\n 'id',\n 'last_message_at',\n 'member_count',\n 'type',\n 'updated_at',\n ];\n reserved.forEach((key) => {\n delete retryMessage[key];\n });\n\n return retryMessage;\n};\n"]}
@@ -1,302 +0,0 @@
1
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.queueTask = exports.executePendingTasks = exports.dropPendingTasks = void 0;
7
-
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _addPendingTask = require("../store/apis/addPendingTask");
15
-
16
- var _deletePendingTask = require("../store/apis/deletePendingTask");
17
-
18
- var _getPendingTasks = require("../store/apis/getPendingTasks");
19
-
20
- function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
21
-
22
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
-
24
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
-
26
- var queueTask = function () {
27
- var _ref2 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref) {
28
- var client, task, removeFromApi, response, _response, _response$data;
29
-
30
- return _regenerator["default"].wrap(function _callee$(_context) {
31
- while (1) {
32
- switch (_context.prev = _context.next) {
33
- case 0:
34
- client = _ref.client, task = _ref.task;
35
- removeFromApi = (0, _addPendingTask.addPendingTask)(task);
36
- _context.prev = 2;
37
- _context.next = 5;
38
- return executeTask({
39
- client: client,
40
- task: task
41
- });
42
-
43
- case 5:
44
- response = _context.sent;
45
- _context.next = 14;
46
- break;
47
-
48
- case 8:
49
- _context.prev = 8;
50
- _context.t0 = _context["catch"](2);
51
-
52
- if (!((_context.t0 == null ? void 0 : (_response = _context.t0.response) == null ? void 0 : (_response$data = _response.data) == null ? void 0 : _response$data.code) === 4)) {
53
- _context.next = 13;
54
- break;
55
- }
56
-
57
- _context.next = 14;
58
- break;
59
-
60
- case 13:
61
- throw _context.t0;
62
-
63
- case 14:
64
- removeFromApi();
65
- return _context.abrupt("return", response);
66
-
67
- case 16:
68
- case "end":
69
- return _context.stop();
70
- }
71
- }
72
- }, _callee, null, [[2, 8]]);
73
- }));
74
-
75
- return function queueTask(_x) {
76
- return _ref2.apply(this, arguments);
77
- };
78
- }();
79
-
80
- exports.queueTask = queueTask;
81
-
82
- var executeTask = function () {
83
- var _ref4 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(_ref3) {
84
- var client, task, channel, _message$attachments, message, i, _message$attachments2, attachment, response, _response2;
85
-
86
- return _regenerator["default"].wrap(function _callee2$(_context2) {
87
- while (1) {
88
- switch (_context2.prev = _context2.next) {
89
- case 0:
90
- client = _ref3.client, task = _ref3.task;
91
- channel = client.channel(task.channelType, task.channelId);
92
-
93
- if (!(task.type === 'send-reaction')) {
94
- _context2.next = 6;
95
- break;
96
- }
97
-
98
- _context2.next = 5;
99
- return channel.sendReaction.apply(channel, (0, _toConsumableArray2["default"])(task.payload));
100
-
101
- case 5:
102
- return _context2.abrupt("return", _context2.sent);
103
-
104
- case 6:
105
- if (!(task.type === 'delete-reaction')) {
106
- _context2.next = 10;
107
- break;
108
- }
109
-
110
- _context2.next = 9;
111
- return channel.deleteReaction.apply(channel, (0, _toConsumableArray2["default"])(task.payload));
112
-
113
- case 9:
114
- return _context2.abrupt("return", _context2.sent);
115
-
116
- case 10:
117
- if (!(task.type === 'delete-message')) {
118
- _context2.next = 14;
119
- break;
120
- }
121
-
122
- _context2.next = 13;
123
- return client.deleteMessage.apply(client, (0, _toConsumableArray2["default"])(task.payload));
124
-
125
- case 13:
126
- return _context2.abrupt("return", _context2.sent);
127
-
128
- case 14:
129
- if (!(task.type === 'send-message')) {
130
- _context2.next = 36;
131
- break;
132
- }
133
-
134
- message = task.payload[0];
135
-
136
- if (!((_message$attachments = message.attachments) != null && _message$attachments.length)) {
137
- _context2.next = 33;
138
- break;
139
- }
140
-
141
- i = 0;
142
-
143
- case 18:
144
- if (!(i < ((_message$attachments2 = message.attachments) == null ? void 0 : _message$attachments2.length))) {
145
- _context2.next = 33;
146
- break;
147
- }
148
-
149
- attachment = message.attachments[i];
150
-
151
- if (!(attachment.type === 'image' && attachment.image_url)) {
152
- _context2.next = 25;
153
- break;
154
- }
155
-
156
- _context2.next = 23;
157
- return channel.sendImage(attachment.image_url);
158
-
159
- case 23:
160
- response = _context2.sent;
161
- attachment.image_url = response.file;
162
-
163
- case 25:
164
- if (!((attachment.type === 'file' || attachment.type === 'audio' || attachment.type === 'video') && attachment.asset_url)) {
165
- _context2.next = 30;
166
- break;
167
- }
168
-
169
- _context2.next = 28;
170
- return channel.sendFile(attachment.asset_url);
171
-
172
- case 28:
173
- _response2 = _context2.sent;
174
- attachment.asset_url = _response2.file;
175
-
176
- case 30:
177
- i++;
178
- _context2.next = 18;
179
- break;
180
-
181
- case 33:
182
- _context2.next = 35;
183
- return channel.sendMessage.apply(channel, (0, _toConsumableArray2["default"])(task.payload));
184
-
185
- case 35:
186
- return _context2.abrupt("return", _context2.sent);
187
-
188
- case 36:
189
- throw new Error('Invalid task type');
190
-
191
- case 37:
192
- case "end":
193
- return _context2.stop();
194
- }
195
- }
196
- }, _callee2);
197
- }));
198
-
199
- return function executeTask(_x2) {
200
- return _ref4.apply(this, arguments);
201
- };
202
- }();
203
-
204
- var restBeforeNextTask = function restBeforeNextTask() {
205
- return new Promise(function (resolve) {
206
- return setTimeout(resolve, 500);
207
- });
208
- };
209
-
210
- var executePendingTasks = function () {
211
- var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(client) {
212
- var queue, _iterator, _step, task, _response3, _response3$data;
213
-
214
- return _regenerator["default"].wrap(function _callee3$(_context3) {
215
- while (1) {
216
- switch (_context3.prev = _context3.next) {
217
- case 0:
218
- queue = (0, _getPendingTasks.getPendingTasks)();
219
- _iterator = _createForOfIteratorHelperLoose(queue);
220
-
221
- case 2:
222
- if ((_step = _iterator()).done) {
223
- _context3.next = 22;
224
- break;
225
- }
226
-
227
- task = _step.value;
228
-
229
- if (task.id) {
230
- _context3.next = 6;
231
- break;
232
- }
233
-
234
- return _context3.abrupt("continue", 20);
235
-
236
- case 6:
237
- _context3.prev = 6;
238
- _context3.next = 9;
239
- return executeTask({
240
- client: client,
241
- task: task
242
- });
243
-
244
- case 9:
245
- _context3.next = 17;
246
- break;
247
-
248
- case 11:
249
- _context3.prev = 11;
250
- _context3.t0 = _context3["catch"](6);
251
-
252
- if (!((_context3.t0 == null ? void 0 : (_response3 = _context3.t0.response) == null ? void 0 : (_response3$data = _response3.data) == null ? void 0 : _response3$data.code) === 4)) {
253
- _context3.next = 16;
254
- break;
255
- }
256
-
257
- _context3.next = 17;
258
- break;
259
-
260
- case 16:
261
- throw _context3.t0;
262
-
263
- case 17:
264
- (0, _deletePendingTask.deletePendingTask)({
265
- id: task.id
266
- });
267
- _context3.next = 20;
268
- return restBeforeNextTask();
269
-
270
- case 20:
271
- _context3.next = 2;
272
- break;
273
-
274
- case 22:
275
- case "end":
276
- return _context3.stop();
277
- }
278
- }
279
- }, _callee3, null, [[6, 11]]);
280
- }));
281
-
282
- return function executePendingTasks(_x3) {
283
- return _ref5.apply(this, arguments);
284
- };
285
- }();
286
-
287
- exports.executePendingTasks = executePendingTasks;
288
-
289
- var dropPendingTasks = function dropPendingTasks(conditions) {
290
- var tasks = (0, _getPendingTasks.getPendingTasks)(conditions);
291
-
292
- for (var _iterator2 = _createForOfIteratorHelperLoose(tasks), _step2; !(_step2 = _iterator2()).done;) {
293
- var task = _step2.value;
294
- if (!task.id) continue;
295
- (0, _deletePendingTask.deletePendingTask)({
296
- id: task.id
297
- });
298
- }
299
- };
300
-
301
- exports.dropPendingTasks = dropPendingTasks;
302
- //# sourceMappingURL=pendingTaskUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["pendingTaskUtils.ts"],"names":["queueTask","client","task","removeFromApi","executeTask","response","data","code","channel","channelType","channelId","type","sendReaction","payload","deleteReaction","deleteMessage","message","attachments","length","i","attachment","image_url","sendImage","file","asset_url","sendFile","sendMessage","Error","restBeforeNextTask","Promise","resolve","setTimeout","executePendingTasks","queue","id","dropPendingTasks","conditions","tasks"],"mappings":"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","sourcesContent":["import type { AxiosError } from 'axios';\n\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport type { PendingTask } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\nexport const queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n task,\n}: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n}) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n};\n\nconst executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n task,\n}: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n}) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n if (task.type === 'send-message') {\n const message = task.payload[0];\n if (message.attachments?.length) {\n for (let i = 0; i < message.attachments?.length; i++) {\n const attachment = message.attachments[i];\n if (attachment.type === 'image' && attachment.image_url) {\n const response = await channel.sendImage(attachment.image_url);\n attachment.image_url = response.file;\n }\n\n if (\n (attachment.type === 'file' ||\n attachment.type === 'audio' ||\n attachment.type === 'video') &&\n attachment.asset_url\n ) {\n const response = await channel.sendFile(attachment.asset_url);\n attachment.asset_url = response.file;\n }\n }\n }\n\n return await channel.sendMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n};\n\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\nexport const executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n};\n\nexport const dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["removeReservedFields.ts"],"names":["removeReservedFields","message","retryMessage","reserved","forEach","key"],"mappings":";;;;;;;;;AAGO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,CAGlCC,OAHkC,EAI/B;AACH,MAAMC,YAAY,iCAAQD,OAAR,CAAlB;AACA,MAAME,QAAQ,GAAG,CACf,KADe,EAEf,QAFe,EAGf,YAHe,EAIf,YAJe,EAKf,IALe,EAMf,iBANe,EAOf,cAPe,EAQf,MARe,EASf,YATe,CAAjB;AAWAA,EAAAA,QAAQ,CAACC,OAAT,CAAiB,UAACC,GAAD,EAAS;AACxB,WAAOH,YAAY,CAACG,GAAD,CAAnB;AACD,GAFD;AAIA,SAAOH,YAAP;AACD,CAtBM","sourcesContent":["import type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nexport const removeReservedFields = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n message: MessageType<StreamChatGenerics>,\n) => {\n const retryMessage = { ...message };\n const reserved = [\n 'cid',\n 'config',\n 'created_at',\n 'created_by',\n 'id',\n 'last_message_at',\n 'member_count',\n 'type',\n 'updated_at',\n ];\n reserved.forEach((key) => {\n delete retryMessage[key];\n });\n\n return retryMessage;\n};\n"]}