sceyt-chat-react-uikit 1.7.1-beta.1 → 1.7.1-beta.11

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.
package/index.js CHANGED
@@ -10073,25 +10073,23 @@ function updateMessageOnMap(channelId, updatedMessage) {
10073
10073
  }
10074
10074
  var updatedMessageData = null;
10075
10075
  if (messagesMap[channelId]) {
10076
- messagesMap[channelId].map(function (mes) {
10076
+ var messagesList = [];
10077
+ for (var _iterator = _createForOfIteratorHelperLoose(messagesMap[channelId]), _step; !(_step = _iterator()).done;) {
10078
+ var mes = _step.value;
10077
10079
  if (mes.tid === updatedMessage.messageId || mes.id === updatedMessage.messageId) {
10078
10080
  if (updatedMessage.params.state === MESSAGE_STATUS.DELETE) {
10079
10081
  updatedMessageData = _extends({}, updatedMessage.params);
10080
- return updatedMessageData;
10082
+ messagesList.push(_extends({}, mes, updatedMessageData));
10083
+ continue;
10081
10084
  } else {
10082
- var _updatedMessage$param;
10083
- updatedMessageData = _extends({}, mes, updatedMessage.params, {
10084
- attachments: [].concat(mes.attachments, ((_updatedMessage$param = updatedMessage.params) === null || _updatedMessage$param === void 0 ? void 0 : _updatedMessage$param.attachments) || []).filter(function (att, index, self) {
10085
- return index === self.findIndex(function (t) {
10086
- return t.url === att.url && t.type === att.type && t.name === att.name;
10087
- });
10088
- })
10089
- });
10090
- return updatedMessage;
10085
+ updatedMessageData = _extends({}, mes, updatedMessage.params);
10086
+ messagesList.push(_extends({}, mes, updatedMessageData));
10087
+ continue;
10091
10088
  }
10092
10089
  }
10093
- return mes;
10094
- });
10090
+ messagesList.push(mes);
10091
+ }
10092
+ messagesMap[channelId] = messagesList;
10095
10093
  }
10096
10094
  return updatedMessageData;
10097
10095
  }
@@ -11114,12 +11112,13 @@ var ThemeReducer = (function (state, _ref) {
11114
11112
  }
11115
11113
  });
11116
11114
 
11117
- var createChannelAC = function createChannelAC(channelData, dontCreateIfNotExists) {
11115
+ var createChannelAC = function createChannelAC(channelData, dontCreateIfNotExists, callback) {
11118
11116
  return {
11119
11117
  type: CREATE_CHANNEL,
11120
11118
  payload: {
11121
11119
  channelData: channelData,
11122
- dontCreateIfNotExists: dontCreateIfNotExists
11120
+ dontCreateIfNotExists: dontCreateIfNotExists,
11121
+ callback: callback
11123
11122
  }
11124
11123
  };
11125
11124
  };
@@ -11285,11 +11284,15 @@ var setActiveChannelAC = function setActiveChannelAC(channel) {
11285
11284
  channel: channel
11286
11285
  });
11287
11286
  };
11288
- var switchChannelActionAC = function switchChannelActionAC(channel) {
11287
+ var switchChannelActionAC = function switchChannelActionAC(channel, updateActiveChannel) {
11288
+ if (updateActiveChannel === void 0) {
11289
+ updateActiveChannel = true;
11290
+ }
11289
11291
  return {
11290
11292
  type: SWITCH_CHANNEL,
11291
11293
  payload: {
11292
- channel: channel
11294
+ channel: channel,
11295
+ updateActiveChannel: updateActiveChannel
11293
11296
  }
11294
11297
  };
11295
11298
  };
@@ -11521,6 +11524,7 @@ var getChannelMentionsAC = function getChannelMentionsAC(channelId) {
11521
11524
  };
11522
11525
 
11523
11526
  var GET_MESSAGES = 'GET_MESSAGES';
11527
+ var GET_MESSAGE = 'GET_MESSAGE';
11524
11528
  var LOAD_MORE_MESSAGES = 'LOAD_MORE_MESSAGES';
11525
11529
  var SEND_MESSAGE = 'SEND_MESSAGE';
11526
11530
  var SEND_TEXT_MESSAGE = 'SEND_TEXT_MESSAGE';
@@ -11629,6 +11633,16 @@ function getMessagesAC(channel, loadWithLastMessage, messageId, limit, withDeliv
11629
11633
  }
11630
11634
  };
11631
11635
  }
