sceyt-chat-react-uikit 1.7.9-beta.1 → 1.7.9-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 (3) hide show
  1. package/index.js +173 -122
  2. package/index.modern.js +174 -123
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -11000,6 +11000,9 @@ function setMessagesToMap(channelId, messages, firstMessageId, lastMessageId) {
11000
11000
  }
11001
11001
  }
11002
11002
  messages.forEach(function (msg) {
11003
+ if (msg.tid && messagesMap[channelId][msg.tid]) {
11004
+ delete messagesMap[channelId][msg.tid];
11005
+ }
11003
11006
  messagesMap[channelId][msg.id || msg.tid] = msg;
11004
11007
  });
11005
11008
  }
@@ -16344,7 +16347,7 @@ var _marked$2 = /*#__PURE__*/_regenerator().m(createChannel),
16344
16347
  _marked37 = /*#__PURE__*/_regenerator().m(loadMoreMutualChannels),
16345
16348
  _marked38 = /*#__PURE__*/_regenerator().m(ChannelsSaga);
16346
16349
  function createChannel(action) {
16347
- var payload, channelData, dontCreateIfNotExists, callback, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
16350
+ var payload, channelData, dontCreateIfNotExists, callback, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, whoDoesNotAdded, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
16348
16351
  return _regenerator().w(function (_context) {
16349
16352
  while (1) switch (_context.p = _context.n) {
16350
16353
  case 0:
@@ -16436,26 +16439,38 @@ function createChannel(action) {
16436
16439
  case 7:
16437
16440
  createdChannel = _context.v;
16438
16441
  case 8:
16442
+ whoDoesNotAdded = channelData.members.filter(function (mem) {
16443
+ return !createdChannel.members.some(function (addedMem) {
16444
+ return addedMem.id === mem.id;
16445
+ });
16446
+ });
16447
+ if (!whoDoesNotAdded.length) {
16448
+ _context.n = 9;
16449
+ break;
16450
+ }
16451
+ _context.n = 9;
16452
+ return effects.put(setActionIsRestrictedAC(true, false, whoDoesNotAdded));
16453
+ case 9:
16439
16454
  checkChannelExist = false;
16440
16455
  if (!(createdChannel.type === DEFAULT_CHANNEL_TYPE.DIRECT)) {
16441
- _context.n = 10;
16456
+ _context.n = 11;
16442
16457
  break;
16443
16458
  }
16444
- _context.n = 9;
16459
+ _context.n = 10;
16445
16460
  return effects.call(checkChannelExists, createdChannel.id);
16446
- case 9:
16447
- checkChannelExist = _context.v;
16448
16461
  case 10:
16462
+ checkChannelExist = _context.v;
16463
+ case 11:
16449
16464
  createdChannel.metadata = isJSON(createdChannel.metadata) ? JSON.parse(createdChannel.metadata) : createdChannel.metadata;
16450
16465
  if (checkChannelExist) {
16451
- _context.n = 13;
16466
+ _context.n = 14;
16452
16467
  break;
16453
16468
  }
16454
- _context.n = 11;
16469
+ _context.n = 12;
16455
16470
  return effects.call(setChannelInMap, createdChannel);
16456
- case 11:
16471
+ case 12:
16457
16472
  if (!(createdChannel.type !== DEFAULT_CHANNEL_TYPE.DIRECT)) {
16458
- _context.n = 12;
16473
+ _context.n = 13;
16459
16474
  break;
16460
16475
  }
16461
16476
  messageToSend = {
@@ -16464,21 +16479,21 @@ function createChannel(action) {
16464
16479
  attachments: [],
16465
16480
  type: 'system'
16466
16481
  };
16467
- _context.n = 12;
16482
+ _context.n = 13;
16468
16483
  return effects.put(sendTextMessageAC(messageToSend, createdChannel.id, CONNECTION_STATUS.CONNECTED));
16469
- case 12:
16484
+ case 13:
16470
16485
  if (!(!dontCreateIfNotExists || channelIsExistOnAllChannels)) {
16471
- _context.n = 13;
16486
+ _context.n = 14;
16472
16487
  break;
16473
16488
  }
16474
- _context.n = 13;
16475
- return effects.put(setChannelToAddAC(JSON.parse(JSON.stringify(createdChannel))));
16476
- case 13:
16477
16489
  _context.n = 14;
16490
+ return effects.put(setChannelToAddAC(JSON.parse(JSON.stringify(createdChannel))));
16491
+ case 14:
16492
+ _context.n = 15;
16478
16493
  return effects.put(switchChannelActionAC(JSON.parse(JSON.stringify(_extends({}, createdChannel, {
16479
16494
  isLinkedChannel: dontCreateIfNotExists
16480
16495
  }))), !callback));
16481
- case 14:
16496
+ case 15:
16482
16497
  if (dontCreateIfNotExists) {
16483
16498
  if (!channelIsExistOnAllChannels) {
16484
16499
  addChannelToAllChannels(createdChannel);
@@ -16508,33 +16523,26 @@ function createChannel(action) {
16508
16523
  }
16509
16524
  }
16510
16525
  if (!callback) {
16511
- _context.n = 15;
16526
+ _context.n = 16;
16512
16527
  break;
16513
16528
  }
16514
16529
  callback(createdChannel);
16515
- _context.n = 16;
16530
+ _context.n = 17;
16516
16531
  break;
16517
- case 15:
16518
- _context.n = 16;
16519
- return effects.call(setActiveChannelId, createdChannel.id);
16520
16532
  case 16:
16533
+ _context.n = 17;
16534
+ return effects.call(setActiveChannelId, createdChannel.id);
16535
+ case 17:
16521
16536
  _context.n = 19;
16522
16537
  break;
16523
- case 17:
16524
- _context.p = 17;
16525
- _t = _context.v;
16526
- if (!(_t.code === 1041)) {
16527
- _context.n = 18;
16528
- break;
16529
- }
16530
- _context.n = 18;
16531
- return effects.put(setActionIsRestrictedAC(true, false, null));
16532
16538
  case 18:
16539
+ _context.p = 18;
16540
+ _t = _context.v;
16533
16541
  log.error(_t, 'Error on create channel');
16534
16542
  case 19:
16535
16543
  return _context.a(2);
16536
16544
  }
16537
- }, _marked$2, null, [[0, 17]]);
16545
+ }, _marked$2, null, [[0, 18]]);
16538
16546
  }
16539
16547
  function getChannels(action) {
16540
16548
  var _params$filter, _types, _activeChannel, _mappedChannels, _mappedChannels3, _mappedChannels4, payload, params, SceytChatClient, connectionStatus, channelQueryBuilder, channelTypesFilter, types, limit, channelQuery, channelsData, channelList, channelId, activeChannel, _yield$call, mappedChannels, channelsForUpdateLastReactionMessage, _Object$keys, _mappedChannels2, channelMessageMap, _activeChannel2, _activeChannel3, hiddenList, allChannelsQueryBuilder, allChannelsQuery, hasNext, totalAllChannelsAdded, i, _connectionStatus, allChannelsData, allChannelList, _t2, _t3, _t4;
@@ -18713,6 +18721,8 @@ function getChannelsWithUser(action) {
18713
18721
  channelsQueryBuilder = new _SceytChatClient10.ChannelListQueryBuilder();
18714
18722
  channelsQueryBuilder.memberCount(0);
18715
18723
  channelsQueryBuilder.setMutualWithUserId(userId);
18724
+ channelsQueryBuilder.types([DEFAULT_CHANNEL_TYPE.DIRECT]);
18725
+ channelsQueryBuilder.setWithTypes(false);
18716
18726
  channelsQueryBuilder.limit(15);
18717
18727
  _context36.n = 3;
18718
18728
  return effects.call(channelsQueryBuilder.build);
@@ -20765,7 +20775,7 @@ var getFilteredPendingMessages = function getFilteredPendingMessages(messages) {
20765
20775
  return filteredPendingMessages;
20766
20776
  };
20767
20777
  function getMessagesQuery(action) {
20768
- var _action$payload, channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, _result$messages$, _result$messages, _messages$Math$floor, messages, centerMessageId, loadWithMessageId, allMessages, messageIndex, maxLengthPart, _result$messages$2, _result$messages2, secondResult, thirdResult, fourthResult, _fourthResult, _result$messages$3, _result$messages3, _channel$lastMessage4, _channel$lastMessage5, _channel$lastMessage6, _updatedMessages$, _parsedMessages$, _parsedMessages, parsedMessages, _filteredPendingMessages, updatedMessages, messageIdForLoad, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
20778
+ var _action$payload, channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, _result$messages$, _result$messages, _messages$Math$floor, messages, centerMessageId, loadWithMessageId, allMessages, messageIndex, maxLengthPart, _result$messages$2, _result$messages2, secondResult, thirdResult, fourthResult, _fourthResult, _result$messages$3, _result$messages3, _channel$lastMessage4, _channel$lastMessage5, _channel$lastMessage6, _filteredPendingMessages, updatedMessages, messageIdForLoad, _updatedMessages$, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
20769
20779
  return _regenerator().w(function (_context10) {
20770
20780
  while (1) switch (_context10.p = _context10.n) {
20771
20781
  case 0:
@@ -20776,7 +20786,7 @@ function getMessagesQuery(action) {
20776
20786
  _action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, highlight = _action$payload.highlight, behavior = _action$payload.behavior, scrollToMessage = _action$payload.scrollToMessage, networkChanged = _action$payload.networkChanged;
20777
20787
  connectionState = store.getState().UserReducer.connectionStatus;
20778
20788
  if (!(channel !== null && channel !== void 0 && channel.id && !(channel !== null && channel !== void 0 && channel.isMockChannel))) {
20779
- _context10.n = 84;
20789
+ _context10.n = 85;
20780
20790
  break;
20781
20791
  }
20782
20792
  SceytChatClient = getClient();
@@ -20897,7 +20907,7 @@ function getMessagesQuery(action) {
20897
20907
  _context10.n = 21;
20898
20908
  return effects.put(scrollToNewMessageAC(true));
20899
20909
  case 21:
20900
- _context10.n = 77;
20910
+ _context10.n = 78;
20901
20911
  break;
20902
20912
  case 22:
20903
20913
  if (!messageId) {
@@ -21074,7 +21084,7 @@ function getMessagesQuery(action) {
21074
21084
  _context10.n = 51;
21075
21085
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21076
21086
  case 51:
21077
- _context10.n = 77;
21087
+ _context10.n = 78;
21078
21088
  break;
21079
21089
  case 52:
21080
21090
  if (!(channel.newMessageCount && channel.lastDisplayedMessageId)) {
@@ -21136,69 +21146,70 @@ function getMessagesQuery(action) {
21136
21146
  _context10.n = 63;
21137
21147
  return effects.put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
21138
21148
  case 63:
21139
- _context10.n = 77;
21149
+ _context10.n = 78;
21140
21150
  break;
21141
21151
  case 64:
21142
21152
  if (!(cachedMessages && cachedMessages.length)) {
21143
- _context10.n = 66;
21153
+ _context10.n = 67;
21144
21154
  break;
21145
21155
  }
21146
- parsedMessages = getFromAllMessagesByMessageId('', '', true);
21147
- setMessagesToMap(channel.id, parsedMessages, (_parsedMessages$ = parsedMessages[0]) === null || _parsedMessages$ === void 0 ? void 0 : _parsedMessages$.id, (_parsedMessages = parsedMessages[parsedMessages.length - 1]) === null || _parsedMessages === void 0 ? void 0 : _parsedMessages.id);
21148
21156
  _context10.n = 65;
21149
- return effects.put(setMessagesAC(JSON.parse(JSON.stringify(parsedMessages))));
21157
+ return effects.put(setMessagesAC(JSON.parse(JSON.stringify(cachedMessages))));
21150
21158
  case 65:
21151
- _filteredPendingMessages = getFilteredPendingMessages(parsedMessages);
21152
21159
  _context10.n = 66;
21153
- return effects.put(addMessagesAC(_filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21160
+ return effects.delay(0);
21154
21161
  case 66:
21162
+ _filteredPendingMessages = getFilteredPendingMessages(cachedMessages);
21163
+ _context10.n = 67;
21164
+ return effects.put(addMessagesAC(_filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21165
+ case 67:
21155
21166
  log.info('load message from server');
21156
21167
  result = {
21157
21168
  messages: [],
21158
21169
  hasNext: false
21159
21170
  };
21160
21171
  if (!((channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage4 = channel.lastMessage) === null || _channel$lastMessage4 === void 0 ? void 0 : _channel$lastMessage4.id))) {
21161
- _context10.n = 70;
21172
+ _context10.n = 71;
21162
21173
  break;
21163
21174
  }
21164
21175
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
21165
- _context10.n = 68;
21176
+ _context10.n = 69;
21166
21177
  break;
21167
21178
  }
21168
- _context10.n = 67;
21179
+ _context10.n = 68;
21169
21180
  return effects.call(messageQuery.loadPreviousMessageId, channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId);
21170
- case 67:
21181
+ case 68:
21171
21182
  _t18 = _context10.v;
21172
- _context10.n = 69;
21183
+ _context10.n = 70;
21173
21184
  break;
21174
- case 68:
21185
+ case 69:
21175
21186
  _t18 = {
21176
21187
  messages: [],
21177
21188
  hasNext: false
21178
21189
  };
21179
- case 69:
21190
+ case 70:
21180
21191
  result = _t18;
21181
- _context10.n = 74;
21192
+ _context10.n = 75;
21182
21193
  break;
21183
- case 70:
21194
+ case 71:
21184
21195
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
21185
- _context10.n = 72;
21196
+ _context10.n = 73;
21186
21197
  break;
21187
21198
  }
21188
- _context10.n = 71;
21199
+ _context10.n = 72;
21189
21200
  return effects.call(messageQuery.loadPrevious);
21190
- case 71:
21201
+ case 72:
21191
21202
  _t19 = _context10.v;
21192
- _context10.n = 73;
21203
+ _context10.n = 74;
21193
21204
  break;
21194
- case 72:
21205
+ case 73:
21195
21206
  _t19 = {
21196
21207
  messages: [],
21197
21208
  hasNext: false
21198
21209
  };
21199
- case 73:
21200
- result = _t19;
21201
21210
  case 74:
21211
+ result = _t19;
21212
+ case 75:
21202
21213
  updatedMessages = [];
21203
21214
  result.messages.forEach(function (msg) {
21204
21215
  var updatedMessage = updateMessageOnMap(channel.id, {
@@ -21209,69 +21220,73 @@ function getMessagesQuery(action) {
21209
21220
  updatedMessages.push(updatedMessage || msg);
21210
21221
  });
21211
21222
  messageIdForLoad = (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage5 = channel.lastMessage) === null || _channel$lastMessage5 === void 0 ? void 0 : _channel$lastMessage5.id) ? (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) || '0' : (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage6 = channel.lastMessage) === null || _channel$lastMessage6 === void 0 ? void 0 : _channel$lastMessage6.id) || '0';
21212
- _context10.n = 75;
21213
- return effects.call(updateMessages, channel, updatedMessages, (_updatedMessages$ = updatedMessages[0]) === null || _updatedMessages$ === void 0 ? void 0 : _updatedMessages$.id, messageIdForLoad);
21214
- case 75:
21223
+ if (!updatedMessages.length) {
21224
+ _context10.n = 78;
21225
+ break;
21226
+ }
21215
21227
  _context10.n = 76;
21216
- return effects.put(setMessagesHasPrevAC(true));
21228
+ return effects.call(updateMessages, channel, updatedMessages, (_updatedMessages$ = updatedMessages[0]) === null || _updatedMessages$ === void 0 ? void 0 : _updatedMessages$.id, messageIdForLoad);
21217
21229
  case 76:
21218
21230
  _context10.n = 77;
21219
- return effects.put(setMessagesHasNextAC(false));
21231
+ return effects.put(setMessagesHasPrevAC(true));
21220
21232
  case 77:
21221
- filteredPendingMessages = getFilteredPendingMessages(result.messages);
21222
21233
  _context10.n = 78;
21223
- return effects.put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21234
+ return effects.put(setMessagesHasNextAC(false));
21224
21235
  case 78:
21236
+ filteredPendingMessages = getFilteredPendingMessages(result.messages);
21237
+ _context10.n = 79;
21238
+ return effects.put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21239
+ case 79:
21225
21240
  waitToSendPendingMessages = store.getState().UserReducer.waitToSendPendingMessages;
21226
21241
  if (!(connectionState === CONNECTION_STATUS.CONNECTED && waitToSendPendingMessages)) {
21227
- _context10.n = 80;
21242
+ _context10.n = 81;
21228
21243
  break;
21229
21244
  }
21230
- _context10.n = 79;
21231
- return effects.put(setWaitToSendPendingMessagesAC(false));
21232
- case 79:
21233
21245
  _context10.n = 80;
21234
- return effects.spawn(sendPendingMessages, connectionState);
21246
+ return effects.put(setWaitToSendPendingMessagesAC(false));
21235
21247
  case 80:
21236
21248
  _context10.n = 81;
21237
- return effects.call(SceytChatClient.getChannel, channel.id, true);
21249
+ return effects.spawn(sendPendingMessages, connectionState);
21238
21250
  case 81:
21251
+ _context10.n = 82;
21252
+ return effects.call(SceytChatClient.getChannel, channel.id, true);
21253
+ case 82:
21239
21254
  updatedChannel = _context10.v;
21240
21255
  if (!updatedChannel) {
21241
- _context10.n = 83;
21256
+ _context10.n = 84;
21242
21257
  break;
21243
21258
  }
21244
- _context10.n = 82;
21259
+ _context10.n = 83;
21245
21260
  return effects.put(updateChannelLastMessageAC(updatedChannel.lastMessage, updatedChannel));
21246
- case 82:
21247
- updateChannelLastMessageOnAllChannels(channel.id, updatedChannel.lastMessage);
21248
21261
  case 83:
21249
- _context10.n = 85;
21250
- break;
21262
+ updateChannelLastMessageOnAllChannels(channel.id, updatedChannel.lastMessage);
21251
21263
  case 84:
21264
+ _context10.n = 86;
21265
+ break;
21266
+ case 85:
21252
21267
  if (!(channel !== null && channel !== void 0 && channel.isMockChannel)) {
21253
- _context10.n = 85;
21268
+ _context10.n = 86;
21254
21269
  break;
21255
21270
  }
21256
- _context10.n = 85;
21271
+ _context10.n = 86;
21257
21272
  return effects.put(setMessagesAC([]));
21258
- case 85:
21259
- _context10.n = 87;
21260
- break;
21261
21273
  case 86:
21262
- _context10.p = 86;
21263
- _t20 = _context10.v;
21264
- log.error('error in message query', _t20);
21274
+ _context10.n = 88;
21275
+ break;
21265
21276
  case 87:
21266
21277
  _context10.p = 87;
21267
- _context10.n = 88;
21268
- return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21278
+ _t20 = _context10.v;
21279
+ log.error('error in message query', _t20);
21269
21280
  case 88:
21270
- return _context10.f(87);
21281
+ _context10.p = 88;
21282
+ _context10.n = 89;
21283
+ return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21271
21284
  case 89:
21285
+ return _context10.f(88);
21286
+ case 90:
21272
21287
  return _context10.a(2);
21273
21288
  }
21274
- }, _marked7$1, null, [[0, 86, 87, 89]]);
21289
+ }, _marked7$1, null, [[0, 87, 88, 90]]);
21275
21290
  }
21276
21291
  function getMessageQuery(action) {
21277
21292
  var payload, channelId, messageId, channel, connectionState, messages, fetchedMessage, _t21;
@@ -22910,7 +22925,7 @@ function loadMoreMembers(action) {
22910
22925
  }, _marked2$3, null, [[0, 7, 8, 10]]);
22911
22926
  }
22912
22927
  function addMembers(action) {
22913
- var payload, members, channelId, channel, membersToAdd, addedMembers, membersIds, messageToSend, updateChannelData, _action$payload, _t3;
22928
+ var payload, members, channelId, channel, membersToAdd, addedMembers, whoDoesNotAdded, membersIds, messageToSend, updateChannelData, _t3;
22914
22929
  return _regenerator().w(function (_context3) {
22915
22930
  while (1) switch (_context3.p = _context3.n) {
22916
22931
  case 0:
@@ -22922,7 +22937,7 @@ function addMembers(action) {
22922
22937
  case 1:
22923
22938
  channel = _context3.v;
22924
22939
  if (!channel) {
22925
- _context3.n = 6;
22940
+ _context3.n = 7;
22926
22941
  break;
22927
22942
  }
22928
22943
  membersToAdd = members.map(function (mem) {
@@ -22933,14 +22948,30 @@ function addMembers(action) {
22933
22948
  return effects.call(channel.addMembers, membersToAdd);
22934
22949
  case 2:
22935
22950
  addedMembers = _context3.v;
22936
- if (!(channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE)) {
22951
+ whoDoesNotAdded = members.filter(function (mem) {
22952
+ return !addedMembers.some(function (addedMem) {
22953
+ return addedMem.id === mem.id;
22954
+ });
22955
+ });
22956
+ if (!whoDoesNotAdded.length) {
22937
22957
  _context3.n = 3;
22938
22958
  break;
22939
22959
  }
22960
+ _context3.n = 3;
22961
+ return effects.put(setActionIsRestrictedAC(true, true, whoDoesNotAdded));
22962
+ case 3:
22963
+ if (!(channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE)) {
22964
+ _context3.n = 4;
22965
+ break;
22966
+ }
22940
22967
  membersIds = [];
22941
22968
  addedMembers.forEach(function (mem) {
22942
22969
  membersIds.push(mem.id);
22943
22970
  });
22971
+ if (!membersIds.length) {
22972
+ _context3.n = 4;
22973
+ break;
22974
+ }
22944
22975
  messageToSend = {
22945
22976
  metadata: {
22946
22977
  m: membersIds
@@ -22950,41 +22981,34 @@ function addMembers(action) {
22950
22981
  attachments: [],
22951
22982
  type: 'system'
22952
22983
  };
22953
- _context3.n = 3;
22954
- return effects.put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
22955
- case 3:
22956
22984
  _context3.n = 4;
22957
- return effects.put(addMembersToListAC(addedMembers));
22985
+ return effects.put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
22958
22986
  case 4:
22987
+ _context3.n = 5;
22988
+ return effects.put(addMembersToListAC(addedMembers));
22989
+ case 5:
22959
22990
  updateChannelOnAllChannels(channel.id, {
22960
22991
  memberCount: channel.memberCount + addedMembers.length
22961
22992
  });
22962
- _context3.n = 5;
22993
+ _context3.n = 6;
22963
22994
  return effects.call(updateActiveChannelMembersAdd, addedMembers) || {};
22964
- case 5:
22995
+ case 6:
22965
22996
  updateChannelData = _context3.v;
22966
- _context3.n = 6;
22997
+ _context3.n = 7;
22967
22998
  return effects.put(updateChannelDataAC(channel.id, _extends({
22968
22999
  memberCount: channel.memberCount + addedMembers.length
22969
23000
  }, updateChannelData)));
22970
- case 6:
23001
+ case 7:
22971
23002
  _context3.n = 9;
22972
23003
  break;
22973
- case 7:
22974
- _context3.p = 7;
22975
- _t3 = _context3.v;
22976
- if (!(_t3.code === 1041)) {
22977
- _context3.n = 8;
22978
- break;
22979
- }
22980
- _context3.n = 8;
22981
- return effects.put(setActionIsRestrictedAC(true, true, (action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.members) || []));
22982
23004
  case 8:
23005
+ _context3.p = 8;
23006
+ _t3 = _context3.v;
22983
23007
  log.error('error on add members... ', _t3);
22984
23008
  case 9:
22985
23009
  return _context3.a(2);
22986
23010
  }
22987
- }, _marked3$2, null, [[0, 7]]);
23011
+ }, _marked3$2, null, [[0, 8]]);
22988
23012
  }
22989
23013
  function kickMemberFromChannel(action) {
22990
23014
  var payload, memberId, channelId, channel, removedMembers, membersIds, messageToSend, updateChannelData;
@@ -23139,11 +23163,11 @@ function reportMember(action) {
23139
23163
  }, _marked7$2, null, [[1, 3]]);
23140
23164
  }
23141
23165
  function getRoles(action) {
23142
- var _action$payload2, timeout, attempts, SceytChatClient, roles, _t8;
23166
+ var _action$payload, timeout, attempts, SceytChatClient, roles, _t8;
23143
23167
  return _regenerator().w(function (_context8) {
23144
23168
  while (1) switch (_context8.p = _context8.n) {
23145
23169
  case 0:
23146
- _action$payload2 = action.payload, timeout = _action$payload2.timeout, attempts = _action$payload2.attempts;
23170
+ _action$payload = action.payload, timeout = _action$payload.timeout, attempts = _action$payload.attempts;
23147
23171
  _context8.p = 1;
23148
23172
  SceytChatClient = getClient();
23149
23173
  if (!(store.getState().UserReducer.connectionStatus !== CONNECTION_STATUS.CONNECTED)) {
@@ -24292,7 +24316,9 @@ var MembersText = styled__default.div(_templateObject7$1 || (_templateObject7$1
24292
24316
  var Center = styled__default.div(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 24px;\n"])));
24293
24317
 
24294
24318
  var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24295
- var fromChannel = _ref.fromChannel;
24319
+ var fromChannel = _ref.fromChannel,
24320
+ members = _ref.members,
24321
+ contactsMap = _ref.contactsMap;
24296
24322
  var dispatch = useDispatch();
24297
24323
  var _useColor = useColors(),
24298
24324
  background = _useColor[THEME_COLORS.BACKGROUND],
@@ -24309,6 +24335,29 @@ var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24309
24335
  dispatch(setOpenInviteModalAC(true));
24310
24336
  handleClose();
24311
24337
  };
24338
+ var getExcludedContactsMessage = function getExcludedContactsMessage(fromChannel) {
24339
+ var excludedContacts = members || [];
24340
+ var count = excludedContacts.length;
24341
+ var fromContact = getShowOnlyContactUsers() || false;
24342
+ var makeName = function makeName(member) {
24343
+ return makeUsername(contactsMap[member.id], member, fromContact, false);
24344
+ };
24345
+ var prefix = fromChannel ? '' : 'The group was created, but ';
24346
+ var suffix = fromChannel ? " couldn't be added to the group. You can share an invite link with them." : " couldn't be added. You can share an invite link with them.";
24347
+ if (count === 1) {
24348
+ var name = makeName(excludedContacts[0]);
24349
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, name), suffix);
24350
+ } else if (count === 2) {
24351
+ var name1 = makeName(excludedContacts[0]);
24352
+ var name2 = makeName(excludedContacts[1]);
24353
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, name1), " and ", /*#__PURE__*/React__default.createElement(BoltText, null, name2), suffix);
24354
+ } else if (count > 2) {
24355
+ var firstName = makeName(excludedContacts[0]);
24356
+ var othersCount = count - 1;
24357
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, firstName, " and ", othersCount, " others"), suffix);
24358
+ }
24359
+ return null;
24360
+ };
24312
24361
  return /*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
24313
24362
  backgroundColor: background,
24314
24363
  maxWidth: '520px',
@@ -24323,23 +24372,23 @@ var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24323
24372
  }), /*#__PURE__*/React__default.createElement(PopupName, {
24324
24373
  color: textPrimary,
24325
24374
  marginBottom: '20px'
24326
- }, fromChannel ? 'Privacy note' : "Can't create group"), /*#__PURE__*/React__default.createElement(PopupDescription, {
24375
+ }, "Privacy note"), /*#__PURE__*/React__default.createElement(PopupDescription, {
24327
24376
  color: textPrimary,
24328
24377
  highlightColor: linkColor
24329
- }, fromChannel ? 'Couldn’t add the user. Please invite them directly instead.' : 'Not everyone can be added to this group.')), /*#__PURE__*/React__default.createElement(PopupFooter, {
24378
+ }, getExcludedContactsMessage(fromChannel))), /*#__PURE__*/React__default.createElement(PopupFooter, {
24330
24379
  backgroundColor: surface1
24331
- }, fromChannel && (/*#__PURE__*/React__default.createElement(Button, {
24380
+ }, /*#__PURE__*/React__default.createElement(Button, {
24332
24381
  type: 'button',
24333
24382
  color: textPrimary,
24334
24383
  backgroundColor: 'transparent',
24335
24384
  onClick: handleClose
24336
- }, "Cancel")), /*#__PURE__*/React__default.createElement(Button, {
24385
+ }, "Cancel"), /*#__PURE__*/React__default.createElement(Button, {
24337
24386
  type: 'button',
24338
24387
  backgroundColor: accentColor,
24339
24388
  color: textOnPrimary,
24340
24389
  borderRadius: '8px',
24341
- onClick: fromChannel ? handleInvite : handleClose
24342
- }, fromChannel ? 'Invite' : 'Cancel'))));
24390
+ onClick: handleInvite
24391
+ }, "Invite"))));
24343
24392
  };
24344
24393
 
24345
24394
  var UnavailableInviteKeyPopup = function UnavailableInviteKeyPopup() {
@@ -24672,9 +24721,11 @@ var SceytChat = function SceytChat(_ref) {
24672
24721
  highlightedBackground: highlightedBackground,
24673
24722
  id: 'sceyt_chat_container',
24674
24723
  chatMinWidth: chatMinWidth
24675
- }, children, embeddedJoinGroupPopup && joinPopup && /*#__PURE__*/React__default.createElement(EmbeddedPopupWrapper, null, joinPopup), (restricted === null || restricted === void 0 ? void 0 : restricted.isRestricted) && /*#__PURE__*/React__default.createElement(ActionRestrictedPopup, {
24676
- fromChannel: restricted === null || restricted === void 0 ? void 0 : restricted.fromChannel
24677
- }), !channelInviteKeyAvailable && /*#__PURE__*/React__default.createElement(UnavailableInviteKeyPopup, null))) : '', !embeddedJoinGroupPopup && joinPopup);
24724
+ }, children, embeddedJoinGroupPopup && joinPopup && /*#__PURE__*/React__default.createElement(EmbeddedPopupWrapper, null, joinPopup), (restricted === null || restricted === void 0 ? void 0 : restricted.isRestricted) && (/*#__PURE__*/React__default.createElement(ActionRestrictedPopup, {
24725
+ fromChannel: restricted === null || restricted === void 0 ? void 0 : restricted.fromChannel,
24726
+ members: restricted === null || restricted === void 0 ? void 0 : restricted.members,
24727
+ contactsMap: contactsMap
24728
+ })), !channelInviteKeyAvailable && /*#__PURE__*/React__default.createElement(UnavailableInviteKeyPopup, null))) : '', !embeddedJoinGroupPopup && joinPopup);
24678
24729
  };
