stream-chat-react-native-core 5.6.0-beta.0 → 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 (87) 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 +34 -30
  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/Message/hooks/useMessageActions.js +2 -2
  10. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
  11. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +18 -21
  12. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  13. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -32
  14. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  15. package/lib/commonjs/components/index.js +1 -1
  16. package/lib/commonjs/components/index.js.map +1 -1
  17. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +128 -89
  18. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  19. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  20. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  21. package/lib/commonjs/utils/DBSyncManager.js +16 -16
  22. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  23. package/lib/commonjs/{components/Message/utils → utils}/removeReservedFields.js +1 -1
  24. package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
  25. package/lib/commonjs/utils/utils.js +2 -2
  26. package/lib/commonjs/utils/utils.js.map +1 -1
  27. package/lib/commonjs/version.json +1 -1
  28. package/lib/module/components/Attachment/Gallery.js +21 -16
  29. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  30. package/lib/module/components/Attachment/GalleryImage.js +3 -3
  31. package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
  32. package/lib/module/components/Channel/Channel.js +34 -30
  33. package/lib/module/components/Channel/Channel.js.map +1 -1
  34. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
  35. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  36. package/lib/module/components/Message/hooks/useMessageActions.js +2 -2
  37. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
  38. package/lib/module/components/MessageInput/FileUploadPreview.js +18 -21
  39. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  40. package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -32
  41. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  42. package/lib/module/components/index.js +1 -1
  43. package/lib/module/components/index.js.map +1 -1
  44. package/lib/module/contexts/messageInputContext/MessageInputContext.js +128 -89
  45. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  46. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
  47. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  48. package/lib/module/utils/DBSyncManager.js +16 -16
  49. package/lib/module/utils/DBSyncManager.js.map +1 -1
  50. package/lib/module/{components/Message/utils → utils}/removeReservedFields.js +1 -1
  51. package/lib/module/utils/removeReservedFields.js.map +1 -0
  52. package/lib/module/utils/utils.js +2 -2
  53. package/lib/module/utils/utils.js.map +1 -1
  54. package/lib/module/version.json +1 -1
  55. package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
  56. package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +1 -1
  57. package/lib/typescript/components/index.d.ts +1 -1
  58. package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +0 -8
  59. package/lib/typescript/store/types.d.ts +0 -4
  60. package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
  61. package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
  62. package/lib/typescript/utils/utils.d.ts +1 -1
  63. package/package.json +1 -1
  64. package/src/components/Attachment/Gallery.tsx +5 -1
  65. package/src/components/Attachment/GalleryImage.tsx +2 -0
  66. package/src/components/Channel/Channel.tsx +12 -11
  67. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +6 -4
  68. package/src/components/Message/hooks/useMessageActions.tsx +1 -1
  69. package/src/components/MessageInput/FileUploadPreview.tsx +4 -5
  70. package/src/components/MessageInput/ImageUploadPreview.tsx +10 -35
  71. package/src/components/index.ts +1 -1
  72. package/src/contexts/messageInputContext/MessageInputContext.tsx +94 -75
  73. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +0 -3
  74. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
  75. package/src/store/types.ts +0 -5
  76. package/src/utils/DBSyncManager.ts +1 -1
  77. package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
  78. package/src/utils/utils.ts +7 -6
  79. package/src/version.json +1 -1
  80. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
  81. package/lib/commonjs/utils/pendingTaskUtils.js +0 -302
  82. package/lib/commonjs/utils/pendingTaskUtils.js.map +0 -1
  83. package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
  84. package/lib/module/utils/pendingTaskUtils.js +0 -302
  85. package/lib/module/utils/pendingTaskUtils.js.map +0 -1
  86. package/lib/typescript/utils/pendingTaskUtils.d.ts +0 -13
  87. package/src/utils/pendingTaskUtils.ts +0 -131
@@ -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"]}
@@ -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,13 +0,0 @@
1
- import type { StreamChat } from 'stream-chat';
2
- import type { PendingTask } from '../store/types';
3
- import type { DefaultStreamChatGenerics } from '../types/types';
4
- export declare const queueTask: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ client, task, }: {
5
- client: StreamChat<StreamChatGenerics>;
6
- task: PendingTask;
7
- }) => Promise<(import("stream-chat").APIResponse & {
8
- message: import("stream-chat").MessageResponse<StreamChatGenerics>;
9
- }) | undefined>;
10
- export declare const executePendingTasks: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(client: StreamChat<StreamChatGenerics>) => Promise<void>;
11
- export declare const dropPendingTasks: (conditions: {
12
- messageId: string;
13
- }) => void;