11636
+ function getMessageAC(channelId, messageId, limit) {
11637
+ return {
11638
+ type: GET_MESSAGE,
11639
+ payload: {
11640
+ channelId: channelId,
11641
+ messageId: messageId,
11642
+ limit: limit
11643
+ }
11644
+ };
11645
+ }
11632
11646
  function setScrollToMessagesAC(messageId, highlight) {
11633
11647
  if (highlight === void 0) {
11634
11648
  highlight = true;
@@ -14761,13 +14775,13 @@ var _marked$2 = /*#__PURE__*/_regenerator().m(createChannel),
14761
14775
  _marked27 = /*#__PURE__*/_regenerator().m(watchForChannelEvents),
14762
14776
  _marked28 = /*#__PURE__*/_regenerator().m(ChannelsSaga);
14763
14777
  function createChannel(action) {
14764
- var payload, channelData, dontCreateIfNotExists, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
14778
+ var payload, channelData, dontCreateIfNotExists, callback, SceytChatClient, createChannelData, fileToUpload, isSelfChannel, channelIsExistOnAllChannels, createdChannel, allChannels, memberId, checkChannelExist, messageToSend, _allChannels, _memberId, _t;
14765
14779
  return _regenerator().w(function (_context) {
14766
14780
  while (1) switch (_context.p = _context.n) {
14767
14781
  case 0:
14768
14782
  _context.p = 0;
14769
14783
  payload = action.payload;
14770
- channelData = payload.channelData, dontCreateIfNotExists = payload.dontCreateIfNotExists;
14784
+ channelData = payload.channelData, dontCreateIfNotExists = payload.dontCreateIfNotExists, callback = payload.callback;
14771
14785
  SceytChatClient = getClient();
14772
14786
  createChannelData = _extends({}, channelData);
14773
14787
  if (!createChannelData.avatarFile) {
@@ -14803,8 +14817,8 @@ function createChannel(action) {
14803
14817
  allChannels.forEach(function (channel) {
14804
14818
  if (channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
14805
14819
  if (isSelfChannel) {
14806
- var meta = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
14807
- if (meta !== null && meta !== void 0 && meta.s) {
14820
+ var _channel$members;
14821
+ if (((_channel$members = channel.members) === null || _channel$members === void 0 ? void 0 : _channel$members.length) === 1 && channel.members[0].id === memberId) {
14808
14822
  channelIsExistOnAllChannels = true;
14809
14823
  }
14810
14824
  } else {
@@ -14894,7 +14908,7 @@ function createChannel(action) {
14894
14908
  _context.n = 14;
14895
14909
  return effects.put(switchChannelActionAC(JSON.parse(JSON.stringify(_extends({}, createdChannel, {
14896
14910
  isLinkedChannel: dontCreateIfNotExists
14897
- })))));
14911
+ }))), !callback));
14898
14912
  case 14:
14899
14913
  if (dontCreateIfNotExists) {
14900
14914
  if (!channelIsExistOnAllChannels) {
@@ -14924,19 +14938,27 @@ function createChannel(action) {
14924
14938
  addChannelToAllChannels(createdChannel);
14925
14939
  }
14926
14940
  }
14927
- _context.n = 15;
14928
- return effects.call(setActiveChannelId, createdChannel.id);
14929
- case 15:
14930
- _context.n = 17;
14941
+ if (!callback) {
14942
+ _context.n = 15;
14943
+ break;
14944
+ }
14945
+ callback(createdChannel);
14946
+ _context.n = 16;
14931
14947
  break;
14948
+ case 15:
14949
+ _context.n = 16;
14950
+ return effects.call(setActiveChannelId, createdChannel.id);
14932
14951
  case 16:
14933
- _context.p = 16;
14952
+ _context.n = 18;
14953
+ break;
14954
+ case 17:
14955
+ _context.p = 17;
14934
14956
  _t = _context.v;
14935
14957
  log.error(_t, 'Error on create channel');
14936
- case 17:
14958
+ case 18:
14937
14959
  return _context.a(2);
14938
14960
  }
14939
- }, _marked$2, null, [[0, 16]]);
14961
+ }, _marked$2, null, [[0, 17]]);
14940
14962
  }
14941
14963
  function getChannels(action) {
14942
14964
  var _params$filter, _types, payload, params, SceytChatClient, channelQueryBuilder, channelTypesFilter, types, channelQuery, channelsData, channelList, channelId, activeChannel, _yield$call, mappedChannels, channelsForUpdateLastReactionMessage, channelMessageMap, hiddenList, allChannelsQueryBuilder, allChannelsQuery, hasNext, i, allChannelsData, allChannelList, _t2, _t3, _t4;
@@ -15118,7 +15140,7 @@ function getChannels(action) {
15118
15140
  }, _marked2$1, null, [[18, 20], [0, 23]]);
15119
15141
  }
15120
15142
  function searchChannels(action) {
15121
- var payload, params, contactsMap, SceytChatClient, getFromContacts, searchBy, _params$filter2, _types2, channelQueryBuilder, channelTypesFilter, types, allChannels, publicChannels, chatsGroups, contactsList, contactsWithChannelsMap, lowerCaseSearchBy, channelQuery, channelsData, channelsToAdd, _t5;
15143
+ var payload, params, contactsMap, SceytChatClient, getFromContacts, searchBy, _params$filter2, _types2, channelQueryBuilder, channelTypesFilter, types, allChannels, publicChannels, chatsGroups, contactsList, contactsWithChannelsMap, lowerCaseSearchBy, handleChannels, channelsMap, _iterator, _step, channel, channelQuery, channelsData, _iterator2, _step2, _channel, channelsToAdd, _t5;
15122
15144
  return _regenerator().w(function (_context3) {
15123
15145
  while (1) switch (_context3.p = _context3.n) {
15124
15146
  case 0:
@@ -15157,31 +15179,38 @@ function searchChannels(action) {
15157
15179
  contactsList = [];
15158
15180
  contactsWithChannelsMap = {};
15159
15181
  lowerCaseSearchBy = searchBy.toLowerCase();
15160
- allChannels.forEach(function (channel) {
15161
- if (channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
15162
- var _channel$metadata;
15163
- channel.metadata = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
15164
- var isSelfChannel = (_channel$metadata = channel.metadata) === null || _channel$metadata === void 0 ? void 0 : _channel$metadata.s;
15165
- var directChannelUser = isSelfChannel ? SceytChatClient.user : channel.members.find(function (member) {
15166
- return member.id !== SceytChatClient.user.id;
15167
- });
15168
- if (directChannelUser && contactsMap[directChannelUser.id]) {
15169
- contactsWithChannelsMap[directChannelUser.id] = true;
15170
- }
15171
- var userName = makeUsername(directChannelUser && contactsMap[directChannelUser.id], directChannelUser, getFromContacts).toLowerCase();
15172
- if (userName.includes(lowerCaseSearchBy) || isSelfChannel && 'me'.includes(lowerCaseSearchBy)) {
15173
- chatsGroups.push(channel);
15174
- }
15175
- } else {
15176
- if (channel.subject && channel.subject.toLowerCase().includes(lowerCaseSearchBy)) {
15177
- if (channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST) {
15178
- publicChannels.push(channel);
15179
- } else {
15182
+ handleChannels = function handleChannels(channels) {
15183
+ channels.forEach(function (channel) {
15184
+ if (channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
15185
+ channel.metadata = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
15186
+ var isSelfChannel = channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === SceytChatClient.user.id;
15187
+ var directChannelUser = isSelfChannel ? SceytChatClient.user : channel.members.find(function (member) {
15188
+ return member.id !== SceytChatClient.user.id;
15189
+ });
15190
+ if (directChannelUser && contactsMap[directChannelUser.id]) {
15191
+ contactsWithChannelsMap[directChannelUser.id] = true;
15192
+ }
15193
+ var userName = makeUsername(directChannelUser && contactsMap[directChannelUser.id], directChannelUser, getFromContacts).toLowerCase();
15194
+ if (userName.includes(lowerCaseSearchBy) || isSelfChannel && 'me'.includes(lowerCaseSearchBy)) {
15180
15195
  chatsGroups.push(channel);
15181
15196
  }
15197
+ } else {
15198
+ if (channel.subject && channel.subject.toLowerCase().includes(lowerCaseSearchBy)) {
15199
+ if (channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST) {
15200
+ publicChannels.push(channel);
15201
+ } else {
15202
+ chatsGroups.push(channel);
15203
+ }
15204
+ }
15182
15205
  }
15183
- }
15184
- });
15206
+ });
15207
+ };
15208
+ channelsMap = {};
15209
+ for (_iterator = _createForOfIteratorHelperLoose(allChannels); !(_step = _iterator()).done;) {
15210
+ channel = _step.value;
15211
+ channelsMap[channel.id] = channel;
15212
+ }
15213
+ handleChannels(allChannels);
15185
15214
  if (getFromContacts) {
15186
15215
  Object.values(contactsMap).forEach(function (contact) {
15187
15216
  if (!contactsWithChannelsMap[contact.id]) {
@@ -15215,6 +15244,13 @@ function searchChannels(action) {
15215
15244
  return effects.call(channelQuery.loadNextPage);
15216
15245
  case 5:
15217
15246
  channelsData = _context3.v;
15247
+ for (_iterator2 = _createForOfIteratorHelperLoose(channelsData.channels); !(_step2 = _iterator2()).done;) {
15248
+ _channel = _step2.value;
15249
+ channelsMap[_channel.id] = _channel;
15250
+ }
15251
+ chatsGroups = [];
15252
+ publicChannels = [];
15253
+ handleChannels(Object.values(channelsMap));
15218
15254
  channelsToAdd = channelsData.channels.filter(function (channel) {
15219
15255
  return channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST;
15220
15256
  });
@@ -15237,16 +15273,16 @@ function searchChannels(action) {
15237
15273
  }, _marked3, null, [[0, 7]]);
15238
15274
  }
15239
15275
  function getChannelsForForward() {
15240
- var SceytChatClient, channelQueryBuilder, channelTypesFilter, channelQuery, channelsData, channelsToAdd, _yield$call2, mappedChannels, _t6;
15276
+ var _SceytChatClient, channelQueryBuilder, channelTypesFilter, channelQuery, channelsData, channelsToAdd, _yield$call2, mappedChannels, _t6;
15241
15277
  return _regenerator().w(function (_context4) {
15242
15278
  while (1) switch (_context4.p = _context4.n) {
15243
15279
  case 0:
15244
15280
  _context4.p = 0;
15245
- SceytChatClient = getClient();
15281
+ _SceytChatClient = getClient();
15246
15282
  _context4.n = 1;
15247
15283
  return effects.put(setChannelsLoadingStateAC(LOADING_STATE.LOADING, true));
15248
15284
  case 1:
15249
- channelQueryBuilder = new SceytChatClient.ChannelListQueryBuilder();
15285
+ channelQueryBuilder = new _SceytChatClient.ChannelListQueryBuilder();
15250
15286
  channelTypesFilter = getChannelTypesFilter();
15251
15287
  channelQueryBuilder.order('lastMessage');
15252
15288
  if (channelTypesFilter !== null && channelTypesFilter !== void 0 && channelTypesFilter.length) {
@@ -15265,11 +15301,10 @@ function getChannelsForForward() {
15265
15301
  return effects.put(channelHasNextAC(channelsData.hasNext, true));
15266
15302
  case 4:
15267
15303
  channelsToAdd = channelsData.channels.filter(function (channel) {
15268
- var _channel$metadata2;
15269
15304
  channel.metadata = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
15270
- var isSelfChannel = (_channel$metadata2 = channel.metadata) === null || _channel$metadata2 === void 0 ? void 0 : _channel$metadata2.s;
15305
+ var isSelfChannel = channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === _SceytChatClient.user.id;
15271
15306
  return channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? channel.userRole === 'admin' || channel.userRole === 'owner' : channel.type === DEFAULT_CHANNEL_TYPE.DIRECT ? isSelfChannel || channel.members.find(function (member) {
15272
- return member.id && member.id !== SceytChatClient.user.id;
15307
+ return member.id && member.id !== _SceytChatClient.user.id;
15273
15308
  }) : true;
15274
15309
  });
15275
15310
  _context4.n = 5;
@@ -15296,15 +15331,15 @@ function getChannelsForForward() {
15296
15331
  }, _marked4, null, [[0, 8]]);
15297
15332
  }
15298
15333
  function searchChannelsForForward(action) {
15299
- var payload, params, contactsMap, SceytChatClient, getFromContacts, searchBy, _params$filter3, _types3, channelQueryBuilder, channelTypesFilter, types, allChannels, publicChannels, chatsGroups, contactsList, contactsWithChannelsMap, lowerCaseSearchBy, channelQuery, channelsData, channelsToAdd, _t7;
15334
+ var payload, params, _contactsMap, _SceytChatClient2, _getFromContacts, searchBy, _params$filter3, _types3, channelQueryBuilder, channelTypesFilter, types, allChannels, _publicChannels, _chatsGroups, contactsList, _contactsWithChannelsMap, _lowerCaseSearchBy, handleChannels, channelsMap, _iterator3, _step3, channel, channelQuery, channelsData, _iterator4, _step4, _channel2, channelsToAdd, _t7;
15300
15335
  return _regenerator().w(function (_context5) {
15301
15336
  while (1) switch (_context5.p = _context5.n) {
15302
15337
  case 0:
15303
15338
  _context5.p = 0;
15304
15339
  payload = action.payload;
15305
- params = payload.params, contactsMap = payload.contactsMap;
15306
- SceytChatClient = getClient();
15307
- getFromContacts = getShowOnlyContactUsers();
15340
+ params = payload.params, _contactsMap = payload.contactsMap;
15341
+ _SceytChatClient2 = getClient();
15342
+ _getFromContacts = getShowOnlyContactUsers();
15308
15343
  _context5.n = 1;
15309
15344
  return effects.put(setChannelsLoadingStateAC(LOADING_STATE.LOADING, true));
15310
15345
  case 1:
@@ -15313,7 +15348,7 @@ function searchChannelsForForward(action) {
15313
15348
  _context5.n = 6;
15314
15349
  break;
15315
15350
  }
15316
- channelQueryBuilder = new SceytChatClient.ChannelListQueryBuilder();
15351
+ channelQueryBuilder = new _SceytChatClient2.ChannelListQueryBuilder();
15317
15352
  channelTypesFilter = getChannelTypesFilter();
15318
15353
  types = [];
15319
15354
  if (channelTypesFilter !== null && channelTypesFilter !== void 0 && channelTypesFilter.length) {
@@ -15326,41 +15361,48 @@ function searchChannelsForForward(action) {
15326
15361
  channelQueryBuilder.types(types);
15327
15362
  }
15328
15363
  allChannels = getAllChannels();
15329
- publicChannels = [];
15330
- chatsGroups = [];
15364
+ _publicChannels = [];
15365
+ _chatsGroups = [];
15331
15366
  contactsList = [];
15332
- contactsWithChannelsMap = {};
15333
- lowerCaseSearchBy = searchBy.toLowerCase();
15334
- allChannels.forEach(function (channel) {
15335
- if (channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
15336
- var _channel$metadata3;
15337
- channel.metadata = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
15338
- var isSelfChannel = (_channel$metadata3 = channel.metadata) === null || _channel$metadata3 === void 0 ? void 0 : _channel$metadata3.s;
15339
- var directChannelUser = isSelfChannel ? SceytChatClient.user : channel.members.find(function (member) {
15340
- return member.id !== SceytChatClient.user.id;
15341
- });
15342
- if (directChannelUser && contactsMap[directChannelUser.id]) {
15343
- contactsWithChannelsMap[directChannelUser.id] = true;
15344
- }
15345
- var userName = makeUsername(directChannelUser && contactsMap[directChannelUser.id], directChannelUser, getFromContacts).toLowerCase();
15346
- if (userName.includes(lowerCaseSearchBy) || isSelfChannel && 'me'.includes(lowerCaseSearchBy)) {
15347
- chatsGroups.push(channel);
15348
- }
15349
- } else {
15350
- if (channel.subject && channel.subject.toLowerCase().includes(lowerCaseSearchBy)) {
15351
- if (channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST) {
15352
- publicChannels.push(channel);
15353
- } else {
15354
- chatsGroups.push(channel);
15367
+ _contactsWithChannelsMap = {};
15368
+ _lowerCaseSearchBy = searchBy.toLowerCase();
15369
+ handleChannels = function handleChannels(channels) {
15370
+ channels.forEach(function (channel) {
15371
+ if (channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
15372
+ channel.metadata = isJSON(channel.metadata) ? JSON.parse(channel.metadata) : channel.metadata;
15373
+ var isSelfChannel = channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === _SceytChatClient2.user.id;
15374
+ var directChannelUser = isSelfChannel ? _SceytChatClient2.user : channel.members.find(function (member) {
15375
+ return member.id !== _SceytChatClient2.user.id;
15376
+ });
15377
+ if (directChannelUser && _contactsMap[directChannelUser.id]) {
15378
+ _contactsWithChannelsMap[directChannelUser.id] = true;
15379
+ }
15380
+ var userName = makeUsername(directChannelUser && _contactsMap[directChannelUser.id], directChannelUser, _getFromContacts).toLowerCase();
15381
+ if (userName.includes(_lowerCaseSearchBy) || isSelfChannel && 'me'.includes(_lowerCaseSearchBy)) {
15382
+ _chatsGroups.push(channel);
15383
+ }
15384
+ } else {
15385
+ if (channel.subject && channel.subject.toLowerCase().includes(_lowerCaseSearchBy)) {
15386
+ if (channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST) {
15387
+ _publicChannels.push(channel);
15388
+ } else {
15389
+ _chatsGroups.push(channel);
15390
+ }
15355
15391
  }
15356
15392
  }
15357
- }
15358
- });
15359
- if (getFromContacts) {
15360
- Object.values(contactsMap).forEach(function (contact) {
15361
- if (!contactsWithChannelsMap[contact.id]) {
15393
+ });
15394
+ };
15395
+ channelsMap = {};
15396
+ for (_iterator3 = _createForOfIteratorHelperLoose(allChannels); !(_step3 = _iterator3()).done;) {
15397
+ channel = _step3.value;
15398
+ channelsMap[channel.id] = channel;
15399
+ }
15400
+ handleChannels(allChannels);
15401
+ if (_getFromContacts) {
15402
+ Object.values(_contactsMap).forEach(function (contact) {
15403
+ if (!_contactsWithChannelsMap[contact.id]) {
15362
15404
  var userName = makeUsername(contact, undefined, true).toLowerCase();
15363
- if (userName.includes(lowerCaseSearchBy)) {
15405
+ if (userName.includes(_lowerCaseSearchBy)) {
15364
15406
  contactsList.push(contact);
15365
15407
  }
15366
15408
  }
@@ -15368,15 +15410,15 @@ function searchChannelsForForward(action) {
15368
15410
  }
15369
15411
  _context5.n = 2;
15370
15412
  return effects.put(setSearchedChannelsForForwardAC({
15371
- chats_groups: JSON.parse(JSON.stringify(chatsGroups)),
15372
- channels: JSON.parse(JSON.stringify(publicChannels)),
15413
+ chats_groups: JSON.parse(JSON.stringify(_chatsGroups)),
15414
+ channels: JSON.parse(JSON.stringify(_publicChannels)),
15373
15415
  contacts: JSON.parse(JSON.stringify(contactsList))
15374
15416
  }));
15375
15417
  case 2:
15376
15418
  _context5.n = 3;
15377
15419
  return effects.put(setChannelsLoadingStateAC(LOADING_STATE.LOADED, true));
15378
15420
  case 3:
15379
- channelQueryBuilder.query(lowerCaseSearchBy);
15421
+ channelQueryBuilder.query(_lowerCaseSearchBy);
15380
15422
  channelQueryBuilder.limit(params.limit || 50);
15381
15423
  channelQueryBuilder.order('lastMessage');
15382
15424
  channelQueryBuilder.filterKey(['subject']);
@@ -15389,12 +15431,19 @@ function searchChannelsForForward(action) {
15389
15431
  return effects.call(channelQuery.loadNextPage);
15390
15432
  case 5:
15391
15433
  channelsData = _context5.v;
15434
+ for (_iterator4 = _createForOfIteratorHelperLoose(channelsData.channels); !(_step4 = _iterator4()).done;) {
15435
+ _channel2 = _step4.value;
15436
+ channelsMap[_channel2.id] = _channel2;
15437
+ }
15438
+ _chatsGroups = [];
15439
+ _publicChannels = [];
15440
+ handleChannels(Object.values(channelsMap));
15392
15441
  channelsToAdd = channelsData.channels.filter(function (channel) {
15393
15442
  return channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC || channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST;
15394
15443
  });
15395
15444
  _context5.n = 6;
15396
15445
  return effects.put(setSearchedChannelsForForwardAC({
15397
- chats_groups: JSON.parse(JSON.stringify(chatsGroups)),
15446
+ chats_groups: JSON.parse(JSON.stringify(_chatsGroups)),
15398
15447
  channels: JSON.parse(JSON.stringify(channelsToAdd)),
15399
15448
  contacts: JSON.parse(JSON.stringify(contactsList))
15400
15449
  }));
@@ -15491,15 +15540,15 @@ function channelsLoadMore(action) {
15491
15540
  }, _marked6, null, [[0, 9]]);
15492
15541
  }
15493
15542
  function getChannelMentions(action) {
15494
- var payload, channelId, SceytChatClient, mentionsQueryBuilder, mentionsQuery, mentions, _t9;
15543
+ var payload, channelId, _SceytChatClient3, mentionsQueryBuilder, mentionsQuery, mentions, _t9;
15495
15544
  return _regenerator().w(function (_context7) {
15496
15545
  while (1) switch (_context7.p = _context7.n) {
15497
15546
  case 0:
15498
15547
  _context7.p = 0;
15499
15548
  payload = action.payload;
15500
15549
  channelId = payload.channelId;
15501
- SceytChatClient = getClient();
15502
- mentionsQueryBuilder = new SceytChatClient.MentionsListQueryBuilder();
15550
+ _SceytChatClient3 = getClient();
15551
+ mentionsQueryBuilder = new _SceytChatClient3.MentionsListQueryBuilder();
15503
15552
  mentionsQueryBuilder.setChannelId(channelId);
15504
15553
  mentionsQueryBuilder.limit(10);
15505
15554
  mentionsQueryBuilder.setDirection(queryDirection.NEXT);
@@ -15528,14 +15577,14 @@ function getChannelMentions(action) {
15528
15577
  }, _marked7, null, [[0, 4]]);
15529
15578
  }
15530
15579
  function channelsForForwardLoadMore(action) {
15531
- var payload, limit, SceytChatClient, channelQueryForward, channelsData, channelsToAdd, _yield$call4, mappedChannels, _t0;
15580
+ var payload, limit, _SceytChatClient4, channelQueryForward, channelsData, channelsToAdd, _yield$call4, mappedChannels, _t0;
15532
15581
  return _regenerator().w(function (_context8) {
15533
15582
  while (1) switch (_context8.p = _context8.n) {
15534
15583
  case 0:
15535
15584
  _context8.p = 0;
15536
15585
  payload = action.payload;
15537
15586
  limit = payload.limit;
15538
- SceytChatClient = getClient();
15587
+ _SceytChatClient4 = getClient();
15539
15588
  channelQueryForward = query.channelQueryForward;
15540
15589
  if (limit) {
15541
15590
  channelQueryForward.limit = limit;
@@ -15552,7 +15601,7 @@ function channelsForForwardLoadMore(action) {
15552
15601
  case 3:
15553
15602
  channelsToAdd = channelsData.channels.filter(function (channel) {
15554
15603
  return channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? channel.userRole === 'admin' || channel.userRole === 'owner' : channel.type === DEFAULT_CHANNEL_TYPE.DIRECT ? channel.members.find(function (member) {
15555
- return member.id && member.id !== SceytChatClient.user.id;
15604
+ return member.id && member.id !== _SceytChatClient4.user.id;
15556
15605
  }) : true;
15557
15606
  });
15558
15607
  _context8.n = 4;
@@ -15578,7 +15627,7 @@ function channelsForForwardLoadMore(action) {
15578
15627
  }, _marked8, null, [[0, 7]]);
15579
15628
  }
15580
15629
  function markMessagesRead(action) {
15581
- var payload, channelId, messageIds, channel, messageListMarker, _iterator, _step, messageId, updateParams, _t1;
15630
+ var payload, channelId, messageIds, channel, messageListMarker, _iterator5, _step5, messageId, updateParams, _t1;
15582
15631
  return _regenerator().w(function (_context9) {
15583
15632
  while (1) switch (_context9.p = _context9.n) {
15584
15633
  case 0:
@@ -15611,13 +15660,13 @@ function markMessagesRead(action) {
15611
15660
  updateChannelOnAllChannels(channel.id, {
15612
15661
  lastReadMessageId: channel.lastDisplayedMessageId
15613
15662
  });
15614
- _iterator = _createForOfIteratorHelperLoose(messageListMarker.messageIds);
15663
+ _iterator5 = _createForOfIteratorHelperLoose(messageListMarker.messageIds);
15615
15664
  case 5:
15616
- if ((_step = _iterator()).done) {
15665
+ if ((_step5 = _iterator5()).done) {
15617
15666
  _context9.n = 8;
15618
15667
  break;
15619
15668
  }
15620
- messageId = _step.value;
15669
+ messageId = _step5.value;
15621
15670
  updateParams = {
15622
15671
  deliveryStatus: MESSAGE_DELIVERY_STATUS.READ,
15623
15672
  userMarkers: [{
@@ -15688,15 +15737,15 @@ function markMessagesDelivered(action) {
15688
15737
  }, _marked0, null, [[1, 4]]);
15689
15738
  }
15690
15739
  function switchChannel(action) {
15691
- var payload, channel, channelToSwitch, existingChannel, addChannel, SceytChatClient, fetchedChannel, channelFromMap, currentActiveChannel, _t11;
15740
+ var payload, channel, updateActiveChannel, channelToSwitch, existingChannel, addChannel, _SceytChatClient5, fetchedChannel, channelFromMap, currentActiveChannel, _t11;
15692
15741
  return _regenerator().w(function (_context1) {
15693
15742
  while (1) switch (_context1.p = _context1.n) {
15694
15743
  case 0:
15695
15744
  _context1.p = 0;
15696
15745
  payload = action.payload;
15697
- channel = payload.channel;
15746
+ channel = payload.channel, updateActiveChannel = payload.updateActiveChannel;
15698
15747
  channelToSwitch = channel;
15699
- if (channel !== null && channel !== void 0 && channel.id) {
15748
+ if (!(!(channel !== null && channel !== void 0 && channel.id) && updateActiveChannel)) {
15700
15749
  _context1.n = 3;
15701
15750
  break;
15702
15751
  }
@@ -15726,9 +15775,9 @@ function switchChannel(action) {
15726
15775
  _context1.n = 8;
15727
15776
  break;
15728
15777
  case 5:
15729
- SceytChatClient = getClient();
15778
+ _SceytChatClient5 = getClient();
15730
15779
  _context1.n = 6;
15731
- return effects.call(SceytChatClient.getChannel, channel.id);
15780
+ return effects.call(_SceytChatClient5.getChannel, channel.id);
15732
15781
  case 6:
15733
15782
  fetchedChannel = _context1.v;
15734
15783
  addChannelToAllChannels(fetchedChannel);
@@ -15744,6 +15793,10 @@ function switchChannel(action) {
15744
15793
  channelFromMap = getChannelFromMap(channel.id);
15745
15794
  channelToSwitch = _extends({}, channelToSwitch, channelFromMap);
15746
15795
  case 10:
15796
+ if (!updateActiveChannel) {
15797
+ _context1.n = 13;
15798
+ break;
15799
+ }
15747
15800
  currentActiveChannel = getChannelFromMap(getActiveChannelId());
15748
15801
  _context1.n = 11;
15749
15802
  return effects.call(setUnreadScrollTo, true);
@@ -16160,14 +16213,14 @@ function blockChannel(action) {
16160
16213
  }, _marked19, null, [[0, 5]]);
16161
16214
  }
16162
16215
  function updateChannel(action) {
16163
- var payload, channelId, config, SceytChatClient, channel, paramsToUpdate, fileToUpload, _yield$call5, subject, avatarUrl, metadata, _t21;
16216
+ var payload, channelId, config, _SceytChatClient6, channel, paramsToUpdate, fileToUpload, _yield$call5, subject, avatarUrl, metadata, _t21;
16164
16217
  return _regenerator().w(function (_context20) {
16165
16218
  while (1) switch (_context20.p = _context20.n) {
16166
16219
  case 0:
16167
16220
  _context20.p = 0;
16168
16221
  payload = action.payload;
16169
16222
  channelId = payload.channelId, config = payload.config;
16170
- SceytChatClient = getClient();
16223
+ _SceytChatClient6 = getClient();
16171
16224
  _context20.n = 1;
16172
16225
  return effects.call(getChannelFromMap, channelId);
16173
16226
  case 1:
@@ -16192,7 +16245,7 @@ function updateChannel(action) {
16192
16245
  }
16193
16246
  };
16194
16247
  _context20.n = 2;
16195
- return effects.call(SceytChatClient.uploadFile, fileToUpload);
16248
+ return effects.call(_SceytChatClient6.uploadFile, fileToUpload);
16196
16249
  case 2:
16197
16250
  paramsToUpdate.avatarUrl = _context20.v;
16198
16251
  case 3:
@@ -16236,15 +16289,15 @@ function updateChannel(action) {
16236
16289
  }, _marked20, null, [[0, 6]]);
16237
16290
  }
16238
16291
  function checkUsersStatus() {
16239
- var SceytChatClient, usersForUpdate, updatedUsers, usersToUpdateMap, update, updateData, _t22;
16292
+ var _SceytChatClient7, usersForUpdate, updatedUsers, usersToUpdateMap, update, updateData, _t22;
16240
16293
  return _regenerator().w(function (_context21) {
16241
16294
  while (1) switch (_context21.p = _context21.n) {
16242
16295
  case 0:
16243
16296
  _context21.p = 0;
16244
- SceytChatClient = getClient();
16297
+ _SceytChatClient7 = getClient();
16245
16298
  usersForUpdate = Object.keys(usersMap);
16246
16299
  _context21.n = 1;
16247
- return effects.call(SceytChatClient.getUsers, usersForUpdate);
16300
+ return effects.call(_SceytChatClient7.getUsers, usersForUpdate);
16248
16301
  case 1:
16249
16302
  updatedUsers = _context21.v;
16250
16303
  usersToUpdateMap = {};
@@ -16502,14 +16555,14 @@ function deleteAllMessages(action) {
16502
16555
  }, _marked25, null, [[0, 9]]);
16503
16556
  }
16504
16557
  function joinChannel(action) {
16505
- var payload, channelId, SceytChatClient, channel, joinedChannel, _t27;
16558
+ var payload, channelId, _SceytChatClient8, channel, joinedChannel, _t27;
16506
16559
  return _regenerator().w(function (_context26) {
16507
16560
  while (1) switch (_context26.p = _context26.n) {
16508
16561
  case 0:
16509
16562
  _context26.p = 0;
16510
16563
  payload = action.payload;
16511
16564
  channelId = payload.channelId;
16512
- SceytChatClient = getClient();
16565
+ _SceytChatClient8 = getClient();
16513
16566
  _context26.n = 1;
16514
16567
  return effects.call(getChannelFromMap, channelId);
16515
16568
  case 1:
@@ -16522,7 +16575,7 @@ function joinChannel(action) {
16522
16575
  break;
16523
16576
  }
16524
16577
  _context26.n = 2;
16525
- return effects.call(SceytChatClient.getChannel, channelId);
16578
+ return effects.call(_SceytChatClient8.getChannel, channelId);
16526
16579
  case 2:
16527
16580
  channel = _context26.v;
16528
16581
  case 3:
@@ -17135,16 +17188,17 @@ var _marked$3 = /*#__PURE__*/_regenerator().m(sendMessage),
17135
17188
  _marked5$1 = /*#__PURE__*/_regenerator().m(deleteMessage),
17136
17189
  _marked6$1 = /*#__PURE__*/_regenerator().m(editMessage),
17137
17190
  _marked7$1 = /*#__PURE__*/_regenerator().m(getMessagesQuery),
17138
- _marked8$1 = /*#__PURE__*/_regenerator().m(loadMoreMessages),
17139
- _marked9$1 = /*#__PURE__*/_regenerator().m(addReaction),
17140
- _marked0$1 = /*#__PURE__*/_regenerator().m(deleteReaction),
17141
- _marked1$1 = /*#__PURE__*/_regenerator().m(getReactions),
17142
- _marked10$1 = /*#__PURE__*/_regenerator().m(loadMoreReactions),
17143
- _marked11$1 = /*#__PURE__*/_regenerator().m(getMessageAttachments),
17144
- _marked12$1 = /*#__PURE__*/_regenerator().m(loadMoreMessageAttachments),
17145
- _marked13$1 = /*#__PURE__*/_regenerator().m(pauseAttachmentUploading),
17146
- _marked14$1 = /*#__PURE__*/_regenerator().m(resumeAttachmentUploading),
17147
- _marked15$1 = /*#__PURE__*/_regenerator().m(MessageSaga);
17191
+ _marked8$1 = /*#__PURE__*/_regenerator().m(getMessageQuery),
17192
+ _marked9$1 = /*#__PURE__*/_regenerator().m(loadMoreMessages),
17193
+ _marked0$1 = /*#__PURE__*/_regenerator().m(addReaction),
17194
+ _marked1$1 = /*#__PURE__*/_regenerator().m(deleteReaction),
17195
+ _marked10$1 = /*#__PURE__*/_regenerator().m(getReactions),
17196
+ _marked11$1 = /*#__PURE__*/_regenerator().m(loadMoreReactions),
17197
+ _marked12$1 = /*#__PURE__*/_regenerator().m(getMessageAttachments),
17198
+ _marked13$1 = /*#__PURE__*/_regenerator().m(loadMoreMessageAttachments),
17199
+ _marked14$1 = /*#__PURE__*/_regenerator().m(pauseAttachmentUploading),
17200
+ _marked15$1 = /*#__PURE__*/_regenerator().m(resumeAttachmentUploading),
17201
+ _marked16$1 = /*#__PURE__*/_regenerator().m(MessageSaga);
17148
17202
  var handleUploadAttachments = function handleUploadAttachments(attachments, message, channel) {
17149
17203
  try {
17150
17204
  return Promise.resolve(Promise.all(attachments.map(function (attachment) {
@@ -17624,7 +17678,7 @@ function sendMessage(action) {
17624
17678
  }, _marked$3, null, [[1, 18]]);
17625
17679
  }
17626
17680
  function sendTextMessage(action) {
17627
- var payload, message, connectionState, channelId, channel, sendMessageTid, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, messageToSend, pendingMessage, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
17681
+ var payload, message, connectionState, channelId, channel, sendMessageTid, activeChannelId, SceytChatClient, createChannelData, mentionedUserIds, attachments, attachmentBuilder, att, messageBuilder, messageToSend, pendingMessage, messageResponse, messageUpdateData, messageToUpdate, channelUpdateParam, _t3;
17628
17682
  return _regenerator().w(function (_context4) {
17629
17683
  while (1) switch (_context4.p = _context4.n) {
17630
17684
  case 0:
@@ -17643,6 +17697,7 @@ function sendTextMessage(action) {
17643
17697
  setChannelInMap(channel);
17644
17698
  }
17645
17699
  }
17700
+ activeChannelId = getActiveChannelId();
17646
17701
  _context4.p = 3;
17647
17702
  if (!channel.isMockChannel) {
17648
17703
  _context4.n = 6;
@@ -17678,7 +17733,7 @@ function sendTextMessage(action) {
17678
17733
  attachments = [att];
17679
17734
  }
17680
17735
  messageBuilder = channel.createMessageBuilder();
17681
- messageBuilder.setBody(message.body).setBodyAttributes(message.bodyAttributes).setAttachments(attachments).setMentionUserIds(mentionedUserIds).setType(message.type).setDisplayCount(message.type === 'system' ? 0 : 1).setSilent(message.type === 'system').setMetadata(JSON.stringify(message.metadata));
17736
+ messageBuilder.setBody(message.body).setBodyAttributes(message.bodyAttributes).setAttachments(attachments).setMentionUserIds(mentionedUserIds).setType(message.type).setDisplayCount((message === null || message === void 0 ? void 0 : message.displayCount) !== undefined ? message.displayCount : message.type === 'system' ? 0 : 1).setSilent((message === null || message === void 0 ? void 0 : message.silent) !== undefined ? message.silent : message.type === 'system').setMetadata(JSON.stringify(message.metadata));
17682
17737
  if (message.parentMessage) {
17683
17738
  messageBuilder.setParentMessageId(message.parentMessage ? message.parentMessage.id : null);
17684
17739
  }
@@ -17695,6 +17750,10 @@ function sendTextMessage(action) {
17695
17750
  if (pendingMessage.metadata) {
17696
17751
  pendingMessage.metadata = JSON.parse(pendingMessage.metadata);
17697
17752
  }
17753
+ if (!(activeChannelId === channel.id)) {
17754
+ _context4.n = 8;
17755
+ break;
17756
+ }
17698
17757
  _context4.n = 8;
17699
17758
  return effects.call(addPendingMessage, message, pendingMessage, channel);
17700
17759
  case 8:
@@ -17731,8 +17790,13 @@ function sendTextMessage(action) {
17731
17790
  metadata: messageResponse.metadata,
17732
17791
  parentMessage: messageResponse.parentMessage,
17733
17792
  repliedInThread: messageResponse.repliedInThread,
17734
- createdAt: messageResponse.createdAt
17793
+ createdAt: messageResponse.createdAt,
17794
+ channelId: channel.id
17735
17795
  };
17796
+ if (!(activeChannelId === channel.id)) {
17797
+ _context4.n = 13;
17798
+ break;
17799
+ }
17736
17800
  _context4.n = 13;
17737
17801
  return effects.put(updateMessageAC(messageToSend.tid, messageUpdateData));
17738
17802
  case 13:
@@ -17740,7 +17804,9 @@ function sendTextMessage(action) {
17740
17804
  messageId: messageToSend.tid,
17741
17805
  params: messageUpdateData
17742
17806
  });
17743
- updateMessageOnAllMessages(messageToSend.tid, messageUpdateData);
17807
+ if (activeChannelId === channel.id) {
17808
+ updateMessageOnAllMessages(messageToSend.tid, messageUpdateData);
17809
+ }
17744
17810
  messageToUpdate = JSON.parse(JSON.stringify(messageResponse));
17745
17811
  updateChannelLastMessageOnAllChannels(channel.id, messageToUpdate);
17746
17812
  channelUpdateParam = {
@@ -17781,6 +17847,10 @@ function sendTextMessage(action) {
17781
17847
  state: MESSAGE_STATUS.FAILED
17782
17848
  }
17783
17849
  });
17850
+ if (!(activeChannelId === channel.id)) {
17851
+ _context4.n = 21;
17852
+ break;
17853
+ }
17784
17854
  updateMessageOnAllMessages(sendMessageTid, {
17785
17855
  state: MESSAGE_STATUS.FAILED
17786
17856
  });
@@ -18758,23 +18828,68 @@ function getMessagesQuery(action) {
18758
18828
  }
18759
18829
  }, _marked7$1, null, [[0, 49, 50, 52]]);
18760
18830
  }
18761
- function loadMoreMessages(action) {
18762
- var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t0;
18831
+ function getMessageQuery(action) {
18832
+ var payload, channelId, messageId, channel, messages, _t0;
18763
18833
  return _regenerator().w(function (_context0) {
18764
18834
  while (1) switch (_context0.p = _context0.n) {
18765
18835
  case 0:
18766
18836
  _context0.p = 0;
18767
18837
  payload = action.payload;
18838
+ channelId = payload.channelId, messageId = payload.messageId;
18839
+ _context0.n = 1;
18840
+ return effects.call(getChannelFromMap, channelId);
18841
+ case 1:
18842
+ channel = _context0.v;
18843
+ _context0.n = 2;
18844
+ return effects.call(channel.getMessagesById, [messageId]);
18845
+ case 2:
18846
+ messages = _context0.v;
18847
+ _context0.n = 3;
18848
+ return effects.put(updateMessageAC(messageId, messages[0]));
18849
+ case 3:
18850
+ updateMessageOnMap(channel.id, {
18851
+ messageId: messageId,
18852
+ params: messages[0]
18853
+ });
18854
+ updateMessageOnAllMessages(messageId, messages[0]);
18855
+ _context0.n = 4;
18856
+ return effects.put(setScrollToMessagesAC(messageId, false));
18857
+ case 4:
18858
+ if (!(channel.lastMessage.id === messageId)) {
18859
+ _context0.n = 5;
18860
+ break;
18861
+ }
18862
+ _context0.n = 5;
18863
+ return effects.put(updateChannelLastMessageAC(messages[0], channel));
18864
+ case 5:
18865
+ _context0.n = 7;
18866
+ break;
18867
+ case 6:
18868
+ _context0.p = 6;
18869
+ _t0 = _context0.v;
18870
+ log.error('error in message query', _t0);
18871
+ case 7:
18872
+ return _context0.a(2);
18873
+ }
18874
+ }, _marked8$1, null, [[0, 6]]);
18875
+ }
18876
+ function loadMoreMessages(action) {
18877
+ var payload, limit, direction, channelId, messageId, hasNext, SceytChatClient, messageQueryBuilder, messageQuery, result, _t1;
18878
+ return _regenerator().w(function (_context1) {
18879
+ while (1) switch (_context1.p = _context1.n) {
18880
+ case 0:
18881
+ _context1.p = 0;
18882
+ payload = action.payload;
18768
18883
  limit = payload.limit, direction = payload.direction, channelId = payload.channelId, messageId = payload.messageId, hasNext = payload.hasNext;
18769
18884
  SceytChatClient = getClient();
18770
18885
  messageQueryBuilder = new SceytChatClient.MessageListQueryBuilder(channelId);
18771
18886
  messageQueryBuilder.reverse(true);
18772
- _context0.n = 1;
18887
+ _context1.n = 1;
18773
18888
  return effects.call(messageQueryBuilder.build);
18774
18889
  case 1:
18775
- messageQuery = _context0.v;
18890
+ messageQuery = _context1.v;
18776
18891
  messageQuery.limit = limit || 5;
18777
- _context0.n = 2;
18892
+ _context1.n = 2;
18778
18893
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
18779
18894
  case 2:
18780
18895
  result = {
@@ -18782,116 +18897,116 @@ function loadMoreMessages(action) {
18782
18897
  hasNext: false
18783
18898
  };
18784
18899
  if (!(direction === MESSAGE_LOAD_DIRECTION.PREV)) {
18785
- _context0.n = 6;
18900
+ _context1.n = 6;
18786
18901
  break;
18787
18902
  }
18788
18903
  if (!getHasPrevCached()) {
18789
- _context0.n = 3;
18904
+ _context1.n = 3;
18790
18905
  break;
18791
18906
  }
18792
18907
  result.messages = getFromAllMessagesByMessageId(messageId, MESSAGE_LOAD_DIRECTION.PREV);
18793
- _context0.n = 5;
18908
+ _context1.n = 5;
18794
18909
  break;
18795
18910
  case 3:
18796
18911
  if (!hasNext) {
18797
- _context0.n = 5;
18912
+ _context1.n = 5;
18798
18913
  break;
18799
18914
  }
18800
- _context0.n = 4;
18915
+ _context1.n = 4;
18801
18916
  return effects.call(messageQuery.loadPreviousMessageId, messageId);
18802
18917
  case 4:
18803
- result = _context0.v;
18918
+ result = _context1.v;
18804
18919
  if (result.messages.length) {
18805
18920
  addAllMessages(result.messages, MESSAGE_LOAD_DIRECTION.PREV);
18806
18921
  }
18807
- _context0.n = 5;
18922
+ _context1.n = 5;
18808
18923
  return effects.put(setMessagesHasPrevAC(result.hasNext));
18809
18924
  case 5:
18810
- _context0.n = 10;
18925
+ _context1.n = 10;
18811
18926
  break;
18812
18927
  case 6:
18813
18928
  if (!getHasNextCached()) {
18814
- _context0.n = 7;
18929
+ _context1.n = 7;
18815
18930
  break;
18816
18931
  }
18817
18932
  result.messages = getFromAllMessagesByMessageId(messageId, MESSAGE_LOAD_DIRECTION.NEXT);
18818
- _context0.n = 9;
18933
+ _context1.n = 9;
18819
18934
  break;
18820
18935
  case 7:
18821
18936
  if (!hasNext) {
18822
- _context0.n = 9;
18937
+ _context1.n = 9;
18823
18938
  break;
18824
18939
  }
18825
18940
  log.info('saga load next from server ... ', messageId);
18826
18941
  messageQuery.reverse = false;
18827
- _context0.n = 8;
18942
+ _context1.n = 8;
18828
18943
  return effects.call(messageQuery.loadNextMessageId, messageId);
18829
18944
  case 8:
18830
- result = _context0.v;
18945
+ result = _context1.v;
18831
18946
  log.info('result from server next ... ', result);
18832
18947
  if (result.messages.length) {
18833
18948
  addAllMessages(result.messages, MESSAGE_LOAD_DIRECTION.NEXT);
18834
18949
  }
18835
- _context0.n = 9;
18950
+ _context1.n = 9;
18836
18951
  return effects.put(setMessagesHasNextAC(result.hasNext));
18837
18952
  case 9:
18838
- _context0.n = 10;
18953
+ _context1.n = 10;
18839
18954
  return effects.put(setMessagesHasPrevAC(true));
18840
18955
  case 10:
18841
18956
  if (!(result.messages && result.messages.length && result.messages.length > 0)) {
18842
- _context0.n = 12;
18957
+ _context1.n = 12;
18843
18958
  break;
18844
18959
  }
18845
- _context0.n = 11;
18960
+ _context1.n = 11;
18846
18961
  return effects.put(addMessagesAC(JSON.parse(JSON.stringify(result.messages)), direction));
18847
18962
  case 11:
18848
- _context0.n = 13;
18963
+ _context1.n = 13;
18849
18964
  break;
18850
18965
  case 12:
18851
- _context0.n = 13;
18966
+ _context1.n = 13;
18852
18967
  return effects.put(addMessagesAC([], direction));
18853
18968
  case 13:
18854
- _context0.n = 14;
18969
+ _context1.n = 14;
18855
18970
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
18856
18971
  case 14:
18857
- _context0.n = 16;
18972
+ _context1.n = 16;
18858
18973
  break;
18859
18974
  case 15:
18860
- _context0.p = 15;
18861
- _t0 = _context0.v;
18862
- log.error('error in load more messages', _t0);
18975
+ _context1.p = 15;
18976
+ _t1 = _context1.v;
18977
+ log.error('error in load more messages', _t1);
18863
18978
  case 16:
18864
- return _context0.a(2);
18979
+ return _context1.a(2);
18865
18980
  }
18866
- }, _marked8$1, null, [[0, 15]]);
18981
+ }, _marked9$1, null, [[0, 15]]);
18867
18982
  }
18868
18983
  function addReaction(action) {
18869
- var payload, channelId, messageId, key, score, reason, enforceUnique, user, channel, _yield$call, _message2, reaction, channelUpdateParam, _t1;
18870
- return _regenerator().w(function (_context1) {
18871
- while (1) switch (_context1.p = _context1.n) {
18984
+ var payload, channelId, messageId, key, score, reason, enforceUnique, user, channel, _yield$call, _message2, reaction, channelUpdateParam, _t10;
18985
+ return _regenerator().w(function (_context10) {
18986
+ while (1) switch (_context10.p = _context10.n) {
18872
18987
  case 0:
18873
- _context1.p = 0;
18988
+ _context10.p = 0;
18874
18989
  payload = action.payload;
18875
18990
  channelId = payload.channelId, messageId = payload.messageId, key = payload.key, score = payload.score, reason = payload.reason, enforceUnique = payload.enforceUnique;
18876
18991
  user = getClient().user;
18877
- _context1.n = 1;
18992
+ _context10.n = 1;
18878
18993
  return effects.call(getChannelFromMap, channelId);
18879
18994
  case 1:
18880
- channel = _context1.v;
18995
+ channel = _context10.v;
18881
18996
  if (!channel) {
18882
18997
  channel = getChannelFromAllChannels(channelId);
18883
18998
  if (channel) {
18884
18999
  setChannelInMap(channel);
18885
19000
  }
18886
19001
  }
18887
- _context1.n = 2;
19002
+ _context10.n = 2;
18888
19003
  return effects.call(channel.addReaction, messageId, key, score, reason, enforceUnique);
18889
19004
  case 2:
18890
- _yield$call = _context1.v;
19005
+ _yield$call = _context10.v;
18891
19006
  _message2 = _yield$call.message;
18892
19007
  reaction = _yield$call.reaction;
18893
19008
  if (!(user.id === _message2.user.id)) {
18894
- _context1.n = 4;
19009
+ _context10.n = 4;
18895
19010
  break;
18896
19011
  }
18897
19012
  channelUpdateParam = {
@@ -18899,100 +19014,100 @@ function addReaction(action) {
18899
19014
  lastReactedMessage: _message2,
18900
19015
  newReactions: [reaction]
18901
19016
  };
18902
- _context1.n = 3;
19017
+ _context10.n = 3;
18903
19018
  return effects.put(updateChannelDataAC(channel.id, channelUpdateParam));
18904
19019
  case 3:
18905
19020
  updateChannelOnAllChannels(channel.id, channelUpdateParam);
18906
19021
  case 4:
18907
- _context1.n = 5;
19022
+ _context10.n = 5;
18908
19023
  return effects.put(addChannelAC(JSON.parse(JSON.stringify(channel))));
18909
19024
  case 5:
18910
- _context1.n = 6;
19025
+ _context10.n = 6;
18911
19026
  return effects.put(addReactionToListAC(reaction));
18912
19027
  case 6:
18913
- _context1.n = 7;
19028
+ _context10.n = 7;
18914
19029
  return effects.put(addReactionToMessageAC(_message2, reaction, true));
18915
19030
  case 7:
18916
19031
  addReactionToMessageOnMap(channelId, _message2, reaction, true);
18917
19032
  addReactionOnAllMessages(_message2, reaction, true);
18918
- _context1.n = 9;
19033
+ _context10.n = 9;
18919
19034
  break;
18920
19035
  case 8:
18921
- _context1.p = 8;
18922
- _t1 = _context1.v;
18923
- log.error('ERROR in add reaction', _t1.message);
19036
+ _context10.p = 8;
19037
+ _t10 = _context10.v;
19038
+ log.error('ERROR in add reaction', _t10.message);
18924
19039
  case 9:
18925
- return _context1.a(2);
19040
+ return _context10.a(2);
18926
19041
  }
18927
- }, _marked9$1, null, [[0, 8]]);
19042
+ }, _marked0$1, null, [[0, 8]]);
18928
19043
  }
18929
19044
  function deleteReaction(action) {
18930
- var payload, channelId, messageId, key, isLastReaction, channel, _yield$call2, _message3, reaction, channelUpdateParam, _t10;
18931
- return _regenerator().w(function (_context10) {
18932
- while (1) switch (_context10.p = _context10.n) {
19045
+ var payload, channelId, messageId, key, isLastReaction, channel, _yield$call2, _message3, reaction, channelUpdateParam, _t11;
19046
+ return _regenerator().w(function (_context11) {
19047
+ while (1) switch (_context11.p = _context11.n) {
18933
19048
  case 0:
18934
- _context10.p = 0;
19049
+ _context11.p = 0;
18935
19050
  payload = action.payload;
18936
19051
  channelId = payload.channelId, messageId = payload.messageId, key = payload.key, isLastReaction = payload.isLastReaction;
18937
- _context10.n = 1;
19052
+ _context11.n = 1;
18938
19053
  return effects.call(getChannelFromMap, channelId);
18939
19054
  case 1:
18940
- channel = _context10.v;
19055
+ channel = _context11.v;
18941
19056
  if (!channel) {
18942
19057
  channel = getChannelFromAllChannels(channelId);
18943
19058
  if (channel) {
18944
19059
  setChannelInMap(channel);
18945
19060
  }
18946
19061
  }
18947
- _context10.n = 2;
19062
+ _context11.n = 2;
18948
19063
  return effects.call(channel.deleteReaction, messageId, key);
18949
19064
  case 2:
18950
- _yield$call2 = _context10.v;
19065
+ _yield$call2 = _context11.v;
18951
19066
  _message3 = _yield$call2.message;
18952
19067
  reaction = _yield$call2.reaction;
18953
19068
  if (!isLastReaction) {
18954
- _context10.n = 4;
19069
+ _context11.n = 4;
18955
19070
  break;
18956
19071
  }
18957
19072
  channelUpdateParam = {
18958
19073
  userMessageReactions: [],
18959
19074
  lastReactedMessage: null
18960
19075
  };
18961
- _context10.n = 3;
19076
+ _context11.n = 3;
18962
19077
  return effects.put(updateChannelDataAC(channel.id, channelUpdateParam));
18963
19078
  case 3:
18964
19079
  updateChannelOnAllChannels(channel.id, channelUpdateParam);
18965
19080
  case 4:
18966
19081
  log.info('message received. ... ', _message3);
18967
- _context10.n = 5;
19082
+ _context11.n = 5;
18968
19083
  return effects.put(deleteReactionFromListAC(reaction));
18969
19084
  case 5:
18970
- _context10.n = 6;
19085
+ _context11.n = 6;
18971
19086
  return effects.put(deleteReactionFromMessageAC(_message3, reaction, true));
18972
19087
  case 6:
18973
19088
  removeReactionToMessageOnMap(channelId, _message3, reaction, true);
18974
19089
  removeReactionOnAllMessages(_message3, reaction, true);
18975
- _context10.n = 8;
19090
+ _context11.n = 8;
18976
19091
  break;
18977
19092
  case 7:
18978
- _context10.p = 7;
18979
- _t10 = _context10.v;
18980
- log.error('ERROR in delete reaction', _t10.message);
19093
+ _context11.p = 7;
19094
+ _t11 = _context11.v;
19095
+ log.error('ERROR in delete reaction', _t11.message);
18981
19096
  case 8:
18982
- return _context10.a(2);
19097
+ return _context11.a(2);
18983
19098
  }
18984
- }, _marked0$1, null, [[0, 7]]);
19099
+ }, _marked1$1, null, [[0, 7]]);
18985
19100
  }
18986
19101
  function getReactions(action) {
18987
- var payload, messageId, key, limit, SceytChatClient, reactionQueryBuilder, reactionQuery, result, _t11;
18988
- return _regenerator().w(function (_context11) {
18989
- while (1) switch (_context11.p = _context11.n) {
19102
+ var payload, messageId, key, limit, SceytChatClient, reactionQueryBuilder, reactionQuery, result, _t12;
19103
+ return _regenerator().w(function (_context12) {
19104
+ while (1) switch (_context12.p = _context12.n) {
18990
19105
  case 0:
18991
- _context11.p = 0;
19106
+ _context12.p = 0;
18992
19107
  payload = action.payload;
18993
19108
  messageId = payload.messageId, key = payload.key, limit = payload.limit;
18994
19109
  SceytChatClient = getClient();
18995
- _context11.n = 1;
19110
+ _context12.n = 1;
18996
19111
  return effects.put(setReactionsLoadingStateAC(LOADING_STATE.LOADING));
18997
19112
  case 1:
18998
19113
  reactionQueryBuilder = new SceytChatClient.ReactionListQueryBuilder(messageId);
@@ -19000,74 +19115,74 @@ function getReactions(action) {
19000
19115
  if (key) {
19001
19116
  reactionQueryBuilder.setKey(key);
19002
19117
  }
19003
- _context11.n = 2;
19118
+ _context12.n = 2;
19004
19119
  return effects.call(reactionQueryBuilder.build);
19005
19120
  case 2:
19006
- reactionQuery = _context11.v;
19007
- _context11.n = 3;
19121
+ reactionQuery = _context12.v;
19122
+ _context12.n = 3;
19008
19123
  return effects.call(reactionQuery.loadNext);
19009
19124
  case 3:
19010
- result = _context11.v;
19125
+ result = _context12.v;
19011
19126
  query.ReactionsQuery = reactionQuery;
19012
- _context11.n = 4;
19127
+ _context12.n = 4;
19013
19128
  return effects.put(setReactionsListAC(result.reactions, result.hasNext));
19014
19129
  case 4:
19015
- _context11.n = 5;
19130
+ _context12.n = 5;
19016
19131
  return effects.put(setReactionsLoadingStateAC(LOADING_STATE.LOADED));
19017
19132
  case 5:
19018
- _context11.n = 7;
19133
+ _context12.n = 7;
19019
19134
  break;
19020
19135
  case 6:
19021
- _context11.p = 6;
19022
- _t11 = _context11.v;
19023
- log.error('ERROR in get reactions', _t11.message);
19136
+ _context12.p = 6;
19137
+ _t12 = _context12.v;
19138
+ log.error('ERROR in get reactions', _t12.message);
19024
19139
  case 7:
19025
- return _context11.a(2);
19140
+ return _context12.a(2);
19026
19141
  }
19027
- }, _marked1$1, null, [[0, 6]]);
19142
+ }, _marked10$1, null, [[0, 6]]);
19028
19143
  }
19029
19144
  function loadMoreReactions(action) {
19030
- var payload, limit, ReactionQuery, result, _t12;
19031
- return _regenerator().w(function (_context12) {
19032
- while (1) switch (_context12.p = _context12.n) {
19145
+ var payload, limit, ReactionQuery, result, _t13;
19146
+ return _regenerator().w(function (_context13) {
19147
+ while (1) switch (_context13.p = _context13.n) {
19033
19148
  case 0:
19034
- _context12.p = 0;
19149
+ _context13.p = 0;
19035
19150
  payload = action.payload;
19036
19151
  limit = payload.limit;
19037
- _context12.n = 1;
19152
+ _context13.n = 1;
19038
19153
  return effects.put(setReactionsLoadingStateAC(LOADING_STATE.LOADING));
19039
19154
  case 1:
19040
19155
  ReactionQuery = query.ReactionsQuery;
19041
19156
  if (limit) {
19042
19157
  ReactionQuery.limit = limit;
19043
19158
  }
19044
- _context12.n = 2;
19159
+ _context13.n = 2;
19045
19160
  return effects.call(ReactionQuery.loadNext);
19046
19161
  case 2:
19047
- result = _context12.v;
19048
- _context12.n = 3;
19162
+ result = _context13.v;
19163
+ _context13.n = 3;
19049
19164
  return effects.put(addReactionsToListAC(result.reactions, result.hasNext));
19050
19165
  case 3:
19051
- _context12.n = 4;
19166
+ _context13.n = 4;
19052
19167
  return effects.put(setReactionsLoadingStateAC(LOADING_STATE.LOADED));
19053
19168
  case 4:
19054
- _context12.n = 6;
19169
+ _context13.n = 6;
19055
19170
  break;
19056
19171
  case 5:
19057
- _context12.p = 5;
19058
- _t12 = _context12.v;
19059
- log.error('ERROR in load more reactions', _t12.message);
19172
+ _context13.p = 5;
19173
+ _t13 = _context13.v;
19174
+ log.error('ERROR in load more reactions', _t13.message);
19060
19175
  case 6:
19061
- return _context12.a(2);
19176
+ return _context13.a(2);
19062
19177
  }
19063
- }, _marked10$1, null, [[0, 5]]);
19178
+ }, _marked11$1, null, [[0, 5]]);
19064
19179
  }
19065
19180
  function getMessageAttachments(action) {
19066
- var _action$payload2, channelId, attachmentType, limit, direction, attachmentId, forPopup, SceytChatClient, typeList, AttachmentByTypeQueryBuilder, AttachmentByTypeQuery, result, _t13;
19067
- return _regenerator().w(function (_context13) {
19068
- while (1) switch (_context13.p = _context13.n) {
19181
+ var _action$payload2, channelId, attachmentType, limit, direction, attachmentId, forPopup, SceytChatClient, typeList, AttachmentByTypeQueryBuilder, AttachmentByTypeQuery, result, _t14;
19182
+ return _regenerator().w(function (_context14) {
19183
+ while (1) switch (_context14.p = _context14.n) {
19069
19184
  case 0:
19070
- _context13.p = 0;
19185
+ _context14.p = 0;
19071
19186
  _action$payload2 = action.payload, channelId = _action$payload2.channelId, attachmentType = _action$payload2.attachmentType, limit = _action$payload2.limit, direction = _action$payload2.direction, attachmentId = _action$payload2.attachmentId, forPopup = _action$payload2.forPopup;
19072
19187
  SceytChatClient = getClient();
19073
19188
  typeList = [attachmentTypes.video, attachmentTypes.image, attachmentTypes.file, attachmentTypes.link, attachmentTypes.voice];
@@ -19082,240 +19197,243 @@ function getMessageAttachments(action) {
19082
19197
  }
19083
19198
  AttachmentByTypeQueryBuilder = new SceytChatClient.AttachmentListQueryBuilder(channelId, typeList);
19084
19199
  AttachmentByTypeQueryBuilder.limit(limit || 34);
19085
- _context13.n = 1;
19200
+ _context14.n = 1;
19086
19201
  return effects.call(AttachmentByTypeQueryBuilder.build);
19087
19202
  case 1:
19088
- AttachmentByTypeQuery = _context13.v;
19203
+ AttachmentByTypeQuery = _context14.v;
19089
19204
  if (forPopup) {
19090
19205
  AttachmentByTypeQuery.reverse = true;
19091
19206
  }
19092
19207
  if (!(direction === queryDirection.NEXT)) {
19093
- _context13.n = 3;
19208
+ _context14.n = 3;
19094
19209
  break;
19095
19210
  }
19096
- _context13.n = 2;
19211
+ _context14.n = 2;
19097
19212
  return effects.call(AttachmentByTypeQuery.loadPrevious);
19098
19213
  case 2:
19099
- result = _context13.v;
19100
- _context13.n = 7;
19214
+ result = _context14.v;
19215
+ _context14.n = 7;
19101
19216
  break;
19102
19217
  case 3:
19103
19218
  if (!(direction === queryDirection.NEAR)) {
19104
- _context13.n = 5;
19219
+ _context14.n = 5;
19105
19220
  break;
19106
19221
  }
19107
- _context13.n = 4;
19222
+ _context14.n = 4;
19108
19223
  return effects.call(AttachmentByTypeQuery.loadNearMessageId, attachmentId);
19109
19224
  case 4:
19110
- result = _context13.v;
19111
- _context13.n = 7;
19225
+ result = _context14.v;
19226
+ _context14.n = 7;
19112
19227
  break;
19113
19228
  case 5:
19114
- _context13.n = 6;
19229
+ _context14.n = 6;
19115
19230
  return effects.call(AttachmentByTypeQuery.loadPrevious);
19116
19231
  case 6:
19117
- result = _context13.v;
19232
+ result = _context14.v;
19118
19233
  case 7:
19119
19234
  if (!forPopup) {
19120
- _context13.n = 10;
19235
+ _context14.n = 10;
19121
19236
  break;
19122
19237
  }
19123
19238
  query.AttachmentByTypeQueryForPopup = AttachmentByTypeQuery;
19124
- _context13.n = 8;
19239
+ _context14.n = 8;
19125
19240
  return effects.put(setAttachmentsForPopupAC(JSON.parse(JSON.stringify(result.attachments))));
19126
19241
  case 8:
19127
- _context13.n = 9;
19242
+ _context14.n = 9;
19128
19243
  return effects.put(setAttachmentsCompleteForPopupAC(result.hasNext));
19129
19244
  case 9:
19130
- _context13.n = 12;
19245
+ _context14.n = 12;
19131
19246
  break;
19132
19247
  case 10:
19133
19248
  query.AttachmentByTypeQuery = AttachmentByTypeQuery;
19134
- _context13.n = 11;
19249
+ _context14.n = 11;
19135
19250
  return effects.put(setAttachmentsCompleteAC(result.hasNext));
19136
19251
  case 11:
19137
- _context13.n = 12;
19252
+ _context14.n = 12;
19138
19253
  return effects.put(setAttachmentsAC(JSON.parse(JSON.stringify(result.attachments))));
19139
19254
  case 12:
19140
- _context13.n = 14;
19255
+ _context14.n = 14;
19141
19256
  break;
19142
19257
  case 13:
19143
- _context13.p = 13;
19144
- _t13 = _context13.v;
19145
- log.error('error in message attachment query', _t13);
19258
+ _context14.p = 13;
19259
+ _t14 = _context14.v;
19260
+ log.error('error in message attachment query', _t14);
19146
19261
  case 14:
19147
- return _context13.a(2);
19262
+ return _context14.a(2);
19148
19263
  }
19149
- }, _marked11$1, null, [[0, 13]]);
19264
+ }, _marked12$1, null, [[0, 13]]);
19150
19265
  }
19151
19266
  function loadMoreMessageAttachments(action) {
19152
- var _action$payload3, limit, direction, forPopup, AttachmentQuery, _yield$call3, attachments, hasNext, _t14;
19153
- return _regenerator().w(function (_context14) {
19154
- while (1) switch (_context14.p = _context14.n) {
19267
+ var _action$payload3, limit, direction, forPopup, AttachmentQuery, _yield$call3, attachments, hasNext, _t15;
19268
+ return _regenerator().w(function (_context15) {
19269
+ while (1) switch (_context15.p = _context15.n) {
19155
19270
  case 0:
19156
- _context14.p = 0;
19271
+ _context15.p = 0;
19157
19272
  _action$payload3 = action.payload, limit = _action$payload3.limit, direction = _action$payload3.direction, forPopup = _action$payload3.forPopup;
19158
19273
  if (forPopup) {
19159
19274
  AttachmentQuery = query.AttachmentByTypeQueryForPopup;
19160
19275
  } else {
19161
19276
  AttachmentQuery = query.AttachmentByTypeQuery;
19162
19277
  }
19163
- _context14.n = 1;
19278
+ _context15.n = 1;
19164
19279
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADING));
19165
19280
  case 1:
19166
19281
  AttachmentQuery.limit = limit;
19167
- _context14.n = 2;
19282
+ _context15.n = 2;
19168
19283
  return effects.call(AttachmentQuery.loadPrevious);
19169
19284
  case 2:
19170
- _yield$call3 = _context14.v;
19285
+ _yield$call3 = _context15.v;
19171
19286
  attachments = _yield$call3.attachments;
19172
19287
  hasNext = _yield$call3.hasNext;
19173
19288
  if (!forPopup) {
19174
- _context14.n = 4;
19289
+ _context15.n = 4;
19175
19290
  break;
19176
19291
  }
19177
- _context14.n = 3;
19292
+ _context15.n = 3;
19178
19293
  return effects.put(addAttachmentsForPopupAC(attachments, direction));
19179
19294
  case 3:
19180
- _context14.n = 7;
19295
+ _context15.n = 7;
19181
19296
  break;
19182
19297
  case 4:
19183
- _context14.n = 5;
19298
+ _context15.n = 5;
19184
19299
  return effects.put(setAttachmentsCompleteAC(hasNext));
19185
19300
  case 5:
19186
- _context14.n = 6;
19301
+ _context15.n = 6;
19187
19302
  return effects.put(setMessagesLoadingStateAC(LOADING_STATE.LOADED));
19188
19303
  case 6:
19189
- _context14.n = 7;
19304
+ _context15.n = 7;
19190
19305
  return effects.put(addAttachmentsAC(attachments));
19191
19306
  case 7:
19192
- _context14.n = 9;
19307
+ _context15.n = 9;
19193
19308
  break;
19194
19309
  case 8:
19195
- _context14.p = 8;
19196
- _t14 = _context14.v;
19197
- log.error('error in message attachment query', _t14);
19310
+ _context15.p = 8;
19311
+ _t15 = _context15.v;
19312
+ log.error('error in message attachment query', _t15);
19198
19313
  case 9:
19199
- return _context14.a(2);
19314
+ return _context15.a(2);
19200
19315
  }
19201
- }, _marked12$1, null, [[0, 8]]);
19316
+ }, _marked13$1, null, [[0, 8]]);
19202
19317
  }
19203
19318
  function pauseAttachmentUploading(action) {
19204
- var attachmentId, isPaused, _t15;
19205
- return _regenerator().w(function (_context15) {
19206
- while (1) switch (_context15.p = _context15.n) {
19319
+ var attachmentId, isPaused, _t16;
19320
+ return _regenerator().w(function (_context16) {
19321
+ while (1) switch (_context16.p = _context16.n) {
19207
19322
  case 0:
19208
- _context15.p = 0;
19323
+ _context16.p = 0;
19209
19324
  attachmentId = action.payload.attachmentId;
19210
19325
  if (!getCustomUploader()) {
19211
- _context15.n = 1;
19326
+ _context16.n = 1;
19212
19327
  break;
19213
19328
  }
19214
19329
  isPaused = pauseUpload(attachmentId);
19215
19330
  if (!isPaused) {
19216
- _context15.n = 1;
19331
+ _context16.n = 1;
19217
19332
  break;
19218
19333
  }
19219
- _context15.n = 1;
19334
+ _context16.n = 1;
19220
19335
  return effects.put(updateAttachmentUploadingStateAC(UPLOAD_STATE.PAUSED, attachmentId));
19221
19336
  case 1:
19222
- _context15.n = 3;
19337
+ _context16.n = 3;
19223
19338
  break;
19224
19339
  case 2:
19225
- _context15.p = 2;
19226
- _t15 = _context15.v;
19227
- log.error('error in pause attachment uploading', _t15);
19340
+ _context16.p = 2;
19341
+ _t16 = _context16.v;
19342
+ log.error('error in pause attachment uploading', _t16);
19228
19343
  case 3:
19229
- return _context15.a(2);
19344
+ return _context16.a(2);
19230
19345
  }
19231
- }, _marked13$1, null, [[0, 2]]);
19346
+ }, _marked14$1, null, [[0, 2]]);
19232
19347
  }
19233
19348
  function resumeAttachmentUploading(action) {
19234
- var attachmentId, isResumed, _t16;
19235
- return _regenerator().w(function (_context16) {
19236
- while (1) switch (_context16.p = _context16.n) {
19349
+ var attachmentId, isResumed, _t17;
19350
+ return _regenerator().w(function (_context17) {
19351
+ while (1) switch (_context17.p = _context17.n) {
19237
19352
  case 0:
19238
- _context16.p = 0;
19353
+ _context17.p = 0;
19239
19354
  attachmentId = action.payload.attachmentId;
19240
19355
  log.info('resume for attachment ... ', attachmentId);
19241
19356
  if (!getCustomUploader()) {
19242
- _context16.n = 1;
19357
+ _context17.n = 1;
19243
19358
  break;
19244
19359
  }
19245
19360
  isResumed = resumeUpload(attachmentId);
19246
19361
  if (!isResumed) {
19247
- _context16.n = 1;
19362
+ _context17.n = 1;
19248
19363
  break;
19249
19364
  }
19250
- _context16.n = 1;
19365
+ _context17.n = 1;
19251
19366
  return effects.put(updateAttachmentUploadingStateAC(UPLOAD_STATE.UPLOADING, attachmentId));
19252
19367
  case 1:
19253
- _context16.n = 3;
19368
+ _context17.n = 3;
19254
19369
  break;
19255
19370
  case 2:
19256
- _context16.p = 2;
19257
- _t16 = _context16.v;
19258
- log.error('error in resume attachment uploading', _t16);
19371
+ _context17.p = 2;
19372
+ _t17 = _context17.v;
19373
+ log.error('error in resume attachment uploading', _t17);
19259
19374
  case 3:
19260
- return _context16.a(2);
19375
+ return _context17.a(2);
19261
19376
  }
19262
- }, _marked14$1, null, [[0, 2]]);
19377
+ }, _marked15$1, null, [[0, 2]]);
19263
19378
  }
19264
19379
  function MessageSaga() {
19265
- return _regenerator().w(function (_context17) {
19266
- while (1) switch (_context17.n) {
19380
+ return _regenerator().w(function (_context18) {
19381
+ while (1) switch (_context18.n) {
19267
19382
  case 0:
19268
- _context17.n = 1;
19383
+ _context18.n = 1;
19269
19384
  return effects.takeEvery(SEND_MESSAGE, sendMessage);
19270
19385
  case 1:
19271
- _context17.n = 2;
19386
+ _context18.n = 2;
19272
19387
  return effects.takeEvery(SEND_TEXT_MESSAGE, sendTextMessage);
19273
19388
  case 2:
19274
- _context17.n = 3;
19389
+ _context18.n = 3;
19275
19390
  return effects.takeEvery(FORWARD_MESSAGE, forwardMessage);
19276
19391
  case 3:
19277
- _context17.n = 4;
19392
+ _context18.n = 4;
19278
19393
  return effects.takeEvery(RESEND_MESSAGE, resendMessage);
19279
19394
  case 4:
19280
- _context17.n = 5;
19395
+ _context18.n = 5;
19281
19396
  return effects.takeLatest(EDIT_MESSAGE, editMessage);
19282
19397
  case 5:
19283
- _context17.n = 6;
19398
+ _context18.n = 6;
19284
19399
  return effects.takeEvery(DELETE_MESSAGE, deleteMessage);
19285
19400
  case 6:
19286
- _context17.n = 7;
19401
+ _context18.n = 7;
19287
19402
  return effects.takeLatest(GET_MESSAGES, getMessagesQuery);
19288
19403
  case 7:
19289
- _context17.n = 8;
19290
- return effects.takeLatest(GET_MESSAGES_ATTACHMENTS, getMessageAttachments);
19404
+ _context18.n = 8;
19405
+ return effects.takeLatest(GET_MESSAGE, getMessageQuery);
19291
19406
  case 8:
19292
- _context17.n = 9;
19293
- return effects.takeLatest(LOAD_MORE_MESSAGES_ATTACHMENTS, loadMoreMessageAttachments);
19407
+ _context18.n = 9;
19408
+ return effects.takeLatest(GET_MESSAGES_ATTACHMENTS, getMessageAttachments);
19294
19409
  case 9:
19295
- _context17.n = 10;
19296
- return effects.takeLatest(ADD_REACTION, addReaction);
19410
+ _context18.n = 10;
19411
+ return effects.takeLatest(LOAD_MORE_MESSAGES_ATTACHMENTS, loadMoreMessageAttachments);
19297
19412
  case 10:
19298
- _context17.n = 11;
19299
- return effects.takeLatest(DELETE_REACTION, deleteReaction);
19413
+ _context18.n = 11;
19414
+ return effects.takeLatest(ADD_REACTION, addReaction);
19300
19415
  case 11:
19301
- _context17.n = 12;
19302
- return effects.takeEvery(LOAD_MORE_MESSAGES, loadMoreMessages);
19416
+ _context18.n = 12;
19417
+ return effects.takeLatest(DELETE_REACTION, deleteReaction);
19303
19418
  case 12:
19304
- _context17.n = 13;
19305
- return effects.takeEvery(GET_REACTIONS, getReactions);
19419
+ _context18.n = 13;
19420
+ return effects.takeEvery(LOAD_MORE_MESSAGES, loadMoreMessages);
19306
19421
  case 13:
19307
- _context17.n = 14;
19308
- return effects.takeEvery(LOAD_MORE_REACTIONS, loadMoreReactions);
19422
+ _context18.n = 14;
19423
+ return effects.takeEvery(GET_REACTIONS, getReactions);
19309
19424
  case 14:
19310
- _context17.n = 15;
19311
- return effects.takeEvery(PAUSE_ATTACHMENT_UPLOADING, pauseAttachmentUploading);
19425
+ _context18.n = 15;
19426
+ return effects.takeEvery(LOAD_MORE_REACTIONS, loadMoreReactions);
19312
19427
  case 15:
19313
- _context17.n = 16;
19314
- return effects.takeEvery(RESUME_ATTACHMENT_UPLOADING, resumeAttachmentUploading);
19428
+ _context18.n = 16;
19429
+ return effects.takeEvery(PAUSE_ATTACHMENT_UPLOADING, pauseAttachmentUploading);
19315
19430
  case 16:
19316
- return _context17.a(2);
19431
+ _context18.n = 17;
19432
+ return effects.takeEvery(RESUME_ATTACHMENT_UPLOADING, resumeAttachmentUploading);
19433
+ case 17:
19434
+ return _context18.a(2);
19317
19435
  }
19318
- }, _marked15$1);
19436
+ }, _marked16$1);
19319
19437
  }
19320
19438
 
19321
19439
  var _marked$4 = /*#__PURE__*/_regenerator().m(getMembers),
@@ -20083,6 +20201,12 @@ var store = configureStore({
20083
20201
  });
20084
20202
  sagaMiddleware.run(rootSaga);
20085
20203
 
20204
+ var SceytReduxContext = /*#__PURE__*/React__default.createContext(null);
20205
+
20206
+ var useSelector = reactRedux.createSelectorHook(SceytReduxContext);
20207
+ var useDispatch = reactRedux.createDispatchHook(SceytReduxContext);
20208
+ var useStore = reactRedux.createStoreHook(SceytReduxContext);
20209
+
20086
20210
  var channelsSelector = function channelsSelector(store) {
20087
20211
  return store.ChannelReducer.channels;
20088
20212
  };
@@ -20257,7 +20381,7 @@ function useOnScreen(ref, rootElement) {
20257
20381
  }
20258
20382
 
20259
20383
  var useColors = function useColors() {
20260
- var themeReducer = reactRedux.useSelector(function (state) {
20384
+ var themeReducer = useSelector(function (state) {
20261
20385
  return state.ThemeReducer;
20262
20386
  });
20263
20387
  var currentThemeMode = (themeReducer === null || themeReducer === void 0 ? void 0 : themeReducer.theme) || defaultThemeMode;
@@ -20314,11 +20438,11 @@ var SceytChat = function SceytChat(_ref) {
20314
20438
  var _useColor = useColors(),
20315
20439
  backgroundColor = _useColor[THEME_COLORS.BACKGROUND],
20316
20440
  highlightedBackground = _useColor[THEME_COLORS.HIGHLIGHTED_BACKGROUND];
20317
- var dispatch = reactRedux.useDispatch();
20318
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
20319
- var draggingSelector = reactRedux.useSelector(isDraggingSelector, reactRedux.shallowEqual);
20320
- var channelsListWidth = reactRedux.useSelector(channelListWidthSelector, reactRedux.shallowEqual);
20321
- var getRolesFail = reactRedux.useSelector(getRolesFailSelector, reactRedux.shallowEqual);
20441
+ var dispatch = useDispatch();
20442
+ var contactsMap = useSelector(contactsMapSelector);
20443
+ var draggingSelector = useSelector(isDraggingSelector, reactRedux.shallowEqual);
20444
+ var channelsListWidth = useSelector(channelListWidthSelector, reactRedux.shallowEqual);
20445
+ var getRolesFail = useSelector(getRolesFailSelector, reactRedux.shallowEqual);
20322
20446
  var _useState = React.useState(null),
20323
20447
  SceytChatClient = _useState[0],
20324
20448
  setSceytChatClient = _useState[1];
@@ -20566,7 +20690,8 @@ var SceytChatContainer = function SceytChatContainer(_ref) {
20566
20690
  log.setLevel(logLevel);
20567
20691
  }, []);
20568
20692
  return /*#__PURE__*/React__default.createElement(reactRedux.Provider, {
20569
- store: store
20693
+ store: store,
20694
+ context: SceytReduxContext
20570
20695
  }, /*#__PURE__*/React__default.createElement(SceytChat, {
20571
20696
  client: client,
20572
20697
  theme: theme,
@@ -20596,8 +20721,8 @@ var themeSelector = function themeSelector(store) {
20596
20721
 
20597
20722
  var updateInterval;
20598
20723
  function useUpdatePresence(channel, isVisible) {
20599
- var dispatch = reactRedux.useDispatch();
20600
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector);
20724
+ var dispatch = useDispatch();
20725
+ var connectionStatus = useSelector(connectionStatusSelector);
20601
20726
  var ChatClient = getClient();
20602
20727
  var user = ChatClient.user;
20603
20728
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
@@ -20895,7 +21020,7 @@ var Avatar = function Avatar(_ref) {
20895
21020
  border = _ref.border,
20896
21021
  borderRadius = _ref.borderRadius,
20897
21022
  handleAvatarClick = _ref.handleAvatarClick;
20898
- var theme = reactRedux.useSelector(themeSelector);
21023
+ var theme = useSelector(themeSelector);
20899
21024
  var _useColor = useColors(),
20900
21025
  iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE];
20901
21026
  var isDeletedUserAvatar = !image && !name;
@@ -21023,7 +21148,6 @@ var ChannelMessageText = function ChannelMessageText(_ref2) {
21023
21148
  }), channel.lastReactedMessage && '"')))));
21024
21149
  };
21025
21150
  var Channel = function Channel(_ref3) {
21026
- var _channel$metadata;
21027
21151
  var channel = _ref3.channel,
21028
21152
  theme = _ref3.theme,
21029
21153
  _ref3$showAvatar = _ref3.showAvatar,
@@ -21047,7 +21171,9 @@ var Channel = function Channel(_ref3) {
21047
21171
  channelLastMessageTimeFontSize = _ref3.channelLastMessageTimeFontSize,
21048
21172
  channelLastMessageHeight = _ref3.channelLastMessageHeight,
21049
21173
  channelAvatarSize = _ref3.channelAvatarSize,
21050
- channelAvatarTextSize = _ref3.channelAvatarTextSize;
21174
+ channelAvatarTextSize = _ref3.channelAvatarTextSize,
21175
+ setSelectedChannel = _ref3.setSelectedChannel,
21176
+ getCustomLatestMessage = _ref3.getCustomLatestMessage;
21051
21177
  var _useColor = useColors(),
21052
21178
  accentColor = _useColor[THEME_COLORS.ACCENT],
21053
21179
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
@@ -21061,18 +21187,18 @@ var Channel = function Channel(_ref3) {
21061
21187
  iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE],
21062
21188
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
21063
21189
  background = _useColor[THEME_COLORS.BACKGROUND];
21064
- var dispatch = reactRedux.useDispatch();
21190
+ var dispatch = useDispatch();
21065
21191
  var ChatClient = getClient();
21066
21192
  var getFromContacts = getShowOnlyContactUsers();
21067
21193
  var user = ChatClient.user;
21068
- var activeChannel = reactRedux.useSelector(activeChannelSelector) || {};
21069
- var channelDraftIsRemoved = reactRedux.useSelector(channelMessageDraftIsRemovedSelector);
21194
+ var activeChannel = useSelector(activeChannelSelector) || {};
21195
+ var channelDraftIsRemoved = useSelector(channelMessageDraftIsRemovedSelector);
21070
21196
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
21071
- var isSelfChannel = isDirectChannel && (((_channel$metadata = channel.metadata) === null || _channel$metadata === void 0 ? void 0 : _channel$metadata.s) || channel.members.length === 1 && channel.members[0].id === user.id);
21197
+ var isSelfChannel = isDirectChannel && channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === user.id;
21072
21198
  var directChannelUser = isDirectChannel && channel.members.find(function (member) {
21073
21199
  return member.id !== user.id;
21074
21200
  });
21075
- var typingOrRecordingIndicator = reactRedux.useSelector(typingOrRecordingIndicatorArraySelector(channel.id));
21201
+ var typingOrRecordingIndicator = useSelector(typingOrRecordingIndicatorArraySelector(channel.id));
21076
21202
  var _useState = React.useState(),
21077
21203
  draftMessageText = _useState[0],
21078
21204
  setDraftMessageText = _useState[1];
@@ -21085,13 +21211,6 @@ var Channel = function Channel(_ref3) {
21085
21211
  statusWidth = _useState3[0],
21086
21212
  setStatusWidth = _useState3[1];
21087
21213
  var avatarName = channel.subject || (isDirectChannel && directChannelUser ? directChannelUser.firstName || directChannelUser.id : isSelfChannel ? 'Me' : '');
21088
- var handleChangeActiveChannel = function handleChangeActiveChannel(chan) {
21089
- if (activeChannel.id !== chan.id) {
21090
- dispatch(sendTypingAC(false));
21091
- dispatch(clearMessagesAC());
21092
- dispatch(switchChannelActionAC(chan));
21093
- }
21094
- };
21095
21214
  var messageAuthorRef = React.useRef(null);
21096
21215
  var messageTimeAndStatusRef = React.useRef(null);
21097
21216
  useUpdatePresence(channel, true);
@@ -21176,6 +21295,40 @@ var Channel = function Channel(_ref3) {
21176
21295
  isDirectChannel: isDirectChannel
21177
21296
  });
21178
21297
  }, [typingOrRecording === null || typingOrRecording === void 0 ? void 0 : typingOrRecording.isTyping, typingOrRecording === null || typingOrRecording === void 0 ? void 0 : typingOrRecording.isRecording, draftMessageText, lastMessage, user, contactsMap, getFromContacts, lastMessageMetas, accentColor, typingOrRecording, channel, isDirectChannel]);
21298
+ var getCustomLatestMessageComponent = React.useCallback(function (_ref4) {
21299
+ var lastMessage = _ref4.lastMessage,
21300
+ typingOrRecording = _ref4.typingOrRecording,
21301
+ draftMessageText = _ref4.draftMessageText,
21302
+ textSecondary = _ref4.textSecondary,
21303
+ channel = _ref4.channel,
21304
+ channelLastMessageFontSize = _ref4.channelLastMessageFontSize,
21305
+ channelLastMessageHeight = _ref4.channelLastMessageHeight,
21306
+ isDirectChannel = _ref4.isDirectChannel,
21307
+ textPrimary = _ref4.textPrimary,
21308
+ messageAuthorRef = _ref4.messageAuthorRef,
21309
+ contactsMap = _ref4.contactsMap,
21310
+ getFromContacts = _ref4.getFromContacts,
21311
+ warningColor = _ref4.warningColor,
21312
+ user = _ref4.user,
21313
+ MessageText = _ref4.MessageText;
21314
+ return getCustomLatestMessage && getCustomLatestMessage({
21315
+ lastMessage: lastMessage,
21316
+ typingOrRecording: typingOrRecording,
21317
+ draftMessageText: draftMessageText,
21318
+ textSecondary: textSecondary,
21319
+ channel: channel,
21320
+ channelLastMessageFontSize: channelLastMessageFontSize,
21321
+ channelLastMessageHeight: channelLastMessageHeight,
21322
+ isDirectChannel: isDirectChannel,
21323
+ textPrimary: textPrimary,
21324
+ messageAuthorRef: messageAuthorRef,
21325
+ contactsMap: contactsMap,
21326
+ getFromContacts: getFromContacts,
21327
+ warningColor: warningColor,
21328
+ user: user,
21329
+ MessageText: MessageText
21330
+ });
21331
+ }, [getCustomLatestMessage, lastMessage, typingOrRecording, draftMessageText, textSecondary, channel, channelLastMessageFontSize, channelLastMessageHeight, isDirectChannel, textPrimary, messageAuthorRef, contactsMap, getFromContacts, warningColor, user, MessageText]);
21179
21332
  return /*#__PURE__*/React__default.createElement(Container$2, {
21180
21333
  theme: theme,
21181
21334
  selectedChannel: channel.id === activeChannel.id,
@@ -21186,7 +21339,7 @@ var Channel = function Channel(_ref3) {
21186
21339
  selectedChannelBorderRadius: selectedChannelBorderRadius,
21187
21340
  channelsMargin: channelsMargin,
21188
21341
  onClick: function onClick() {
21189
- return handleChangeActiveChannel(channel);
21342
+ return setSelectedChannel(channel);
21190
21343
  },
21191
21344
  hoverBackground: channelHoverBackground || backgroundHovered
21192
21345
  }, showAvatar && (/*#__PURE__*/React__default.createElement(AvatarWrapper, null, /*#__PURE__*/React__default.createElement(Avatar, {
@@ -21212,7 +21365,23 @@ var Channel = function Channel(_ref3) {
21212
21365
  avatarSize: channelAvatarSize
21213
21366
  }, /*#__PURE__*/React__default.createElement("h3", null, channel.subject || (isDirectChannel && directChannelUser ? makeUsername(contactsMap && contactsMap[directChannelUser.id], directChannelUser, getFromContacts) : isSelfChannel ? 'Me' : '')), channel.muted && (/*#__PURE__*/React__default.createElement(MutedIcon, {
21214
21367
  color: notificationsIsMutedIconColor || iconInactive
21215
- }, notificationsIsMutedIcon || /*#__PURE__*/React__default.createElement(SvgUnmuteNotifications, null))), (lastMessage || typingOrRecording.items.length > 0 || draftMessageText) && (/*#__PURE__*/React__default.createElement(LastMessage, {
21368
+ }, notificationsIsMutedIcon || /*#__PURE__*/React__default.createElement(SvgUnmuteNotifications, null))), getCustomLatestMessage ? getCustomLatestMessageComponent({
21369
+ lastMessage: lastMessage,
21370
+ typingOrRecording: typingOrRecording,
21371
+ draftMessageText: draftMessageText,
21372
+ textSecondary: textSecondary,
21373
+ channel: channel,
21374
+ channelLastMessageFontSize: channelLastMessageFontSize || '14px',
21375
+ channelLastMessageHeight: channelLastMessageHeight || '20px',
21376
+ isDirectChannel: isDirectChannel,
21377
+ textPrimary: textPrimary,
21378
+ messageAuthorRef: messageAuthorRef,
21379
+ contactsMap: contactsMap || {},
21380
+ getFromContacts: getFromContacts,
21381
+ warningColor: warningColor,
21382
+ user: user,
21383
+ MessageText: MessageText
21384
+ }) : (lastMessage || typingOrRecording.items.length > 0 || draftMessageText) && (/*#__PURE__*/React__default.createElement(LastMessage, {
21216
21385
  color: textSecondary,
21217
21386
  markedAsUnread: !!(channel.unread || channel.newMessageCount && channel.newMessageCount > 0),
21218
21387
  unreadMentions: !!(channel.newMentionCount && channel.newMentionCount > 0),
@@ -21315,9 +21484,9 @@ var Container$2 = styled__default.div(_templateObject6$1 || (_templateObject6$1
21315
21484
  return props.channelsMargin || '0 8px';
21316
21485
  }, function (props) {
21317
21486
  return props.selectedChannelBorderRadius || '12px';
21318
- }, function (_ref4) {
21319
- var selectedChannel = _ref4.selectedChannel,
21320
- hoverBackground = _ref4.hoverBackground;
21487
+ }, function (_ref5) {
21488
+ var selectedChannel = _ref5.selectedChannel,
21489
+ hoverBackground = _ref5.hoverBackground;
21321
21490
  return !selectedChannel && "\n background-color: " + hoverBackground + ";\n ";
21322
21491
  }, UserStatus, function (props) {
21323
21492
  return props.selectedChannel ? props.selectedBackgroundColor : props.hoverBackground;
@@ -21332,9 +21501,9 @@ var DraftMessageText = styled__default.span(_templateObject8$1 || (_templateObje
21332
21501
  });
21333
21502
  var LastMessageAuthor = styled__default.div(_templateObject9$1 || (_templateObject9$1 = _taggedTemplateLiteralLoose(["\n max-width: 120px;\n font-weight: 500;\n color: ", ";\n\n ", "\n & > span {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n }\n"])), function (props) {
21334
21503
  return props.color;
21335
- }, function (_ref5) {
21336
- var typing = _ref5.typing,
21337
- recording = _ref5.recording;
21504
+ }, function (_ref6) {
21505
+ var typing = _ref6.typing,
21506
+ recording = _ref6.recording;
21338
21507
  return (typing || recording) && "\n font-weight: 500;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: calc(100% - " + (typing ? 62 : 76) + "px);\n ";
21339
21508
  });
21340
21509
  var Points = styled__default.span(_templateObject0$1 || (_templateObject0$1 = _taggedTemplateLiteralLoose(["\n margin-right: 4px;\n color: ", ";\n font-style: normal;\n"])), function (props) {
@@ -21785,15 +21954,15 @@ var UsersPopup = function UsersPopup(_ref) {
21785
21954
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
21786
21955
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
21787
21956
  surface2 = _useColor[THEME_COLORS.SURFACE_2];
21788
- var dispatch = reactRedux.useDispatch();
21957
+ var dispatch = useDispatch();
21789
21958
  var ChatClient = getClient();
21790
21959
  var selfUser = ChatClient.user;
21791
- var contactList = reactRedux.useSelector(contactListSelector);
21792
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
21793
- var usersList = reactRedux.useSelector(usersListSelector);
21794
- var theme = reactRedux.useSelector(themeSelector);
21960
+ var contactList = useSelector(contactListSelector);
21961
+ var contactsMap = useSelector(contactsMapSelector);
21962
+ var usersList = useSelector(usersListSelector);
21963
+ var theme = useSelector(themeSelector);
21795
21964
  var getFromContacts = getShowOnlyContactUsers();
21796
- var usersLoadingState = reactRedux.useSelector(usersLoadingStateSelector);
21965
+ var usersLoadingState = useSelector(usersLoadingStateSelector);
21797
21966
  var selectedMembersCont = React.useRef('');
21798
21967
  var _useState = React.useState(''),
21799
21968
  userSearchValue = _useState[0],
@@ -22353,11 +22522,11 @@ function CreateChannel(_ref) {
22353
22522
  warningColor = _useColor[THEME_COLORS.WARNING],
22354
22523
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
22355
22524
  background = _useColor[THEME_COLORS.BACKGROUND];
22356
- var dispatch = reactRedux.useDispatch();
22525
+ var dispatch = useDispatch();
22357
22526
  var uriRegexp = /^[A-Za-z0-9]*$/;
22358
22527
  var fileUploader = React.useRef(null);
22359
22528
  var uriPrefixRef = React.useRef(null);
22360
- var theme = reactRedux.useSelector(themeSelector);
22529
+ var theme = useSelector(themeSelector);
22361
22530
  var _useState = React.useState(false),
22362
22531
  usersPopupVisible = _useState[0],
22363
22532
  setUsersPopupVisible = _useState[1];
@@ -23031,7 +23200,7 @@ var EditProfile = function EditProfile(_ref) {
23031
23200
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
23032
23201
  background = _useColor[THEME_COLORS.BACKGROUND],
23033
23202
  surface1 = _useColor[THEME_COLORS.SURFACE_1];
23034
- var dispatch = reactRedux.useDispatch();
23203
+ var dispatch = useDispatch();
23035
23204
  var _useState = React.useState(user.firstName),
23036
23205
  firstName = _useState[0],
23037
23206
  setFirstName = _useState[1];
@@ -23122,7 +23291,7 @@ var ProfileSettings = function ProfileSettings(_ref) {
23122
23291
  var _useState2 = React.useState(''),
23123
23292
  activeSettingPage = _useState2[0],
23124
23293
  setActiveSettingPage = _useState2[1];
23125
- var user = reactRedux.useSelector(userSelector);
23294
+ var user = useSelector(userSelector);
23126
23295
  var handleOpenEditProfile = function handleOpenEditProfile() {
23127
23296
  setActiveSettingPage(editProfileIsOpen ? '' : settingsPages.profile);
23128
23297
  setEditProfileIsOpen(!editProfileIsOpen);
@@ -23252,7 +23421,8 @@ var ChannelList = function ChannelList(_ref) {
23252
23421
  channelAvatarTextSize = _ref.channelAvatarTextSize,
23253
23422
  searchChannelInputFontSize = _ref.searchChannelInputFontSize,
23254
23423
  searchedChannelsTitleFontSize = _ref.searchedChannelsTitleFontSize,
23255
- searchChannelsPadding = _ref.searchChannelsPadding;
23424
+ searchChannelsPadding = _ref.searchChannelsPadding,
23425
+ getCustomLatestMessage = _ref.getCustomLatestMessage;
23256
23426
  var _useColor = useColors(),
23257
23427
  background = _useColor[THEME_COLORS.BACKGROUND],
23258
23428
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
@@ -23260,27 +23430,27 @@ var ChannelList = function ChannelList(_ref) {
23260
23430
  textFootnote = _useColor[THEME_COLORS.TEXT_FOOTNOTE],
23261
23431
  borderColor = _useColor[THEME_COLORS.BORDER],
23262
23432
  surface2 = _useColor[THEME_COLORS.SURFACE_2];
23263
- var dispatch = reactRedux.useDispatch();
23433
+ var dispatch = useDispatch();
23264
23434
  var getFromContacts = getShowOnlyContactUsers();
23265
- var theme = reactRedux.useSelector(themeSelector);
23435
+ var theme = useSelector(themeSelector);
23266
23436
  var channelListRef = React.useRef(null);
23267
23437
  var channelsScrollRef = React.useRef(null);
23268
23438
  var _useState = React.useState(''),
23269
23439
  searchValue = _useState[0],
23270
23440
  setSearchValue = _useState[1];
23271
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector);
23272
- var channels = reactRedux.useSelector(channelsSelector, reactRedux.shallowEqual) || [];
23273
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
23274
- var addedChannel = reactRedux.useSelector(addedChannelSelector);
23275
- var closeSearchChannels = reactRedux.useSelector(closeSearchChannelSelector);
23276
- var addedToChannel = reactRedux.useSelector(addedToChannelSelector);
23277
- var deletedChannel = reactRedux.useSelector(deletedChannelSelector);
23278
- var hiddenChannel = reactRedux.useSelector(hiddenChannelSelector);
23279
- var visibleChannel = reactRedux.useSelector(visibleChannelSelector);
23280
- var channelsHasNext = reactRedux.useSelector(channelsHasNextSelector) || false;
23281
- var searchedChannels = reactRedux.useSelector(searchedChannelsSelector) || [];
23282
- var channelsLoading = reactRedux.useSelector(channelsLoadingState) || {};
23283
- var activeChannel = reactRedux.useSelector(activeChannelSelector) || {};
23441
+ var connectionStatus = useSelector(connectionStatusSelector);
23442
+ var channels = useSelector(channelsSelector, reactRedux.shallowEqual) || [];
23443
+ var contactsMap = useSelector(contactsMapSelector);
23444
+ var addedChannel = useSelector(addedChannelSelector);
23445
+ var closeSearchChannels = useSelector(closeSearchChannelSelector);
23446
+ var addedToChannel = useSelector(addedToChannelSelector);
23447
+ var deletedChannel = useSelector(deletedChannelSelector);
23448
+ var hiddenChannel = useSelector(hiddenChannelSelector);
23449
+ var visibleChannel = useSelector(visibleChannelSelector);
23450
+ var channelsHasNext = useSelector(channelsHasNextSelector) || false;
23451
+ var searchedChannels = useSelector(searchedChannelsSelector) || [];
23452
+ var channelsLoading = useSelector(channelsLoadingState) || {};
23453
+ var activeChannel = useSelector(activeChannelSelector) || {};
23284
23454
  var _useState2 = React.useState(false),
23285
23455
  listWidthIsSet = _useState2[0],
23286
23456
  setListWidthIsSet = _useState2[1];
@@ -23320,11 +23490,6 @@ var ChannelList = function ChannelList(_ref) {
23320
23490
  handleLoadMoreChannels();
23321
23491
  }
23322
23492
  };
23323
- var handleChangeActiveChannel = function handleChangeActiveChannel(chan) {
23324
- if (activeChannel.id !== chan.id) {
23325
- dispatch(switchChannelActionAC(chan));
23326
- }
23327
- };
23328
23493
  var handleCrateChatWithContact = function handleCrateChatWithContact(contact) {
23329
23494
  if (contact) {
23330
23495
  var channelData = {
@@ -23480,6 +23645,13 @@ var ChannelList = function ChannelList(_ref) {
23480
23645
  setListWidthIsSet(false);
23481
23646
  }
23482
23647
  }, [channels]);
23648
+ var setSelectedChannel = function setSelectedChannel(channel) {
23649
+ if (activeChannel.id !== channel.id) {
23650
+ dispatch(sendTypingAC(false));
23651
+ dispatch(clearMessagesAC());
23652
+ dispatch(switchChannelActionAC(channel));
23653
+ }
23654
+ };
23483
23655
  return /*#__PURE__*/React__default.createElement(Container$7, {
23484
23656
  className: className,
23485
23657
  withCustomList: !!List,
@@ -23524,13 +23696,13 @@ var ChannelList = function ChannelList(_ref) {
23524
23696
  channels: channels,
23525
23697
  searchedChannels: searchedChannels,
23526
23698
  selectedChannel: activeChannel,
23527
- setSelectedChannel: handleChangeActiveChannel,
23699
+ setSelectedChannel: setSelectedChannel,
23528
23700
  loadMoreChannels: handleLoadMoreChannels,
23529
23701
  searchValue: searchValue
23530
23702
  }, !searchValue ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, channels.map(function (channel) {
23531
23703
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23532
23704
  channel: channel,
23533
- setSelectedChannel: handleChangeActiveChannel,
23705
+ setSelectedChannel: setSelectedChannel,
23534
23706
  key: channel.id
23535
23707
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23536
23708
  theme: theme,
@@ -23556,7 +23728,9 @@ var ChannelList = function ChannelList(_ref) {
23556
23728
  avatarBorderRadius: avatarBorderRadius,
23557
23729
  channel: channel,
23558
23730
  key: channel.id,
23559
- contactsMap: contactsMap
23731
+ contactsMap: contactsMap,
23732
+ setSelectedChannel: setSelectedChannel,
23733
+ getCustomLatestMessage: getCustomLatestMessage
23560
23734
  }));
23561
23735
  }))) : channelsLoading === LOADING_STATE.LOADED && searchValue ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, searchedChannels !== null && searchedChannels !== void 0 && (_searchedChannels$cha = searchedChannels.chats_groups) !== null && _searchedChannels$cha !== void 0 && _searchedChannels$cha.length || searchedChannels !== null && searchedChannels !== void 0 && (_searchedChannels$cha2 = searchedChannels.channels) !== null && _searchedChannels$cha2 !== void 0 && _searchedChannels$cha2.length || searchedChannels !== null && searchedChannels !== void 0 && (_searchedChannels$con = searchedChannels.contacts) !== null && _searchedChannels$con !== void 0 && _searchedChannels$con.length ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, !!(searchedChannels.chats_groups && searchedChannels.chats_groups.length) && (/*#__PURE__*/React__default.createElement(DirectChannels, null, /*#__PURE__*/React__default.createElement(SearchedChannelsHeader, {
23562
23736
  color: textSecondary,
@@ -23564,7 +23738,7 @@ var ChannelList = function ChannelList(_ref) {
23564
23738
  }, "Chats & Groups"), searchedChannels.chats_groups.map(function (channel) {
23565
23739
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23566
23740
  channel: channel,
23567
- setSelectedChannel: handleChangeActiveChannel,
23741
+ setSelectedChannel: setSelectedChannel,
23568
23742
  key: channel.id
23569
23743
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23570
23744
  theme: theme,
@@ -23590,7 +23764,9 @@ var ChannelList = function ChannelList(_ref) {
23590
23764
  avatarBorderRadius: avatarBorderRadius,
23591
23765
  channel: channel,
23592
23766
  key: channel.id,
23593
- contactsMap: contactsMap
23767
+ contactsMap: contactsMap,
23768
+ setSelectedChannel: setSelectedChannel,
23769
+ getCustomLatestMessage: getCustomLatestMessage
23594
23770
  }));
23595
23771
  }))), !!(searchedChannels.contacts && searchedChannels.contacts.length) && (/*#__PURE__*/React__default.createElement(GroupChannels, null, /*#__PURE__*/React__default.createElement(SearchedChannelsHeader, {
23596
23772
  color: textSecondary,
@@ -23599,7 +23775,7 @@ var ChannelList = function ChannelList(_ref) {
23599
23775
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23600
23776
  contact: contact,
23601
23777
  createChatWithContact: handleCrateChatWithContact,
23602
- setSelectedChannel: handleChangeActiveChannel,
23778
+ setSelectedChannel: setSelectedChannel,
23603
23779
  key: contact.id
23604
23780
  })) : (/*#__PURE__*/React__default.createElement(ContactItem, {
23605
23781
  theme: theme,
@@ -23630,7 +23806,7 @@ var ChannelList = function ChannelList(_ref) {
23630
23806
  }, "Channels"), searchedChannels.channels.map(function (channel) {
23631
23807
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23632
23808
  channel: channel,
23633
- setSelectedChannel: handleChangeActiveChannel,
23809
+ setSelectedChannel: setSelectedChannel,
23634
23810
  key: channel.id
23635
23811
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23636
23812
  theme: theme,
@@ -23656,7 +23832,9 @@ var ChannelList = function ChannelList(_ref) {
23656
23832
  avatarBorderRadius: avatarBorderRadius,
23657
23833
  channel: channel,
23658
23834
  key: channel.id,
23659
- contactsMap: contactsMap
23835
+ contactsMap: contactsMap,
23836
+ setSelectedChannel: setSelectedChannel,
23837
+ getCustomLatestMessage: getCustomLatestMessage
23660
23838
  }));
23661
23839
  }))))) : (/*#__PURE__*/React__default.createElement(NoData, {
23662
23840
  color: textSecondary,
@@ -23677,7 +23855,7 @@ var ChannelList = function ChannelList(_ref) {
23677
23855
  }, channels.map(function (channel) {
23678
23856
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23679
23857
  channel: channel,
23680
- setSelectedChannel: handleChangeActiveChannel,
23858
+ setSelectedChannel: setSelectedChannel,
23681
23859
  key: channel.id
23682
23860
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23683
23861
  theme: theme,
@@ -23703,7 +23881,9 @@ var ChannelList = function ChannelList(_ref) {
23703
23881
  avatarBorderRadius: avatarBorderRadius,
23704
23882
  channel: channel,
23705
23883
  key: channel.id,
23706
- contactsMap: contactsMap
23884
+ contactsMap: contactsMap,
23885
+ setSelectedChannel: setSelectedChannel,
23886
+ getCustomLatestMessage: getCustomLatestMessage
23707
23887
  }));
23708
23888
  }))), !!searchValue && (channelsLoading === LOADING_STATE.LOADED ? !((_searchedChannels$cha4 = searchedChannels.chats_groups) !== null && _searchedChannels$cha4 !== void 0 && _searchedChannels$cha4.length) && !((_searchedChannels$cha5 = searchedChannels.chats_groups) !== null && _searchedChannels$cha5 !== void 0 && _searchedChannels$cha5.length) && !((_searchedChannels$cha6 = searchedChannels.channels) !== null && _searchedChannels$cha6 !== void 0 && _searchedChannels$cha6.length) ? (/*#__PURE__*/React__default.createElement(NoData, {
23709
23889
  color: textSecondary,
@@ -23714,7 +23894,7 @@ var ChannelList = function ChannelList(_ref) {
23714
23894
  }, "Chats & Groups"), searchedChannels.chats_groups.map(function (channel) {
23715
23895
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23716
23896
  channel: channel,
23717
- setSelectedChannel: handleChangeActiveChannel,
23897
+ setSelectedChannel: setSelectedChannel,
23718
23898
  key: channel.id
23719
23899
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23720
23900
  theme: theme,
@@ -23740,7 +23920,9 @@ var ChannelList = function ChannelList(_ref) {
23740
23920
  avatarBorderRadius: avatarBorderRadius,
23741
23921
  channel: channel,
23742
23922
  contactsMap: contactsMap,
23743
- key: channel.id
23923
+ key: channel.id,
23924
+ setSelectedChannel: setSelectedChannel,
23925
+ getCustomLatestMessage: getCustomLatestMessage
23744
23926
  }));
23745
23927
  }))), !!searchedChannels.channels.length && (/*#__PURE__*/React__default.createElement(GroupChannels, null, /*#__PURE__*/React__default.createElement(SearchedChannelsHeader, {
23746
23928
  color: textSecondary,
@@ -23748,7 +23930,7 @@ var ChannelList = function ChannelList(_ref) {
23748
23930
  }, "Channels"), searchedChannels.channels.map(function (channel) {
23749
23931
  return ListItem ? (/*#__PURE__*/React__default.createElement(ListItem, {
23750
23932
  channel: channel,
23751
- setSelectedChannel: handleChangeActiveChannel,
23933
+ setSelectedChannel: setSelectedChannel,
23752
23934
  key: channel.id
23753
23935
  })) : (/*#__PURE__*/React__default.createElement(Channel, {
23754
23936
  theme: theme,
@@ -23774,7 +23956,9 @@ var ChannelList = function ChannelList(_ref) {
23774
23956
  avatarBorderRadius: avatarBorderRadius,
23775
23957
  channel: channel,
23776
23958
  key: channel.id,
23777
- contactsMap: contactsMap
23959
+ contactsMap: contactsMap,
23960
+ setSelectedChannel: setSelectedChannel,
23961
+ getCustomLatestMessage: getCustomLatestMessage
23778
23962
  }));
23779
23963
  }))))) : (/*#__PURE__*/React__default.createElement(LoadingWrapper, null, /*#__PURE__*/React__default.createElement(UploadingIcon, {
23780
23964
  color: textFootnote
@@ -23863,12 +24047,12 @@ function Chat(_ref) {
23863
24047
  background = _useColor[THEME_COLORS.BACKGROUND],
23864
24048
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
23865
24049
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY];
23866
- var dispatch = reactRedux.useDispatch();
23867
- var channelListWidth = reactRedux.useSelector(channelListWidthSelector, reactRedux.shallowEqual);
23868
- var channelDetailsIsOpen = reactRedux.useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
23869
- var addedChannel = reactRedux.useSelector(addedToChannelSelector);
23870
- var channelCreated = reactRedux.useSelector(addedChannelSelector);
23871
- var activeChannel = reactRedux.useSelector(activeChannelSelector);
24050
+ var dispatch = useDispatch();
24051
+ var channelListWidth = useSelector(channelListWidthSelector, reactRedux.shallowEqual);
24052
+ var channelDetailsIsOpen = useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
24053
+ var addedChannel = useSelector(addedToChannelSelector);
24054
+ var channelCreated = useSelector(addedChannelSelector);
24055
+ var activeChannel = useSelector(activeChannelSelector);
23872
24056
  var autoSelectChannel = getAutoSelectFitsChannel();
23873
24057
  var _useState = React.useState(0),
23874
24058
  channelDetailsWidth = _useState[0],
@@ -23978,7 +24162,6 @@ function SvgInfo(props) {
23978
24162
 
23979
24163
  var _templateObject$i, _templateObject2$g, _templateObject3$c, _templateObject4$a, _templateObject5$8, _templateObject6$6, _templateObject7$5, _templateObject8$5, _templateObject9$5, _templateObject0$4;
23980
24164
  function ChatHeader(_ref) {
23981
- var _activeChannel$metada;
23982
24165
  var infoIcon = _ref.infoIcon,
23983
24166
  backgroundColor = _ref.backgroundColor,
23984
24167
  titleColor = _ref.titleColor,
@@ -24007,21 +24190,21 @@ function ChatHeader(_ref) {
24007
24190
  iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
24008
24191
  border = _useColor[THEME_COLORS.BORDER],
24009
24192
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED];
24010
- var dispatch = reactRedux.useDispatch();
24193
+ var dispatch = useDispatch();
24011
24194
  var ChatClient = getClient();
24012
24195
  var user = ChatClient.user;
24013
24196
  var getFromContacts = getShowOnlyContactUsers();
24014
- var activeChannel = reactRedux.useSelector(activeChannelSelector);
24015
- var theme = reactRedux.useSelector(themeSelector);
24197
+ var activeChannel = useSelector(activeChannelSelector);
24198
+ var theme = useSelector(themeSelector);
24016
24199
  var showChannelDetails = getShowChannelDetails();
24017
- var channelListHidden = reactRedux.useSelector(channelListHiddenSelector);
24018
- var channelDetailsIsOpen = reactRedux.useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
24200
+ var channelListHidden = useSelector(channelListHiddenSelector);
24201
+ var channelDetailsIsOpen = useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
24019
24202
  var isDirectChannel = activeChannel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
24020
- var isSelfChannel = isDirectChannel && ((_activeChannel$metada = activeChannel.metadata) === null || _activeChannel$metada === void 0 ? void 0 : _activeChannel$metada.s);
24203
+ var isSelfChannel = isDirectChannel && activeChannel.memberCount === 1 && activeChannel.members.length > 0 && activeChannel.members[0].id === user.id;
24021
24204
  var directChannelUser = isDirectChannel && activeChannel.members.find(function (member) {
24022
24205
  return member.id !== user.id;
24023
24206
  });
24024
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
24207
+ var contactsMap = useSelector(contactsMapSelector);
24025
24208
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
24026
24209
  var displayMemberText = memberDisplayText && memberDisplayText[activeChannel.type] ? activeChannel.memberCount > 1 ? memberDisplayText[activeChannel.type] + "s" : memberDisplayText[activeChannel.type] : activeChannel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || activeChannel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? activeChannel.memberCount > 1 ? 'subscribers' : 'subscriber' : activeChannel.memberCount > 1 ? 'members' : 'member';
24027
24210
  var channelDetailsOnOpen = function channelDetailsOnOpen() {
@@ -24862,13 +25045,13 @@ function ForwardMessagePopup(_ref) {
24862
25045
  surface2 = _useColor[THEME_COLORS.SURFACE_2];
24863
25046
  var ChatClient = getClient();
24864
25047
  var user = ChatClient.user;
24865
- var dispatch = reactRedux.useDispatch();
24866
- var channels = reactRedux.useSelector(channelsForForwardSelector) || [];
24867
- var searchedChannels = reactRedux.useSelector(searchedChannelsForForwardSelector) || [];
24868
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
25048
+ var dispatch = useDispatch();
25049
+ var channels = useSelector(channelsForForwardSelector) || [];
25050
+ var searchedChannels = useSelector(searchedChannelsForForwardSelector) || [];
25051
+ var contactsMap = useSelector(contactsMapSelector);
24869
25052
  var getFromContacts = getShowOnlyContactUsers();
24870
- var channelsLoading = reactRedux.useSelector(channelsLoadingStateForForwardSelector);
24871
- var channelsHasNext = reactRedux.useSelector(channelsForForwardHasNextSelector);
25053
+ var channelsLoading = useSelector(channelsLoadingStateForForwardSelector);
25054
+ var channelsHasNext = useSelector(channelsForForwardHasNextSelector);
24872
25055
  var _useState = React.useState(''),
24873
25056
  searchValue = _useState[0],
24874
25057
  setSearchValue = _useState[1];
@@ -24903,10 +25086,9 @@ function ForwardMessagePopup(_ref) {
24903
25086
  setSearchValue('');
24904
25087
  };
24905
25088
  var handleChannelSelect = function handleChannelSelect(isSelected, channel) {
24906
- var _channel$metadata;
24907
25089
  var newSelectedChannels = [].concat(selectedChannels);
24908
25090
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
24909
- var isSelfChannel = isDirectChannel && ((_channel$metadata = channel.metadata) === null || _channel$metadata === void 0 ? void 0 : _channel$metadata.s);
25091
+ var isSelfChannel = isDirectChannel && channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === user.id;
24910
25092
  var directChannelUser = isDirectChannel && channel.members.find(function (member) {
24911
25093
  return member.id !== user.id;
24912
25094
  });
@@ -25019,12 +25201,11 @@ function ForwardMessagePopup(_ref) {
25019
25201
  color: textSecondary,
25020
25202
  margin: '0 0 12px'
25021
25203
  }, "Chats & Groups"), searchedChannels.chats_groups.map(function (channel) {
25022
- var _channel$metadata2;
25023
25204
  var isSelected = selectedChannels.findIndex(function (chan) {
25024
25205
  return chan.id === channel.id;
25025
25206
  }) >= 0;
25026
25207
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
25027
- var isSelfChannel = isDirectChannel && ((_channel$metadata2 = channel.metadata) === null || _channel$metadata2 === void 0 ? void 0 : _channel$metadata2.s);
25208
+ var isSelfChannel = isDirectChannel && channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === user.id;
25028
25209
  var directChannelUser = isDirectChannel && isSelfChannel ? user : channel.members.find(function (member) {
25029
25210
  return member.id !== user.id;
25030
25211
  });
@@ -25095,9 +25276,8 @@ function ForwardMessagePopup(_ref) {
25095
25276
  }))), !searchedChannels.chats_groups.length && !searchedChannels.channels.length && (/*#__PURE__*/React__default.createElement(NoResults, {
25096
25277
  color: textSecondary
25097
25278
  }, "No channels found")))) : channels.map(function (channel) {
25098
- var _channel$metadata3;
25099
25279
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
25100
- var isSelfChannel = isDirectChannel && ((_channel$metadata3 = channel.metadata) === null || _channel$metadata3 === void 0 ? void 0 : _channel$metadata3.s);
25280
+ var isSelfChannel = isDirectChannel && channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === user.id;
25101
25281
  var directChannelUser = isDirectChannel && isSelfChannel ? user : channel.members.find(function (member) {
25102
25282
  return member.id !== user.id;
25103
25283
  });
@@ -25225,7 +25405,7 @@ var CustomLabel$1 = styled__default.label(_templateObject$m || (_templateObject$
25225
25405
  var Radio = styled__default.input(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n display: none;\n"])));
25226
25406
 
25227
25407
  function usePermissions(myRole) {
25228
- var rolesMap = reactRedux.useSelector(rolesMapSelector, reactRedux.shallowEqual);
25408
+ var rolesMap = useSelector(rolesMapSelector, reactRedux.shallowEqual);
25229
25409
  var myPermissions = myRole && rolesMap && rolesMap[myRole] ? rolesMap[myRole].permissions : [];
25230
25410
  var checkActionPermission = function checkActionPermission(actionName) {
25231
25411
  return myPermissions.includes(actionName);
@@ -25366,9 +25546,9 @@ var SliderPopup = function SliderPopup(_ref) {
25366
25546
  var _useColor = useColors(),
25367
25547
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
25368
25548
  overlayBackground2 = _useColor[THEME_COLORS.OVERLAY_BACKGROUND_2];
25369
- var dispatch = reactRedux.useDispatch();
25549
+ var dispatch = useDispatch();
25370
25550
  var getFromContacts = getShowOnlyContactUsers();
25371
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector);
25551
+ var connectionStatus = useSelector(connectionStatusSelector);
25372
25552
  var ChatClient = getClient();
25373
25553
  var user = ChatClient.user;
25374
25554
  var _useState = React.useState(_extends({}, currentMediaFile)),
@@ -25405,8 +25585,8 @@ var SliderPopup = function SliderPopup(_ref) {
25405
25585
  messageToDelete = _useState1[0],
25406
25586
  setMessageToDelete = _useState1[1];
25407
25587
  var customDownloader = getCustomDownloader();
25408
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
25409
- var attachments = reactRedux.useSelector(attachmentsForPopupSelector, reactRedux.shallowEqual) || [];
25588
+ var contactsMap = useSelector(contactsMapSelector);
25589
+ var attachments = useSelector(attachmentsForPopupSelector, reactRedux.shallowEqual) || [];
25410
25590
  var visibilityTimeout = React.useRef();
25411
25591
  var carouselRef = React.useRef(null);
25412
25592
  var attachmentUserName = currentFile ? currentFile.user && makeUsername(contactsMap[currentFile.user.id], currentFile.user, getFromContacts && user.id !== currentFile.user.id) : '';
@@ -25938,7 +26118,7 @@ var Message = function Message(_ref) {
25938
26118
  var _useColor = useColors(),
25939
26119
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
25940
26120
  overlayBackground = _useColor[THEME_COLORS.OVERLAY_BACKGROUND];
25941
- var dispatch = reactRedux.useDispatch();
26121
+ var dispatch = useDispatch();
25942
26122
  var ChatClient = getClient();
25943
26123
  var user = ChatClient.user;
25944
26124
  var getFromContacts = getShowOnlyContactUsers();
@@ -26080,11 +26260,11 @@ function ReactionsPopup(_ref) {
26080
26260
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED];
26081
26261
  var popupRef = React.useRef(null);
26082
26262
  var scoresRef = React.useRef(null);
26083
- var reactions = reactRedux.useSelector(reactionsListSelector, reactRedux.shallowEqual);
26084
- var messageInputHeight = reactRedux.useSelector(sendMessageInputHeightSelector, reactRedux.shallowEqual);
26085
- var reactionsHasNext = reactRedux.useSelector(reactionsHasNextSelector, reactRedux.shallowEqual);
26086
- var reactionsLoadingState = reactRedux.useSelector(reactionsLoadingStateSelector, reactRedux.shallowEqual);
26087
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
26263
+ var reactions = useSelector(reactionsListSelector, reactRedux.shallowEqual);
26264
+ var messageInputHeight = useSelector(sendMessageInputHeightSelector, reactRedux.shallowEqual);
26265
+ var reactionsHasNext = useSelector(reactionsHasNextSelector, reactRedux.shallowEqual);
26266
+ var reactionsLoadingState = useSelector(reactionsLoadingStateSelector, reactRedux.shallowEqual);
26267
+ var contactsMap = useSelector(contactsMapSelector);
26088
26268
  var getFromContacts = getShowOnlyContactUsers();
26089
26269
  var _useState = React.useState('all'),
26090
26270
  activeTabKey = _useState[0],
@@ -26111,7 +26291,7 @@ function ReactionsPopup(_ref) {
26111
26291
  });
26112
26292
  }
26113
26293
  var user = getClient().user;
26114
- var dispatch = reactRedux.useDispatch();
26294
+ var dispatch = useDispatch();
26115
26295
  var _useState7 = React.useState(false),
26116
26296
  isScrolling = _useState7[0],
26117
26297
  setIsScrolling = _useState7[1];
@@ -27025,7 +27205,7 @@ var VideoPreview = /*#__PURE__*/React.memo(function VideoPreview(_ref) {
27025
27205
  preload: 'auto',
27026
27206
  id: 'video',
27027
27207
  src: file.attachmentUrl || videoUrl
27028
- }), videoCurrentTime && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
27208
+ }), videoCurrentTime && !isRepliedMessage && (/*#__PURE__*/React__default.createElement(VideoControls, null, !isPreview && !!videoCurrentTime && !isRepliedMessage && !uploading && !isDetailsView && (
27029
27209
  /*#__PURE__*/
27030
27210
  React__default.createElement(VideoPlayButton, null, /*#__PURE__*/React__default.createElement(SvgPlayVideo, null))), /*#__PURE__*/React__default.createElement(VideoTime, {
27031
27211
  isDetailsView: isDetailsView,
@@ -29035,8 +29215,8 @@ var AudioPlayer = function AudioPlayer(_ref) {
29035
29215
  accentColor = _useColor[THEME_COLORS.ACCENT],
29036
29216
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
29037
29217
  backgroundSections = _useColor[THEME_COLORS.BACKGROUND_SECTIONS];
29038
- var dispatch = reactRedux.useDispatch();
29039
- var playingAudioId = reactRedux.useSelector(playingAudioIdSelector);
29218
+ var dispatch = useDispatch();
29219
+ var playingAudioId = useSelector(playingAudioIdSelector);
29040
29220
  var _useState = React.useState(recordingInitialState),
29041
29221
  recording = _useState[0],
29042
29222
  setRecording = _useState[1];
@@ -29277,11 +29457,11 @@ var Attachment = function Attachment(_ref) {
29277
29457
  iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE],
29278
29458
  borderColor = _useColor[THEME_COLORS.BORDER],
29279
29459
  background = _useColor[THEME_COLORS.BACKGROUND];
29280
- var dispatch = reactRedux.useDispatch();
29281
- var attachmentCompilationState = reactRedux.useSelector(attachmentCompilationStateSelector) || {};
29282
- var attachmentsUploadProgress = reactRedux.useSelector(attachmentsUploadProgressSelector) || {};
29283
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector);
29284
- var theme = reactRedux.useSelector(themeSelector);
29460
+ var dispatch = useDispatch();
29461
+ var attachmentCompilationState = useSelector(attachmentCompilationStateSelector) || {};
29462
+ var attachmentsUploadProgress = useSelector(attachmentsUploadProgressSelector) || {};
29463
+ var connectionStatus = useSelector(connectionStatusSelector);
29464
+ var theme = useSelector(themeSelector);
29285
29465
  var imageContRef = React.useRef(null);
29286
29466
  var _useState = React.useState(!attachment.attachmentUrl),
29287
29467
  imageLoading = _useState[0],
@@ -31078,6 +31258,12 @@ var OGMetadata = function OGMetadata(_ref) {
31078
31258
  var _useState = React.useState(null),
31079
31259
  metadata = _useState[0],
31080
31260
  setMetadata = _useState[1];
31261
+ var _useState2 = React.useState(true),
31262
+ imageLoadError = _useState2[0],
31263
+ setImageLoadError = _useState2[1];
31264
+ var _useState3 = React.useState(true),
31265
+ faviconLoadError = _useState3[0],
31266
+ setFaviconLoadError = _useState3[1];
31081
31267
  var attachment = React.useMemo(function () {
31082
31268
  return attachments.find(function (attachment) {
31083
31269
  return attachment.type === attachmentTypes.link;
@@ -31099,6 +31285,7 @@ var OGMetadata = function OGMetadata(_ref) {
31099
31285
  });
31100
31286
  }, function () {
31101
31287
  console.log('Failed to fetch OG metadata');
31288
+ setMetadata(null);
31102
31289
  });
31103
31290
  if (_temp && _temp.then) return _temp.then(function () {});
31104
31291
  }
@@ -31150,13 +31337,25 @@ var OGMetadata = function OGMetadata(_ref) {
31150
31337
  window.open(attachment === null || attachment === void 0 ? void 0 : attachment.url, '_blank');
31151
31338
  }
31152
31339
  }, /*#__PURE__*/React__default.createElement(ImageContainer, {
31153
- showOGMetadata: !!showOGMetadata
31154
- }, metadata !== null && metadata !== void 0 && (_metadata$og4 = metadata.og) !== null && _metadata$og4 !== void 0 && (_metadata$og4$image = _metadata$og4.image) !== null && _metadata$og4$image !== void 0 && (_metadata$og4$image$ = _metadata$og4$image[0]) !== null && _metadata$og4$image$ !== void 0 && _metadata$og4$image$.url ? /*#__PURE__*/React__default.createElement(Img, {
31340
+ showOGMetadata: !!showOGMetadata && !imageLoadError
31341
+ }, metadata !== null && metadata !== void 0 && (_metadata$og4 = metadata.og) !== null && _metadata$og4 !== void 0 && (_metadata$og4$image = _metadata$og4.image) !== null && _metadata$og4$image !== void 0 && (_metadata$og4$image$ = _metadata$og4$image[0]) !== null && _metadata$og4$image$ !== void 0 && _metadata$og4$image$.url ? (/*#__PURE__*/React__default.createElement(Img, {
31155
31342
  src: metadata === null || metadata === void 0 ? void 0 : (_metadata$og5 = metadata.og) === null || _metadata$og5 === void 0 ? void 0 : (_metadata$og5$image = _metadata$og5.image) === null || _metadata$og5$image === void 0 ? void 0 : (_metadata$og5$image$ = _metadata$og5$image[0]) === null || _metadata$og5$image$ === void 0 ? void 0 : _metadata$og5$image$.url,
31156
- alt: 'OG metadata image'
31157
- }) : null), showOGMetadata ? (/*#__PURE__*/React__default.createElement(OGText, null, /*#__PURE__*/React__default.createElement(Url, null, ogUrl), metadata !== null && metadata !== void 0 && (_metadata$og6 = metadata.og) !== null && _metadata$og6 !== void 0 && _metadata$og6.title ? (/*#__PURE__*/React__default.createElement(Title, null, metadata !== null && metadata !== void 0 && (_metadata$og7 = metadata.og) !== null && _metadata$og7 !== void 0 && (_metadata$og7$favicon = _metadata$og7.favicon) !== null && _metadata$og7$favicon !== void 0 && _metadata$og7$favicon.url ? /*#__PURE__*/React__default.createElement(Favicon, {
31158
- src: metadata === null || metadata === void 0 ? void 0 : (_metadata$og8 = metadata.og) === null || _metadata$og8 === void 0 ? void 0 : (_metadata$og8$favicon = _metadata$og8.favicon) === null || _metadata$og8$favicon === void 0 ? void 0 : _metadata$og8$favicon.url
31159
- }) : null, /*#__PURE__*/React__default.createElement("span", null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og9 = metadata.og) === null || _metadata$og9 === void 0 ? void 0 : _metadata$og9.title))) : null, metadata !== null && metadata !== void 0 && (_metadata$og0 = metadata.og) !== null && _metadata$og0 !== void 0 && _metadata$og0.description ? /*#__PURE__*/React__default.createElement(Desc, null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og1 = metadata.og) === null || _metadata$og1 === void 0 ? void 0 : _metadata$og1.description) : null)) : null));
31343
+ alt: 'OG metadata image',
31344
+ onLoad: function onLoad() {
31345
+ return setImageLoadError(false);
31346
+ },
31347
+ onError: function onError() {
31348
+ return setImageLoadError(true);
31349
+ }
31350
+ })) : null), showOGMetadata ? (/*#__PURE__*/React__default.createElement(OGText, null, /*#__PURE__*/React__default.createElement(Url, null, ogUrl), metadata !== null && metadata !== void 0 && (_metadata$og6 = metadata.og) !== null && _metadata$og6 !== void 0 && _metadata$og6.title ? (/*#__PURE__*/React__default.createElement(Title, null, metadata !== null && metadata !== void 0 && (_metadata$og7 = metadata.og) !== null && _metadata$og7 !== void 0 && (_metadata$og7$favicon = _metadata$og7.favicon) !== null && _metadata$og7$favicon !== void 0 && _metadata$og7$favicon.url && !faviconLoadError ? (/*#__PURE__*/React__default.createElement(Favicon, {
31351
+ src: metadata === null || metadata === void 0 ? void 0 : (_metadata$og8 = metadata.og) === null || _metadata$og8 === void 0 ? void 0 : (_metadata$og8$favicon = _metadata$og8.favicon) === null || _metadata$og8$favicon === void 0 ? void 0 : _metadata$og8$favicon.url,
31352
+ onLoad: function onLoad() {
31353
+ return setFaviconLoadError(false);
31354
+ },
31355
+ onError: function onError() {
31356
+ return setFaviconLoadError(true);
31357
+ }
31358
+ })) : null, /*#__PURE__*/React__default.createElement("span", null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og9 = metadata.og) === null || _metadata$og9 === void 0 ? void 0 : _metadata$og9.title))) : null, metadata !== null && metadata !== void 0 && (_metadata$og0 = metadata.og) !== null && _metadata$og0 !== void 0 && _metadata$og0.description ? /*#__PURE__*/React__default.createElement(Desc, null, metadata === null || metadata === void 0 ? void 0 : (_metadata$og1 = metadata.og) === null || _metadata$og1 === void 0 ? void 0 : _metadata$og1.description) : null)) : null));
31160
31359
  };
31161
31360
  var OGMetadataContainer = styled__default.div(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n min-width: inherit;\n max-width: inherit;\n display: grid;\n grid-template-columns: 1fr;\n background-color: rgba(0, 0, 0, 0.034);\n border-radius: 6px;\n margin-bottom: 0.4rem;\n margin: 0 auto;\n margin-bottom: ", ";\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n cursor: pointer;\n }\n"])), function (_ref2) {
31162
31361
  var showOGMetadata = _ref2.showOGMetadata;
@@ -31850,7 +32049,7 @@ var Message$1 = function Message(_ref) {
31850
32049
  border = _useColor[THEME_COLORS.BORDER];
31851
32050
  var bubbleOutgoing = outgoingMessageBackground;
31852
32051
  var bubbleIncoming = incomingMessageBackground;
31853
- var dispatch = reactRedux.useDispatch();
32052
+ var dispatch = useDispatch();
31854
32053
  var _useState = React.useState(false),
31855
32054
  deletePopupOpen = _useState[0],
31856
32055
  setDeletePopupOpen = _useState[1];
@@ -31884,7 +32083,7 @@ var Message$1 = function Message(_ref) {
31884
32083
  }),
31885
32084
  reactionsPopupHorizontalPosition = _useState0[0],
31886
32085
  setReactionsPopupHorizontalPosition = _useState0[1];
31887
- var scrollToNewMessage = reactRedux.useSelector(scrollToNewMessageSelector, reactRedux.shallowEqual);
32086
+ var scrollToNewMessage = useSelector(scrollToNewMessageSelector, reactRedux.shallowEqual);
31888
32087
  var messageItemRef = React.useRef();
31889
32088
  var isVisible = useOnScreen(messageItemRef);
31890
32089
  var reactionsCount = message.reactionTotals && message.reactionTotals.reduce(function (prevValue, currentValue) {
@@ -32404,7 +32603,7 @@ var Message$1 = function Message(_ref) {
32404
32603
  })));
32405
32604
  };
32406
32605
  var Message$2 = /*#__PURE__*/React__default.memo(Message$1, function (prevProps, nextProps) {
32407
- return prevProps.message.deliveryStatus === nextProps.message.deliveryStatus && prevProps.message.state === nextProps.message.state && prevProps.message.userReactions === nextProps.message.userReactions && prevProps.message.body === nextProps.message.body && prevProps.message.reactionTotals === nextProps.message.reactionTotals && prevProps.message.attachments === nextProps.message.attachments && prevProps.message.userMarkers === nextProps.message.userMarkers && prevProps.prevMessage === nextProps.prevMessage && prevProps.nextMessage === nextProps.nextMessage && prevProps.selectedMessagesMap === nextProps.selectedMessagesMap && prevProps.contactsMap === nextProps.contactsMap && prevProps.connectionStatus === nextProps.connectionStatus && prevProps.openedMessageMenuId === nextProps.openedMessageMenuId && prevProps.theme === nextProps.theme;
32606
+ return prevProps.message.deliveryStatus === nextProps.message.deliveryStatus && prevProps.message.state === nextProps.message.state && prevProps.message.userReactions === nextProps.message.userReactions && prevProps.message.body === nextProps.message.body && prevProps.message.reactionTotals === nextProps.message.reactionTotals && prevProps.message.attachments === nextProps.message.attachments && prevProps.message.metadata === nextProps.message.metadata && prevProps.message.userMarkers === nextProps.message.userMarkers && prevProps.prevMessage === nextProps.prevMessage && prevProps.nextMessage === nextProps.nextMessage && prevProps.selectedMessagesMap === nextProps.selectedMessagesMap && prevProps.contactsMap === nextProps.contactsMap && prevProps.connectionStatus === nextProps.connectionStatus && prevProps.openedMessageMenuId === nextProps.openedMessageMenuId && prevProps.theme === nextProps.theme;
32408
32607
  });
32409
32608
  var MessageReactionKey = styled__default.span(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n font-family:\n apple color emoji,\n segoe ui emoji,\n noto color emoji,\n android emoji,\n emojisymbols,\n emojione mozilla,\n twemoji mozilla,\n segoe ui symbol;\n"])));
32410
32609
  var ReactionItemCount = styled__default.span(_templateObject2$x || (_templateObject2$x = _taggedTemplateLiteralLoose(["\n margin-left: 2px;\n font-family: Inter, sans-serif;\n font-weight: 400;\n font-size: 14px;\n line-height: 16px;\n color: ", ";\n"])), function (props) {
@@ -32719,25 +32918,25 @@ var MessageList = function MessageList(_ref2) {
32719
32918
  incomingMessageBackgroundX = _useColor[THEME_COLORS.INCOMING_MESSAGE_BACKGROUND_X];
32720
32919
  var ChatClient = getClient();
32721
32920
  var user = ChatClient.user;
32722
- var dispatch = reactRedux.useDispatch();
32723
- var theme = reactRedux.useSelector(themeSelector);
32724
- var channel = reactRedux.useSelector(activeChannelSelector);
32725
- var contactsMap = reactRedux.useSelector(contactsMapSelector, reactRedux.shallowEqual);
32726
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector, reactRedux.shallowEqual);
32727
- var openedMessageMenuId = reactRedux.useSelector(openedMessageMenuSelector, reactRedux.shallowEqual);
32728
- var tabIsActive = reactRedux.useSelector(tabIsActiveSelector, reactRedux.shallowEqual);
32729
- var selectedMessagesMap = reactRedux.useSelector(selectedMessagesMapSelector);
32730
- var scrollToNewMessage = reactRedux.useSelector(scrollToNewMessageSelector, reactRedux.shallowEqual);
32731
- var scrollToMentionedMessage = reactRedux.useSelector(scrollToMentionedMessageSelector, reactRedux.shallowEqual);
32732
- var scrollToRepliedMessage = reactRedux.useSelector(scrollToMessageSelector, reactRedux.shallowEqual);
32733
- var scrollToMessageHighlight = reactRedux.useSelector(scrollToMessageHighlightSelector, reactRedux.shallowEqual);
32734
- var browserTabIsActive = reactRedux.useSelector(browserTabIsActiveSelector, reactRedux.shallowEqual);
32735
- var hasNextMessages = reactRedux.useSelector(messagesHasNextSelector, reactRedux.shallowEqual);
32736
- var hasPrevMessages = reactRedux.useSelector(messagesHasPrevSelector, reactRedux.shallowEqual);
32737
- var messagesLoading = reactRedux.useSelector(messagesLoadingState);
32738
- var draggingSelector = reactRedux.useSelector(isDraggingSelector, reactRedux.shallowEqual);
32739
- var showScrollToNewMessageButton = reactRedux.useSelector(showScrollToNewMessageButtonSelector, reactRedux.shallowEqual);
32740
- var messages = reactRedux.useSelector(activeChannelMessagesSelector, reactRedux.shallowEqual) || [];
32921
+ var dispatch = useDispatch();
32922
+ var theme = useSelector(themeSelector);
32923
+ var channel = useSelector(activeChannelSelector);
32924
+ var contactsMap = useSelector(contactsMapSelector, reactRedux.shallowEqual);
32925
+ var connectionStatus = useSelector(connectionStatusSelector, reactRedux.shallowEqual);
32926
+ var openedMessageMenuId = useSelector(openedMessageMenuSelector, reactRedux.shallowEqual);
32927
+ var tabIsActive = useSelector(tabIsActiveSelector, reactRedux.shallowEqual);
32928
+ var selectedMessagesMap = useSelector(selectedMessagesMapSelector);
32929
+ var scrollToNewMessage = useSelector(scrollToNewMessageSelector, reactRedux.shallowEqual);
32930
+ var scrollToMentionedMessage = useSelector(scrollToMentionedMessageSelector, reactRedux.shallowEqual);
32931
+ var scrollToRepliedMessage = useSelector(scrollToMessageSelector, reactRedux.shallowEqual);
32932
+ var scrollToMessageHighlight = useSelector(scrollToMessageHighlightSelector, reactRedux.shallowEqual);
32933
+ var browserTabIsActive = useSelector(browserTabIsActiveSelector, reactRedux.shallowEqual);
32934
+ var hasNextMessages = useSelector(messagesHasNextSelector, reactRedux.shallowEqual);
32935
+ var hasPrevMessages = useSelector(messagesHasPrevSelector, reactRedux.shallowEqual);
32936
+ var messagesLoading = useSelector(messagesLoadingState);
32937
+ var draggingSelector = useSelector(isDraggingSelector, reactRedux.shallowEqual);
32938
+ var showScrollToNewMessageButton = useSelector(showScrollToNewMessageButtonSelector, reactRedux.shallowEqual);
32939
+ var messages = useSelector(activeChannelMessagesSelector, reactRedux.shallowEqual) || [];
32741
32940
  var _useState = React.useState(''),
32742
32941
  unreadMessageId = _useState[0],
32743
32942
  setUnreadMessageId = _useState[1];
@@ -34088,7 +34287,7 @@ function MentionsContainer(_ref2) {
34088
34287
  selectOptionAndCleanUp = _ref2.selectOptionAndCleanUp,
34089
34288
  setHighlightedIndex = _ref2.setHighlightedIndex,
34090
34289
  setMentionsIsOpen = _ref2.setMentionsIsOpen;
34091
- var theme = reactRedux.useSelector(themeSelector);
34290
+ var theme = useSelector(themeSelector);
34092
34291
  var _useColor2 = useColors(),
34093
34292
  borderColor = _useColor2[THEME_COLORS.BORDER],
34094
34293
  background = _useColor2[THEME_COLORS.BACKGROUND];
@@ -35565,7 +35764,7 @@ var AudioRecord = function AudioRecord(_ref) {
35565
35764
  setRecordedFile(currentRecordedFile);
35566
35765
  }
35567
35766
  }, [currentRecordedFile]);
35568
- var dispatch = reactRedux.useDispatch();
35767
+ var dispatch = useDispatch();
35569
35768
  var handleStartRecording = function handleStartRecording() {
35570
35769
  dispatch(sendRecordingAC(true, currentChannelId));
35571
35770
  if (sendingInterval) {
@@ -36004,8 +36203,12 @@ var AudioRecord = function AudioRecord(_ref) {
36004
36203
  }
36005
36204
  }, [currentRecordedFile]);
36006
36205
  React.useEffect(function () {
36206
+ if (!showRecording) {
36207
+ setCurrentTime(0);
36208
+ }
36007
36209
  return function () {
36008
36210
  handleStopRecording();
36211
+ setCurrentTime(0);
36009
36212
  };
36010
36213
  }, [showRecording]);
36011
36214
  React.useEffect(function () {
@@ -36293,18 +36496,18 @@ var SendMessageInput = function SendMessageInput(_ref3) {
36293
36496
  textFootnote = _useColor[THEME_COLORS.TEXT_FOOTNOTE],
36294
36497
  highlightedBackground = _useColor[THEME_COLORS.HIGHLIGHTED_BACKGROUND],
36295
36498
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY];
36296
- var dispatch = reactRedux.useDispatch();
36499
+ var dispatch = useDispatch();
36297
36500
  var ChatClient = getClient();
36298
36501
  var user = ChatClient.user;
36299
- var channelDetailsIsOpen = reactRedux.useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
36300
- var theme = reactRedux.useSelector(themeSelector);
36502
+ var channelDetailsIsOpen = useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
36503
+ var theme = useSelector(themeSelector);
36301
36504
  var getFromContacts = getShowOnlyContactUsers();
36302
- var activeChannel = reactRedux.useSelector(activeChannelSelector);
36303
- var messageToEdit = reactRedux.useSelector(messageToEditSelector);
36304
- var activeChannelMembers = reactRedux.useSelector(activeChannelMembersSelector, reactRedux.shallowEqual);
36305
- var messageForReply = reactRedux.useSelector(messageForReplySelector);
36306
- var draggedAttachments = reactRedux.useSelector(draggedAttachmentsSelector);
36307
- var selectedMessagesMap = reactRedux.useSelector(selectedMessagesMapSelector);
36505
+ var activeChannel = useSelector(activeChannelSelector);
36506
+ var messageToEdit = useSelector(messageToEditSelector);
36507
+ var activeChannelMembers = useSelector(activeChannelMembersSelector, reactRedux.shallowEqual);
36508
+ var messageForReply = useSelector(messageForReplySelector);
36509
+ var draggedAttachments = useSelector(draggedAttachmentsSelector);
36510
+ var selectedMessagesMap = useSelector(selectedMessagesMapSelector);
36308
36511
  var isDirectChannel = activeChannel && activeChannel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
36309
36512
  var directChannelUser = isDirectChannel && activeChannel.members.find(function (member) {
36310
36513
  return member.id !== user.id;
@@ -36399,9 +36602,9 @@ var SendMessageInput = function SendMessageInput(_ref3) {
36399
36602
  var _useState25 = React.useState(''),
36400
36603
  uploadErrorMessage = _useState25[0],
36401
36604
  setUploadErrorMessage = _useState25[1];
36402
- var typingOrRecordingIndicator = reactRedux.useSelector(typingOrRecordingIndicatorArraySelector(activeChannel.id));
36403
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
36404
- var connectionStatus = reactRedux.useSelector(connectionStatusSelector, reactRedux.shallowEqual);
36605
+ var typingOrRecordingIndicator = useSelector(typingOrRecordingIndicatorArraySelector(activeChannel.id));
36606
+ var contactsMap = useSelector(contactsMapSelector);
36607
+ var connectionStatus = useSelector(connectionStatusSelector, reactRedux.shallowEqual);
36405
36608
  var messageContRef = React.useRef(null);
36406
36609
  var fileUploader = React.useRef(null);
36407
36610
  var inputWrapperRef = React.useRef(null);
@@ -38089,7 +38292,6 @@ function SvgUnpin(props) {
38089
38292
 
38090
38293
  var _templateObject$K, _templateObject2$F, _templateObject3$y, _templateObject4$t, _templateObject5$p, _templateObject6$l, _templateObject7$j, _templateObject8$h, _templateObject9$e, _templateObject0$d, _templateObject1$a, _templateObject10$6, _templateObject11$6, _templateObject12$5, _templateObject13$4, _templateObject14$3, _templateObject15$3, _templateObject16$3;
38091
38294
  var Actions = function Actions(_ref) {
38092
- var _channel$metadata;
38093
38295
  var setActionsHeight = _ref.setActionsHeight,
38094
38296
  channel = _ref.channel,
38095
38297
  actionMenuOpen = _ref.actionMenuOpen,
@@ -38202,12 +38404,12 @@ var Actions = function Actions(_ref) {
38202
38404
  var _useState0 = React.useState(''),
38203
38405
  popupTitle = _useState0[0],
38204
38406
  setPopupTitle = _useState0[1];
38205
- var dispatch = reactRedux.useDispatch();
38407
+ var dispatch = useDispatch();
38206
38408
  var oneHour = 60 * 60 * 1000;
38207
38409
  var twoHours = oneHour * 2;
38208
38410
  var oneDay = oneHour * 24;
38209
38411
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
38210
- var isSelfChannel = isDirectChannel && ((_channel$metadata = channel.metadata) === null || _channel$metadata === void 0 ? void 0 : _channel$metadata.s);
38412
+ var isSelfChannel = isDirectChannel && channel.memberCount === 1 && channel.members.length > 0 && channel.members[0].id === user.id;
38211
38413
  var directChannelUser = isDirectChannel && channel.members.find(function (member) {
38212
38414
  return member.id !== user.id;
38213
38415
  });
@@ -38664,14 +38866,14 @@ var ChangeMemberRole = function ChangeMemberRole(_ref) {
38664
38866
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
38665
38867
  iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
38666
38868
  border = _useColor[THEME_COLORS.BORDER];
38667
- var dispatch = reactRedux.useDispatch();
38869
+ var dispatch = useDispatch();
38668
38870
  var _useState = React.useState(false),
38669
38871
  isChanged = _useState[0],
38670
38872
  setIsChanged = _useState[1];
38671
38873
  var _useState2 = React.useState(),
38672
38874
  selectedRole = _useState2[0],
38673
38875
  setSelectedRole = _useState2[1];
38674
- var roles = reactRedux.useSelector(rolesSelector, reactRedux.shallowEqual) || [];
38876
+ var roles = useSelector(rolesSelector, reactRedux.shallowEqual) || [];
38675
38877
  React.useEffect(function () {
38676
38878
  dispatch(getRolesAC());
38677
38879
  }, []);
@@ -38781,7 +38983,7 @@ var Members = function Members(_ref) {
38781
38983
  backgroundFocused = _useColor[THEME_COLORS.BACKGROUND_FOCUSED],
38782
38984
  iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE],
38783
38985
  surface1 = _useColor[THEME_COLORS.SURFACE_1];
38784
- var dispatch = reactRedux.useDispatch();
38986
+ var dispatch = useDispatch();
38785
38987
  var getFromContacts = getShowOnlyContactUsers();
38786
38988
  var _useState = React.useState(null),
38787
38989
  selectedMember = _useState[0],
@@ -38807,9 +39009,9 @@ var Members = function Members(_ref) {
38807
39009
  var _useState8 = React.useState(),
38808
39010
  closeMenu = _useState8[0],
38809
39011
  setCloseMenu = _useState8[1];
38810
- var members = reactRedux.useSelector(activeChannelMembersSelector) || [];
38811
- var contactsMap = reactRedux.useSelector(contactsMapSelector) || {};
38812
- var membersLoading = reactRedux.useSelector(membersLoadingStateSelector) || {};
39012
+ var members = useSelector(activeChannelMembersSelector) || [];
39013
+ var contactsMap = useSelector(contactsMapSelector) || {};
39014
+ var membersLoading = useSelector(membersLoadingStateSelector) || {};
38813
39015
  var user = getClient().user;
38814
39016
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
38815
39017
  var channelTypeRoleMap = getDefaultRolesByChannelTypesMap();
@@ -39089,11 +39291,11 @@ var Media = function Media(_ref) {
39089
39291
  var channel = _ref.channel;
39090
39292
  var _useColor = useColors(),
39091
39293
  background = _useColor[THEME_COLORS.BACKGROUND];
39092
- var attachments = reactRedux.useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39294
+ var attachments = useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39093
39295
  var _useState = React.useState(null),
39094
39296
  mediaFile = _useState[0],
39095
39297
  setMediaFile = _useState[1];
39096
- var dispatch = reactRedux.useDispatch();
39298
+ var dispatch = useDispatch();
39097
39299
  var handleMediaItemClick = function handleMediaItemClick(file) {
39098
39300
  setMediaFile(file);
39099
39301
  };
@@ -39207,11 +39409,11 @@ var Files = function Files(_ref) {
39207
39409
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
39208
39410
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
39209
39411
  overlayBackground2 = _useColor[THEME_COLORS.OVERLAY_BACKGROUND_2];
39210
- var dispatch = reactRedux.useDispatch();
39412
+ var dispatch = useDispatch();
39211
39413
  var _useState = React.useState({}),
39212
39414
  downloadingFilesMap = _useState[0],
39213
39415
  setDownloadingFilesMap = _useState[1];
39214
- var attachments = reactRedux.useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39416
+ var attachments = useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39215
39417
  var nameSizeNum = fileNameFontSize && Number(fileNameFontSize.slice(0, -2));
39216
39418
  var nameMaxLength = nameSizeNum ? 32 - (nameSizeNum - 15) * (nameSizeNum < 20 ? 2 : 1) : 32;
39217
39419
  var handleCompleteDownload = function handleCompleteDownload(attachmentId) {
@@ -39276,7 +39478,7 @@ var Files = function Files(_ref) {
39276
39478
  lineHeight: fileSizeLineHeight,
39277
39479
  color: filePreviewSizeColor || textSecondary
39278
39480
  }, file.size ? bytesToSize(file.size) : '')), /*#__PURE__*/React__default.createElement(DownloadWrapper, {
39279
- visible: downloadingFilesMap[file.id],
39481
+ visible: !!downloadingFilesMap[file.id],
39280
39482
  iconColor: accentColor,
39281
39483
  onClick: function onClick() {
39282
39484
  return handleDownloadFile(file);
@@ -39423,8 +39625,8 @@ var Links = function Links(_ref) {
39423
39625
  linkPreviewTitleColor = _ref.linkPreviewTitleColor,
39424
39626
  linkPreviewColor = _ref.linkPreviewColor,
39425
39627
  linkPreviewHoverBackgroundColor = _ref.linkPreviewHoverBackgroundColor;
39426
- var dispatch = reactRedux.useDispatch();
39427
- var attachments = reactRedux.useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39628
+ var dispatch = useDispatch();
39629
+ var attachments = useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39428
39630
  React.useEffect(function () {
39429
39631
  dispatch(getAttachmentsAC(channelId, channelDetailsTabs.link));
39430
39632
  }, [channelId]);
@@ -39512,8 +39714,8 @@ var VoiceItem = function VoiceItem(_ref) {
39512
39714
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
39513
39715
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
39514
39716
  accentColor = _useColor[THEME_COLORS.ACCENT];
39515
- var dispatch = reactRedux.useDispatch();
39516
- var playingAudioId = reactRedux.useSelector(playingAudioIdSelector);
39717
+ var dispatch = useDispatch();
39718
+ var playingAudioId = useSelector(playingAudioIdSelector);
39517
39719
  var getFromContacts = getShowOnlyContactUsers();
39518
39720
  var _useState = React.useState(''),
39519
39721
  fileUrl = _useState[0],
@@ -39525,8 +39727,8 @@ var VoiceItem = function VoiceItem(_ref) {
39525
39727
  currentTime = _useState3[0],
39526
39728
  setCurrentTime = _useState3[1];
39527
39729
  var customDownloader = getCustomDownloader();
39528
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
39529
- var user = reactRedux.useSelector(userSelector);
39730
+ var contactsMap = useSelector(contactsMapSelector);
39731
+ var user = useSelector(userSelector);
39530
39732
  var audioRef = React.useRef();
39531
39733
  var intervalRef = React.useRef(null);
39532
39734
  var handlePlayPause = function handlePlayPause() {
@@ -39656,8 +39858,8 @@ var Voices = function Voices(_ref) {
39656
39858
  voicePreviewTitleColor = _ref.voicePreviewTitleColor,
39657
39859
  voicePreviewDateAndTimeColor = _ref.voicePreviewDateAndTimeColor,
39658
39860
  voicePreviewHoverBackgroundColor = _ref.voicePreviewHoverBackgroundColor;
39659
- var dispatch = reactRedux.useDispatch();
39660
- var attachments = reactRedux.useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39861
+ var dispatch = useDispatch();
39862
+ var attachments = useSelector(activeTabAttachmentsSelector, reactRedux.shallowEqual) || [];
39661
39863
  React.useEffect(function () {
39662
39864
  dispatch(getAttachmentsAC(channelId, channelDetailsTabs.voice));
39663
39865
  }, [channelId]);
@@ -39728,7 +39930,7 @@ var DetailsTab = function DetailsTab(_ref) {
39728
39930
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
39729
39931
  border = _useColor[THEME_COLORS.BORDER],
39730
39932
  background = _useColor[THEME_COLORS.BACKGROUND];
39731
- var dispatch = reactRedux.useDispatch();
39933
+ var dispatch = useDispatch();
39732
39934
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
39733
39935
  var showMembers = !isDirectChannel && checkActionPermission('getMembers');
39734
39936
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
@@ -39880,8 +40082,8 @@ var EditChannel = function EditChannel(_ref) {
39880
40082
  textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY];
39881
40083
  var ChatClient = getClient();
39882
40084
  var user = ChatClient.user;
39883
- var dispatch = reactRedux.useDispatch();
39884
- var isEditMode = reactRedux.useSelector(channelEditModeSelector);
40085
+ var dispatch = useDispatch();
40086
+ var isEditMode = useSelector(channelEditModeSelector);
39885
40087
  var _useState = React.useState(false),
39886
40088
  cropPopup = _useState[0],
39887
40089
  setCropPopup = _useState[1];
@@ -40114,7 +40316,7 @@ var EditChannel = function EditChannel(_ref) {
40114
40316
 
40115
40317
  var _templateObject$V, _templateObject2$O, _templateObject3$F, _templateObject4$z, _templateObject5$u, _templateObject6$p, _templateObject7$n, _templateObject8$l, _templateObject9$g, _templateObject0$e, _templateObject1$b, _templateObject10$7;
40116
40318
  var Details = function Details(_ref) {
40117
- var _activeChannel$metada, _activeChannel$member;
40319
+ var _activeChannel$member;
40118
40320
  var detailsTitleText = _ref.detailsTitleText,
40119
40321
  editDetailsTitleText = _ref.editDetailsTitleText,
40120
40322
  detailsTitleFontSize = _ref.detailsTitleFontSize,
@@ -40237,10 +40439,10 @@ var Details = function Details(_ref) {
40237
40439
  borderThemeColor = _useColor[THEME_COLORS.BORDER],
40238
40440
  textFootnote = _useColor[THEME_COLORS.TEXT_FOOTNOTE],
40239
40441
  surface2 = _useColor[THEME_COLORS.SURFACE_2];
40240
- var dispatch = reactRedux.useDispatch();
40442
+ var dispatch = useDispatch();
40241
40443
  var ChatClient = getClient();
40242
40444
  var user = ChatClient.user;
40243
- var theme = reactRedux.useSelector(themeSelector);
40445
+ var theme = useSelector(themeSelector);
40244
40446
  var getFromContacts = getShowOnlyContactUsers();
40245
40447
  var _useState = React.useState(false),
40246
40448
  mounted = _useState[0],
@@ -40254,14 +40456,14 @@ var Details = function Details(_ref) {
40254
40456
  var _useState4 = React.useState(0),
40255
40457
  actionsHeight = _useState4[0],
40256
40458
  setActionsHeight = _useState4[1];
40257
- var editMode = reactRedux.useSelector(channelEditModeSelector);
40258
- var activeChannel = reactRedux.useSelector(activeChannelSelector, reactRedux.shallowEqual);
40459
+ var editMode = useSelector(channelEditModeSelector);
40460
+ var activeChannel = useSelector(activeChannelSelector, reactRedux.shallowEqual);
40259
40461
  var _usePermissions = usePermissions(activeChannel ? activeChannel.userRole : ''),
40260
40462
  checkActionPermission = _usePermissions[0];
40261
- var membersLoading = reactRedux.useSelector(membersLoadingStateSelector);
40262
- var messagesLoading = reactRedux.useSelector(messagesLoadingState);
40263
- var attachmentsHasNex = reactRedux.useSelector(activeTabAttachmentsHasNextSelector);
40264
- var contactsMap = reactRedux.useSelector(contactsMapSelector);
40463
+ var membersLoading = useSelector(membersLoadingStateSelector);
40464
+ var messagesLoading = useSelector(messagesLoadingState);
40465
+ var attachmentsHasNex = useSelector(activeTabAttachmentsHasNextSelector);
40466
+ var contactsMap = useSelector(contactsMapSelector);
40265
40467
  var _useState5 = React.useState(false),
40266
40468
  isScrolling = _useState5[0],
40267
40469
  setIsScrolling = _useState5[1];
@@ -40269,7 +40471,7 @@ var Details = function Details(_ref) {
40269
40471
  var detailsHeaderRef = React.useRef(null);
40270
40472
  var openTimeOut = React.useRef(null);
40271
40473
  var isDirectChannel = activeChannel && activeChannel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
40272
- var isSelfChannel = isDirectChannel && ((_activeChannel$metada = activeChannel.metadata) === null || _activeChannel$metada === void 0 ? void 0 : _activeChannel$metada.s);
40474
+ var isSelfChannel = isDirectChannel && activeChannel.memberCount === 1 && activeChannel.members.length > 0 && activeChannel.members[0].id === user.id;
40273
40475
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
40274
40476
  var displayMemberText = memberDisplayText && (memberDisplayText[activeChannel.type] ? activeChannel.memberCount > 1 ? memberDisplayText[activeChannel.type] + "s" : memberDisplayText[activeChannel.type] : activeChannel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || activeChannel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? activeChannel.memberCount > 1 ? 'subscribers' : 'subscriber' : activeChannel.memberCount > 1 ? 'members' : 'member');
40275
40477
  var directChannelUser = isDirectChannel && (activeChannel.members.find(function (member) {
@@ -40383,7 +40585,7 @@ var Details = function Details(_ref) {
40383
40585
  color: textSecondary,
40384
40586
  fontSize: channelMembersFontSize,
40385
40587
  lineHeight: channelMembersLineHeight
40386
- }, showPhoneNumber ? "+" + (directChannelUser === null || directChannelUser === void 0 ? void 0 : directChannelUser.id) : hideUserPresence && directChannelUser && hideUserPresence(directChannelUser) ? '' : directChannelUser && directChannelUser.presence && (directChannelUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : directChannelUser.presence.lastActiveAt && userLastActiveDateFormat(directChannelUser.presence.lastActiveAt)))) : (/*#__PURE__*/React__default.createElement(SubTitle, {
40588
+ }, showPhoneNumber && directChannelUser !== null && directChannelUser !== void 0 && directChannelUser.id ? "+" + (directChannelUser === null || directChannelUser === void 0 ? void 0 : directChannelUser.id) : hideUserPresence && directChannelUser && hideUserPresence(directChannelUser) ? '' : directChannelUser && directChannelUser.presence && (directChannelUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : directChannelUser.presence.lastActiveAt && userLastActiveDateFormat(directChannelUser.presence.lastActiveAt)))) : (/*#__PURE__*/React__default.createElement(SubTitle, {
40387
40589
  color: textSecondary,
40388
40590
  fontSize: channelMembersFontSize,
40389
40591
  lineHeight: channelMembersLineHeight
@@ -40661,7 +40863,7 @@ var ChannelDetailsContainer = function ChannelDetailsContainer(_ref) {
40661
40863
  tabItemsMinWidth = _ref.tabItemsMinWidth,
40662
40864
  bordersColor = _ref.bordersColor,
40663
40865
  showPhoneNumber = _ref.showPhoneNumber;
40664
- var channelDetailsIsOpen = reactRedux.useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
40866
+ var channelDetailsIsOpen = useSelector(channelInfoIsOpenSelector, reactRedux.shallowEqual);
40665
40867
  React.useEffect(function () {
40666
40868
  setShowChannelDetails(true);
40667
40869
  }, []);
@@ -40822,12 +41024,12 @@ var MessagesScrollToBottomButton = function MessagesScrollToBottomButton(_ref) {
40822
41024
  var _useColor = useColors(),
40823
41025
  accentColor = _useColor[THEME_COLORS.ACCENT],
40824
41026
  backgroundSections = _useColor[THEME_COLORS.BACKGROUND_SECTIONS];
40825
- var dispatch = reactRedux.useDispatch();
40826
- var channel = reactRedux.useSelector(activeChannelSelector);
40827
- var theme = reactRedux.useSelector(themeSelector);
40828
- var sendMessageInputHeight = reactRedux.useSelector(sendMessageInputHeightSelector);
40829
- var showScrollToNewMessageButton = reactRedux.useSelector(showScrollToNewMessageButtonSelector);
40830
- var messages = reactRedux.useSelector(activeChannelMessagesSelector) || [];
41027
+ var dispatch = useDispatch();
41028
+ var channel = useSelector(activeChannelSelector);
41029
+ var theme = useSelector(themeSelector);
41030
+ var sendMessageInputHeight = useSelector(sendMessageInputHeightSelector);
41031
+ var showScrollToNewMessageButton = useSelector(showScrollToNewMessageButtonSelector);
41032
+ var messages = useSelector(activeChannelMessagesSelector) || [];
40831
41033
  var handleScrollToBottom = function handleScrollToBottom() {
40832
41034
  var user = getClient().user;
40833
41035
  if (channel.lastMessage.user.id !== user.id) {
@@ -40959,12 +41161,12 @@ var MessagesScrollToUnreadMentionsButton = function MessagesScrollToUnreadMentio
40959
41161
  var _useColor = useColors(),
40960
41162
  accentColor = _useColor[THEME_COLORS.ACCENT],
40961
41163
  backgroundSections = _useColor[THEME_COLORS.BACKGROUND_SECTIONS];
40962
- var dispatch = reactRedux.useDispatch();
40963
- var channel = reactRedux.useSelector(activeChannelSelector);
40964
- var theme = reactRedux.useSelector(themeSelector);
40965
- var sendMessageInputHeight = reactRedux.useSelector(sendMessageInputHeightSelector);
40966
- var showScrollToNewMessageButton = reactRedux.useSelector(showScrollToNewMessageButtonSelector);
40967
- var messages = reactRedux.useSelector(activeChannelMessagesSelector) || [];
41164
+ var dispatch = useDispatch();
41165
+ var channel = useSelector(activeChannelSelector);
41166
+ var theme = useSelector(themeSelector);
41167
+ var sendMessageInputHeight = useSelector(sendMessageInputHeightSelector);
41168
+ var showScrollToNewMessageButton = useSelector(showScrollToNewMessageButtonSelector);
41169
+ var messages = useSelector(activeChannelMessagesSelector) || [];
40968
41170
  var isMessageRead = React.useCallback(function (messageId) {
40969
41171
  var _message$userMarkers;
40970
41172
  var message = messages.find(function (msg) {
@@ -41104,6 +41306,37 @@ var UnreadCount$2 = styled__default.span(_templateObject2$Q || (_templateObject2
41104
41306
  return props.textColor || '#fff';
41105
41307
  });
41106
41308
 
41309
+ var createOrGetDirectChannel = function createOrGetDirectChannel(user, callback) {
41310
+ try {
41311
+ if (user) {
41312
+ store.dispatch(createChannelAC({
41313
+ metadata: '',
41314
+ type: DEFAULT_CHANNEL_TYPE.DIRECT,
41315
+ members: [_extends({}, user, {
41316
+ role: 'owner'
41317
+ })]
41318
+ }, false, callback));
41319
+ }
41320
+ return Promise.resolve();
41321
+ } catch (e) {
41322
+ return Promise.reject(e);
41323
+ }
41324
+ };
41325
+ var switchChannelActiveChannel = function switchChannelActiveChannel(channel) {
41326
+ try {
41327
+ store.dispatch(switchChannelActionAC(channel, true));
41328
+ return Promise.resolve();
41329
+ } catch (e) {
41330
+ return Promise.reject(e);
41331
+ }
41332
+ };
41333
+ var handleSendMessage = function handleSendMessage(message, channelId, connectionState) {
41334
+ return store.dispatch(sendTextMessageAC(message, channelId, connectionState));
41335
+ };
41336
+ var handleGetMessage = function handleGetMessage(channelId, messageId) {
41337
+ return store.dispatch(getMessageAC(channelId, messageId));
41338
+ };
41339
+
41107
41340
  exports.Attachment = Attachment$1;
41108
41341
  exports.Avatar = Avatar;
41109
41342
  exports.Channel = Channel;
@@ -41125,4 +41358,8 @@ exports.OGMetadata = OGMetadata;
41125
41358
  exports.SceytChat = SceytChatContainer;
41126
41359
  exports.SendMessage = SendMessageInput;
41127
41360
  exports.THEME_COLORS = THEME_COLORS;
41361
+ exports.createOrGetDirectChannel = createOrGetDirectChannel;
41362
+ exports.handleGetMessage = handleGetMessage;
41363
+ exports.handleSendMessage = handleSendMessage;
41364
+ exports.switchChannelActiveChannel = switchChannelActiveChannel;
41128
41365
  //# sourceMappingURL=index.js.map