24679
24730
  var Container$2 = styled__default.div(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n height: 100vh;\n"])));
24680
24731
  var ChatContainer = styled__default.div(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n display: flex;\n height: 100%;\n max-height: 100vh;\n min-width: ", ";\n background-color: ", ";\n position: relative;\n\n /* Global highlighted background styles */\n ::selection {\n background-color: ", ";\n }\n\n ::-moz-selection {\n background-color: ", ";\n }\n\n /* For text selection highlighting */\n *::selection {\n background-color: ", ";\n }\n\n *::-moz-selection {\n background-color: ", ";\n }\n"])), function (props) {
package/index.modern.js CHANGED
@@ -3,7 +3,7 @@ import { createSelectorHook, createDispatchHook, createStoreHook, shallowEqual,
3
3
  import log from 'loglevel';
4
4
  import createSagaMiddleware, { eventChannel } from 'redux-saga';
5
5
  import FileSaver from 'file-saver';
6
- import { select, put, call, take, takeLatest, takeEvery, spawn, all } from 'redux-saga/effects';
6
+ import { select, put, call, take, takeLatest, takeEvery, spawn, delay, all } from 'redux-saga/effects';
7
7
  import { v4 } from 'uuid';
8
8
  import styled, { createGlobalStyle, keyframes } from 'styled-components';
9
9
  import LinkifyIt from 'linkify-it';
@@ -10999,6 +10999,9 @@ function setMessagesToMap(channelId, messages, firstMessageId, lastMessageId) {
10999
10999
  }
11000
11000
  }
11001
11001
  messages.forEach(function (msg) {
11002
+ if (msg.tid && messagesMap[channelId][msg.tid]) {
11003
+ delete messagesMap[channelId][msg.tid];
11004
+ }
11002
11005
  messagesMap[channelId][msg.id || msg.tid] = msg;
11003
11006
  });
11004
11007
  }
@@ -16343,7 +16346,7 @@ var _marked$2 = /*#__PURE__*/_regenerator().m(createChannel),
16343
16346
  _marked37 = /*#__PURE__*/_regenerator().m(loadMoreMutualChannels),
16344
16347
  _marked38 = /*#__PURE__*/_regenerator().m(ChannelsSaga);
16345
16348
  function createChannel(action) {
16346
- var payload, channelData, dontCreateIfNotExists, callback, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
16349
+ var payload, channelData, dontCreateIfNotExists, callback, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, whoDoesNotAdded, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
16347
16350
  return _regenerator().w(function (_context) {
16348
16351
  while (1) switch (_context.p = _context.n) {
16349
16352
  case 0:
@@ -16435,26 +16438,38 @@ function createChannel(action) {
16435
16438
  case 7:
16436
16439
  createdChannel = _context.v;
16437
16440
  case 8:
16441
+ whoDoesNotAdded = channelData.members.filter(function (mem) {
16442
+ return !createdChannel.members.some(function (addedMem) {
16443
+ return addedMem.id === mem.id;
16444
+ });
16445
+ });
16446
+ if (!whoDoesNotAdded.length) {
16447
+ _context.n = 9;
16448
+ break;
16449
+ }
16450
+ _context.n = 9;
16451
+ return put(setActionIsRestrictedAC(true, false, whoDoesNotAdded));
16452
+ case 9:
16438
16453
  checkChannelExist = false;
16439
16454
  if (!(createdChannel.type === DEFAULT_CHANNEL_TYPE.DIRECT)) {
16440
- _context.n = 10;
16455
+ _context.n = 11;
16441
16456
  break;
16442
16457
  }
16443
- _context.n = 9;
16458
+ _context.n = 10;
16444
16459
  return call(checkChannelExists, createdChannel.id);
16445
- case 9:
16446
- checkChannelExist = _context.v;
16447
16460
  case 10:
16461
+ checkChannelExist = _context.v;
16462
+ case 11:
16448
16463
  createdChannel.metadata = isJSON(createdChannel.metadata) ? JSON.parse(createdChannel.metadata) : createdChannel.metadata;
16449
16464
  if (checkChannelExist) {
16450
- _context.n = 13;
16465
+ _context.n = 14;
16451
16466
  break;
16452
16467
  }
16453
- _context.n = 11;
16468
+ _context.n = 12;
16454
16469
  return call(setChannelInMap, createdChannel);
16455
- case 11:
16470
+ case 12:
16456
16471
  if (!(createdChannel.type !== DEFAULT_CHANNEL_TYPE.DIRECT)) {
16457
- _context.n = 12;
16472
+ _context.n = 13;
16458
16473
  break;
16459
16474
  }
16460
16475
  messageToSend = {
@@ -16463,21 +16478,21 @@ function createChannel(action) {
16463
16478
  attachments: [],
16464
16479
  type: 'system'
16465
16480
  };
16466
- _context.n = 12;
16481
+ _context.n = 13;
16467
16482
  return put(sendTextMessageAC(messageToSend, createdChannel.id, CONNECTION_STATUS.CONNECTED));
16468
- case 12:
16483
+ case 13:
16469
16484
  if (!(!dontCreateIfNotExists || channelIsExistOnAllChannels)) {
16470
- _context.n = 13;
16485
+ _context.n = 14;
16471
16486
  break;
16472
16487
  }
16473
- _context.n = 13;
16474
- return put(setChannelToAddAC(JSON.parse(JSON.stringify(createdChannel))));
16475
- case 13:
16476
16488
  _context.n = 14;
16489
+ return put(setChannelToAddAC(JSON.parse(JSON.stringify(createdChannel))));
16490
+ case 14:
16491
+ _context.n = 15;
16477
16492
  return put(switchChannelActionAC(JSON.parse(JSON.stringify(_extends({}, createdChannel, {
16478
16493
  isLinkedChannel: dontCreateIfNotExists
16479
16494
  }))), !callback));
16480
- case 14:
16495
+ case 15:
16481
16496
  if (dontCreateIfNotExists) {
16482
16497
  if (!channelIsExistOnAllChannels) {
16483
16498
  addChannelToAllChannels(createdChannel);
@@ -16507,33 +16522,26 @@ function createChannel(action) {
16507
16522
  }
16508
16523
  }
16509
16524
  if (!callback) {
16510
- _context.n = 15;
16525
+ _context.n = 16;
16511
16526
  break;
16512
16527
  }
16513
16528
  callback(createdChannel);
16514
- _context.n = 16;
16529
+ _context.n = 17;
16515
16530
  break;
16516
- case 15:
16517
- _context.n = 16;
16518
- return call(setActiveChannelId, createdChannel.id);
16519
16531
  case 16:
16532
+ _context.n = 17;
16533
+ return call(setActiveChannelId, createdChannel.id);
16534
+ case 17:
16520
16535
  _context.n = 19;
16521
16536
  break;
16522
- case 17:
16523
- _context.p = 17;
16524
- _t = _context.v;
16525
- if (!(_t.code === 1041)) {
16526
- _context.n = 18;
16527
- break;
16528
- }
16529
- _context.n = 18;
16530
- return put(setActionIsRestrictedAC(true, false, null));
16531
16537
  case 18:
16538
+ _context.p = 18;
16539
+ _t = _context.v;
16532
16540
  log.error(_t, 'Error on create channel');
16533
16541
  case 19:
16534
16542
  return _context.a(2);
16535
16543
  }
16536
- }, _marked$2, null, [[0, 17]]);
16544
+ }, _marked$2, null, [[0, 18]]);
16537
16545
  }
16538
16546
  function getChannels(action) {
16539
16547
  var _params$filter, _types, _activeChannel, _mappedChannels, _mappedChannels3, _mappedChannels4, payload, params, SceytChatClient, connectionStatus, channelQueryBuilder, channelTypesFilter, types, limit, channelQuery, channelsData, channelList, channelId, activeChannel, _yield$call, mappedChannels, channelsForUpdateLastReactionMessage, _Object$keys, _mappedChannels2, channelMessageMap, _activeChannel2, _activeChannel3, hiddenList, allChannelsQueryBuilder, allChannelsQuery, hasNext, totalAllChannelsAdded, i, _connectionStatus, allChannelsData, allChannelList, _t2, _t3, _t4;
@@ -18712,6 +18720,8 @@ function getChannelsWithUser(action) {
18712
18720
  channelsQueryBuilder = new _SceytChatClient10.ChannelListQueryBuilder();
18713
18721
  channelsQueryBuilder.memberCount(0);
18714
18722
  channelsQueryBuilder.setMutualWithUserId(userId);
18723
+ channelsQueryBuilder.types([DEFAULT_CHANNEL_TYPE.DIRECT]);
18724
+ channelsQueryBuilder.setWithTypes(false);
18715
18725
  channelsQueryBuilder.limit(15);
18716
18726
  _context36.n = 3;
18717
18727
  return call(channelsQueryBuilder.build);
@@ -20764,7 +20774,7 @@ var getFilteredPendingMessages = function getFilteredPendingMessages(messages) {
20764
20774
  return filteredPendingMessages;
20765
20775
  };
20766
20776
  function getMessagesQuery(action) {
20767
- var _action$payload, channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, _result$messages$, _result$messages, _messages$Math$floor, messages, centerMessageId, loadWithMessageId, allMessages, messageIndex, maxLengthPart, _result$messages$2, _result$messages2, secondResult, thirdResult, fourthResult, _fourthResult, _result$messages$3, _result$messages3, _channel$lastMessage4, _channel$lastMessage5, _channel$lastMessage6, _updatedMessages$, _parsedMessages$, _parsedMessages, parsedMessages, _filteredPendingMessages, updatedMessages, messageIdForLoad, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
20777
+ var _action$payload, channel, loadWithLastMessage, messageId, limit, highlight, behavior, scrollToMessage, networkChanged, connectionState, SceytChatClient, messageQueryBuilder, messageQuery, cachedMessages, result, _result$messages$, _result$messages, _messages$Math$floor, messages, centerMessageId, loadWithMessageId, allMessages, messageIndex, maxLengthPart, _result$messages$2, _result$messages2, secondResult, thirdResult, fourthResult, _fourthResult, _result$messages$3, _result$messages3, _channel$lastMessage4, _channel$lastMessage5, _channel$lastMessage6, _filteredPendingMessages, updatedMessages, messageIdForLoad, _updatedMessages$, filteredPendingMessages, waitToSendPendingMessages, updatedChannel, _t0, _t1, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20;
20768
20778
  return _regenerator().w(function (_context10) {
20769
20779
  while (1) switch (_context10.p = _context10.n) {
20770
20780
  case 0:
@@ -20775,7 +20785,7 @@ function getMessagesQuery(action) {
20775
20785
  _action$payload = action.payload, channel = _action$payload.channel, loadWithLastMessage = _action$payload.loadWithLastMessage, messageId = _action$payload.messageId, limit = _action$payload.limit, highlight = _action$payload.highlight, behavior = _action$payload.behavior, scrollToMessage = _action$payload.scrollToMessage, networkChanged = _action$payload.networkChanged;
20776
20786
  connectionState = store.getState().UserReducer.connectionStatus;
20777
20787
  if (!(channel !== null && channel !== void 0 && channel.id && !(channel !== null && channel !== void 0 && channel.isMockChannel))) {
20778
- _context10.n = 84;
20788
+ _context10.n = 85;
20779
20789
  break;
20780
20790
  }
20781
20791
  SceytChatClient = getClient();
@@ -20896,7 +20906,7 @@ function getMessagesQuery(action) {
20896
20906
  _context10.n = 21;
20897
20907
  return put(scrollToNewMessageAC(true));
20898
20908
  case 21:
20899
- _context10.n = 77;
20909
+ _context10.n = 78;
20900
20910
  break;
20901
20911
  case 22:
20902
20912
  if (!messageId) {
@@ -21073,7 +21083,7 @@ function getMessagesQuery(action) {
21073
21083
  _context10.n = 51;
21074
21084
  return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21075
21085
  case 51:
21076
- _context10.n = 77;
21086
+ _context10.n = 78;
21077
21087
  break;
21078
21088
  case 52:
21079
21089
  if (!(channel.newMessageCount && channel.lastDisplayedMessageId)) {
@@ -21135,69 +21145,70 @@ function getMessagesQuery(action) {
21135
21145
  _context10.n = 63;
21136
21146
  return put(setMessagesAC(JSON.parse(JSON.stringify(result.messages))));
21137
21147
  case 63:
21138
- _context10.n = 77;
21148
+ _context10.n = 78;
21139
21149
  break;
21140
21150
  case 64:
21141
21151
  if (!(cachedMessages && cachedMessages.length)) {
21142
- _context10.n = 66;
21152
+ _context10.n = 67;
21143
21153
  break;
21144
21154
  }
21145
- parsedMessages = getFromAllMessagesByMessageId('', '', true);
21146
- setMessagesToMap(channel.id, parsedMessages, (_parsedMessages$ = parsedMessages[0]) === null || _parsedMessages$ === void 0 ? void 0 : _parsedMessages$.id, (_parsedMessages = parsedMessages[parsedMessages.length - 1]) === null || _parsedMessages === void 0 ? void 0 : _parsedMessages.id);
21147
21155
  _context10.n = 65;
21148
- return put(setMessagesAC(JSON.parse(JSON.stringify(parsedMessages))));
21156
+ return put(setMessagesAC(JSON.parse(JSON.stringify(cachedMessages))));
21149
21157
  case 65:
21150
- _filteredPendingMessages = getFilteredPendingMessages(parsedMessages);
21151
21158
  _context10.n = 66;
21152
- return put(addMessagesAC(_filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21159
+ return delay(0);
21153
21160
  case 66:
21161
+ _filteredPendingMessages = getFilteredPendingMessages(cachedMessages);
21162
+ _context10.n = 67;
21163
+ return put(addMessagesAC(_filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21164
+ case 67:
21154
21165
  log.info('load message from server');
21155
21166
  result = {
21156
21167
  messages: [],
21157
21168
  hasNext: false
21158
21169
  };
21159
21170
  if (!((channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage4 = channel.lastMessage) === null || _channel$lastMessage4 === void 0 ? void 0 : _channel$lastMessage4.id))) {
21160
- _context10.n = 70;
21171
+ _context10.n = 71;
21161
21172
  break;
21162
21173
  }
21163
21174
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
21164
- _context10.n = 68;
21175
+ _context10.n = 69;
21165
21176
  break;
21166
21177
  }
21167
- _context10.n = 67;
21178
+ _context10.n = 68;
21168
21179
  return call(messageQuery.loadPreviousMessageId, channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId);
21169
- case 67:
21180
+ case 68:
21170
21181
  _t18 = _context10.v;
21171
- _context10.n = 69;
21182
+ _context10.n = 70;
21172
21183
  break;
21173
- case 68:
21184
+ case 69:
21174
21185
  _t18 = {
21175
21186
  messages: [],
21176
21187
  hasNext: false
21177
21188
  };
21178
- case 69:
21189
+ case 70:
21179
21190
  result = _t18;
21180
- _context10.n = 74;
21191
+ _context10.n = 75;
21181
21192
  break;
21182
- case 70:
21193
+ case 71:
21183
21194
  if (!(connectionState === CONNECTION_STATUS.CONNECTED)) {
21184
- _context10.n = 72;
21195
+ _context10.n = 73;
21185
21196
  break;
21186
21197
  }
21187
- _context10.n = 71;
21198
+ _context10.n = 72;
21188
21199
  return call(messageQuery.loadPrevious);
21189
- case 71:
21200
+ case 72:
21190
21201
  _t19 = _context10.v;
21191
- _context10.n = 73;
21202
+ _context10.n = 74;
21192
21203
  break;
21193
- case 72:
21204
+ case 73:
21194
21205
  _t19 = {
21195
21206
  messages: [],
21196
21207
  hasNext: false
21197
21208
  };
21198
- case 73:
21199
- result = _t19;
21200
21209
  case 74:
21210
+ result = _t19;
21211
+ case 75:
21201
21212
  updatedMessages = [];
21202
21213
  result.messages.forEach(function (msg) {
21203
21214
  var updatedMessage = updateMessageOnMap(channel.id, {
@@ -21208,69 +21219,73 @@ function getMessagesQuery(action) {
21208
21219
  updatedMessages.push(updatedMessage || msg);
21209
21220
  });
21210
21221
  messageIdForLoad = (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) > (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage5 = channel.lastMessage) === null || _channel$lastMessage5 === void 0 ? void 0 : _channel$lastMessage5.id) ? (channel === null || channel === void 0 ? void 0 : channel.lastDisplayedMessageId) || '0' : (channel === null || channel === void 0 ? void 0 : (_channel$lastMessage6 = channel.lastMessage) === null || _channel$lastMessage6 === void 0 ? void 0 : _channel$lastMessage6.id) || '0';
21211
- _context10.n = 75;
21212
- return call(updateMessages, channel, updatedMessages, (_updatedMessages$ = updatedMessages[0]) === null || _updatedMessages$ === void 0 ? void 0 : _updatedMessages$.id, messageIdForLoad);
21213
- case 75:
21222
+ if (!updatedMessages.length) {
21223
+ _context10.n = 78;
21224
+ break;
21225
+ }
21214
21226
  _context10.n = 76;
21215
- return put(setMessagesHasPrevAC(true));
21227
+ return call(updateMessages, channel, updatedMessages, (_updatedMessages$ = updatedMessages[0]) === null || _updatedMessages$ === void 0 ? void 0 : _updatedMessages$.id, messageIdForLoad);
21216
21228
  case 76:
21217
21229
  _context10.n = 77;
21218
- return put(setMessagesHasNextAC(false));
21230
+ return put(setMessagesHasPrevAC(true));
21219
21231
  case 77:
21220
- filteredPendingMessages = getFilteredPendingMessages(result.messages);
21221
21232
  _context10.n = 78;
21222
- return put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21233
+ return put(setMessagesHasNextAC(false));
21223
21234
  case 78:
21235
+ filteredPendingMessages = getFilteredPendingMessages(result.messages);
21236
+ _context10.n = 79;
21237
+ return put(addMessagesAC(filteredPendingMessages, MESSAGE_LOAD_DIRECTION.NEXT));
21238
+ case 79:
21224
21239
  waitToSendPendingMessages = store.getState().UserReducer.waitToSendPendingMessages;
21225
21240
  if (!(connectionState === CONNECTION_STATUS.CONNECTED && waitToSendPendingMessages)) {
21226
- _context10.n = 80;
21241
+ _context10.n = 81;
21227
21242
  break;
21228
21243
  }
21229
- _context10.n = 79;
21230
- return put(setWaitToSendPendingMessagesAC(false));
21231
- case 79:
21232
21244
  _context10.n = 80;
21233
- return spawn(sendPendingMessages, connectionState);
21245
+ return put(setWaitToSendPendingMessagesAC(false));
21234
21246
  case 80:
21235
21247
  _context10.n = 81;
21236
- return call(SceytChatClient.getChannel, channel.id, true);
21248
+ return spawn(sendPendingMessages, connectionState);
21237
21249
  case 81:
21250
+ _context10.n = 82;
21251
+ return call(SceytChatClient.getChannel, channel.id, true);
21252
+ case 82:
21238
21253
  updatedChannel = _context10.v;
21239
21254
  if (!updatedChannel) {
21240
- _context10.n = 83;
21255
+ _context10.n = 84;
21241
21256
  break;
21242
21257
  }
21243
- _context10.n = 82;
21258
+ _context10.n = 83;
21244
21259
  return put(updateChannelLastMessageAC(updatedChannel.lastMessage, updatedChannel));
21245
- case 82:
21246
- updateChannelLastMessageOnAllChannels(channel.id, updatedChannel.lastMessage);
21247
21260
  case 83:
21248
- _context10.n = 85;
21249
- break;
21261
+ updateChannelLastMessageOnAllChannels(channel.id, updatedChannel.lastMessage);
21250
21262
  case 84:
21263
+ _context10.n = 86;
21264
+ break;
21265
+ case 85:
21251
21266
  if (!(channel !== null && channel !== void 0 && channel.isMockChannel)) {
21252
- _context10.n = 85;
21267
+ _context10.n = 86;
21253
21268
  break;
21254
21269
  }
21255
- _context10.n = 85;
21270
+ _context10.n = 86;
21256
21271
  return put(setMessagesAC([]));
21257
- case 85:
21258
- _context10.n = 87;
21259
- break;
21260
21272
  case 86:
21261
- _context10.p = 86;
21262
- _t20 = _context10.v;
21263
- log.error('error in message query', _t20);
21273
+ _context10.n = 88;
21274
+ break;
21264
21275
  case 87:
21265
21276
  _context10.p = 87;
21266
- _context10.n = 88;
21267
- return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21277
+ _t20 = _context10.v;
21278
+ log.error('error in message query', _t20);
21268
21279
  case 88:
21269
- return _context10.f(87);
21280
+ _context10.p = 88;
21281
+ _context10.n = 89;
21282
+ return put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
21270
21283
  case 89:
21284
+ return _context10.f(88);
21285
+ case 90:
21271
21286
  return _context10.a(2);
21272
21287
  }
21273
- }, _marked7$1, null, [[0, 86, 87, 89]]);
21288
+ }, _marked7$1, null, [[0, 87, 88, 90]]);
21274
21289
  }
21275
21290
  function getMessageQuery(action) {
21276
21291
  var payload, channelId, messageId, channel, connectionState, messages, fetchedMessage, _t21;
@@ -22909,7 +22924,7 @@ function loadMoreMembers(action) {
22909
22924
  }, _marked2$3, null, [[0, 7, 8, 10]]);
22910
22925
  }
22911
22926
  function addMembers(action) {
22912
- var payload, members, channelId, channel, membersToAdd, addedMembers, membersIds, messageToSend, updateChannelData, _action$payload, _t3;
22927
+ var payload, members, channelId, channel, membersToAdd, addedMembers, whoDoesNotAdded, membersIds, messageToSend, updateChannelData, _t3;
22913
22928
  return _regenerator().w(function (_context3) {
22914
22929
  while (1) switch (_context3.p = _context3.n) {
22915
22930
  case 0:
@@ -22921,7 +22936,7 @@ function addMembers(action) {
22921
22936
  case 1:
22922
22937
  channel = _context3.v;
22923
22938
  if (!channel) {
22924
- _context3.n = 6;
22939
+ _context3.n = 7;
22925
22940
  break;
22926
22941
  }
22927
22942
  membersToAdd = members.map(function (mem) {
@@ -22932,14 +22947,30 @@ function addMembers(action) {
22932
22947
  return call(channel.addMembers, membersToAdd);
22933
22948
  case 2:
22934
22949
  addedMembers = _context3.v;
22935
- if (!(channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE)) {
22950
+ whoDoesNotAdded = members.filter(function (mem) {
22951
+ return !addedMembers.some(function (addedMem) {
22952
+ return addedMem.id === mem.id;
22953
+ });
22954
+ });
22955
+ if (!whoDoesNotAdded.length) {
22936
22956
  _context3.n = 3;
22937
22957
  break;
22938
22958
  }
22959
+ _context3.n = 3;
22960
+ return put(setActionIsRestrictedAC(true, true, whoDoesNotAdded));
22961
+ case 3:
22962
+ if (!(channel.type === DEFAULT_CHANNEL_TYPE.GROUP || channel.type === DEFAULT_CHANNEL_TYPE.PRIVATE)) {
22963
+ _context3.n = 4;
22964
+ break;
22965
+ }
22939
22966
  membersIds = [];
22940
22967
  addedMembers.forEach(function (mem) {
22941
22968
  membersIds.push(mem.id);
22942
22969
  });
22970
+ if (!membersIds.length) {
22971
+ _context3.n = 4;
22972
+ break;
22973
+ }
22943
22974
  messageToSend = {
22944
22975
  metadata: {
22945
22976
  m: membersIds
@@ -22949,41 +22980,34 @@ function addMembers(action) {
22949
22980
  attachments: [],
22950
22981
  type: 'system'
22951
22982
  };
22952
- _context3.n = 3;
22953
- return put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
22954
- case 3:
22955
22983
  _context3.n = 4;
22956
- return put(addMembersToListAC(addedMembers));
22984
+ return put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
22957
22985
  case 4:
22986
+ _context3.n = 5;
22987
+ return put(addMembersToListAC(addedMembers));
22988
+ case 5:
22958
22989
  updateChannelOnAllChannels(channel.id, {
22959
22990
  memberCount: channel.memberCount + addedMembers.length
22960
22991
  });
22961
- _context3.n = 5;
22992
+ _context3.n = 6;
22962
22993
  return call(updateActiveChannelMembersAdd, addedMembers) || {};
22963
- case 5:
22994
+ case 6:
22964
22995
  updateChannelData = _context3.v;
22965
- _context3.n = 6;
22996
+ _context3.n = 7;
22966
22997
  return put(updateChannelDataAC(channel.id, _extends({
22967
22998
  memberCount: channel.memberCount + addedMembers.length
22968
22999
  }, updateChannelData)));
22969
- case 6:
23000
+ case 7:
22970
23001
  _context3.n = 9;
22971
23002
  break;
22972
- case 7:
22973
- _context3.p = 7;
22974
- _t3 = _context3.v;
22975
- if (!(_t3.code === 1041)) {
22976
- _context3.n = 8;
22977
- break;
22978
- }
22979
- _context3.n = 8;
22980
- return put(setActionIsRestrictedAC(true, true, (action === null || action === void 0 ? void 0 : (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.members) || []));
22981
23003
  case 8:
23004
+ _context3.p = 8;
23005
+ _t3 = _context3.v;
22982
23006
  log.error('error on add members... ', _t3);
22983
23007
  case 9:
22984
23008
  return _context3.a(2);
22985
23009
  }
22986
- }, _marked3$2, null, [[0, 7]]);
23010
+ }, _marked3$2, null, [[0, 8]]);
22987
23011
  }
22988
23012
  function kickMemberFromChannel(action) {
22989
23013
  var payload, memberId, channelId, channel, removedMembers, membersIds, messageToSend, updateChannelData;
@@ -23138,11 +23162,11 @@ function reportMember(action) {
23138
23162
  }, _marked7$2, null, [[1, 3]]);
23139
23163
  }
23140
23164
  function getRoles(action) {
23141
- var _action$payload2, timeout, attempts, SceytChatClient, roles, _t8;
23165
+ var _action$payload, timeout, attempts, SceytChatClient, roles, _t8;
23142
23166
  return _regenerator().w(function (_context8) {
23143
23167
  while (1) switch (_context8.p = _context8.n) {
23144
23168
  case 0:
23145
- _action$payload2 = action.payload, timeout = _action$payload2.timeout, attempts = _action$payload2.attempts;
23169
+ _action$payload = action.payload, timeout = _action$payload.timeout, attempts = _action$payload.attempts;
23146
23170
  _context8.p = 1;
23147
23171
  SceytChatClient = getClient();
23148
23172
  if (!(store.getState().UserReducer.connectionStatus !== CONNECTION_STATUS.CONNECTED)) {
@@ -24291,7 +24315,9 @@ var MembersText = styled.div(_templateObject7$1 || (_templateObject7$1 = _tagged
24291
24315
  var Center = styled.div(_templateObject8$1 || (_templateObject8$1 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 24px;\n"])));
24292
24316
 
24293
24317
  var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24294
- var fromChannel = _ref.fromChannel;
24318
+ var fromChannel = _ref.fromChannel,
24319
+ members = _ref.members,
24320
+ contactsMap = _ref.contactsMap;
24295
24321
  var dispatch = useDispatch();
24296
24322
  var _useColor = useColors(),
24297
24323
  background = _useColor[THEME_COLORS.BACKGROUND],
@@ -24308,6 +24334,29 @@ var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24308
24334
  dispatch(setOpenInviteModalAC(true));
24309
24335
  handleClose();
24310
24336
  };
24337
+ var getExcludedContactsMessage = function getExcludedContactsMessage(fromChannel) {
24338
+ var excludedContacts = members || [];
24339
+ var count = excludedContacts.length;
24340
+ var fromContact = getShowOnlyContactUsers() || false;
24341
+ var makeName = function makeName(member) {
24342
+ return makeUsername(contactsMap[member.id], member, fromContact, false);
24343
+ };
24344
+ var prefix = fromChannel ? '' : 'The group was created, but ';
24345
+ var suffix = fromChannel ? " couldn't be added to the group. You can share an invite link with them." : " couldn't be added. You can share an invite link with them.";
24346
+ if (count === 1) {
24347
+ var name = makeName(excludedContacts[0]);
24348
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, name), suffix);
24349
+ } else if (count === 2) {
24350
+ var name1 = makeName(excludedContacts[0]);
24351
+ var name2 = makeName(excludedContacts[1]);
24352
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, name1), " and ", /*#__PURE__*/React__default.createElement(BoltText, null, name2), suffix);
24353
+ } else if (count > 2) {
24354
+ var firstName = makeName(excludedContacts[0]);
24355
+ var othersCount = count - 1;
24356
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, prefix, /*#__PURE__*/React__default.createElement(BoltText, null, firstName, " and ", othersCount, " others"), suffix);
24357
+ }
24358
+ return null;
24359
+ };
24311
24360
  return /*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
24312
24361
  backgroundColor: background,
24313
24362
  maxWidth: '520px',
@@ -24322,23 +24371,23 @@ var ActionRestrictedPopup = function ActionRestrictedPopup(_ref) {
24322
24371
  }), /*#__PURE__*/React__default.createElement(PopupName, {
24323
24372
  color: textPrimary,
24324
24373
  marginBottom: '20px'
24325
- }, fromChannel ? 'Privacy note' : "Can't create group"), /*#__PURE__*/React__default.createElement(PopupDescription, {
24374
+ }, "Privacy note"), /*#__PURE__*/React__default.createElement(PopupDescription, {
24326
24375
  color: textPrimary,
24327
24376
  highlightColor: linkColor
24328
- }, fromChannel ? 'Couldn’t add the user. Please invite them directly instead.' : 'Not everyone can be added to this group.')), /*#__PURE__*/React__default.createElement(PopupFooter, {
24377
+ }, getExcludedContactsMessage(fromChannel))), /*#__PURE__*/React__default.createElement(PopupFooter, {
24329
24378
  backgroundColor: surface1
24330
- }, fromChannel && (/*#__PURE__*/React__default.createElement(Button, {
24379
+ }, /*#__PURE__*/React__default.createElement(Button, {
24331
24380
  type: 'button',
24332
24381
  color: textPrimary,
24333
24382
  backgroundColor: 'transparent',
24334
24383
  onClick: handleClose
24335
- }, "Cancel")), /*#__PURE__*/React__default.createElement(Button, {
24384
+ }, "Cancel"), /*#__PURE__*/React__default.createElement(Button, {
24336
24385
  type: 'button',
24337
24386
  backgroundColor: accentColor,
24338
24387
  color: textOnPrimary,
24339
24388
  borderRadius: '8px',
24340
- onClick: fromChannel ? handleInvite : handleClose
24341
- }, fromChannel ? 'Invite' : 'Cancel'))));
24389
+ onClick: handleInvite
24390
+ }, "Invite"))));
24342
24391
  };
24343
24392
 
24344
24393
  var UnavailableInviteKeyPopup = function UnavailableInviteKeyPopup() {
@@ -24671,9 +24720,11 @@ var SceytChat = function SceytChat(_ref) {
24671
24720
  highlightedBackground: highlightedBackground,
24672
24721
  id: 'sceyt_chat_container',
24673
24722
  chatMinWidth: chatMinWidth
24674
- }, children, embeddedJoinGroupPopup && joinPopup && /*#__PURE__*/React__default.createElement(EmbeddedPopupWrapper, null, joinPopup), (restricted === null || restricted === void 0 ? void 0 : restricted.isRestricted) && /*#__PURE__*/React__default.createElement(ActionRestrictedPopup, {
24675
- fromChannel: restricted === null || restricted === void 0 ? void 0 : restricted.fromChannel
24676
- }), !channelInviteKeyAvailable && /*#__PURE__*/React__default.createElement(UnavailableInviteKeyPopup, null))) : '', !embeddedJoinGroupPopup && joinPopup);
24723
+ }, children, embeddedJoinGroupPopup && joinPopup && /*#__PURE__*/React__default.createElement(EmbeddedPopupWrapper, null, joinPopup), (restricted === null || restricted === void 0 ? void 0 : restricted.isRestricted) && (/*#__PURE__*/React__default.createElement(ActionRestrictedPopup, {
24724
+ fromChannel: restricted === null || restricted === void 0 ? void 0 : restricted.fromChannel,
24725
+ members: restricted === null || restricted === void 0 ? void 0 : restricted.members,
24726
+ contactsMap: contactsMap
24727
+ })), !channelInviteKeyAvailable && /*#__PURE__*/React__default.createElement(UnavailableInviteKeyPopup, null))) : '', !embeddedJoinGroupPopup && joinPopup);
24677
24728
  };
24678
24729
  var Container$2 = styled.div(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteralLoose(["\n display: flex;\n height: 100vh;\n"])));
24679
24730
  var ChatContainer = styled.div(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteralLoose(["\n display: flex;\n height: 100%;\n max-height: 100vh;\n min-width: ", ";\n background-color: ", ";\n position: relative;\n\n /* Global highlighted background styles */\n ::selection {\n background-color: ", ";\n }\n\n ::-moz-selection {\n background-color: ", ";\n }\n\n /* For text selection highlighting */\n *::selection {\n background-color: ", ";\n }\n\n *::-moz-selection {\n background-color: ", ";\n }\n"])), function (props) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceyt-chat-react-uikit",
3
- "version": "1.7.9-beta.1",
3
+ "version": "1.7.9-beta.2",
4
4
  "description": "Interactive React UI Components for Sceyt Chat.",
5
5
  "author": "Sceyt",
6
6
  "license": "MIT",