sceyt-chat-react-uikit 1.8.3-beta.2 → 1.8.3-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +234 -43
  2. package/index.modern.js +234 -43
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -9123,6 +9123,65 @@ function setChannelInMap(channel) {
9123
9123
  channelsMap[channel.id] = _extends({}, channel);
9124
9124
  allChannelsMap[channel.id] = _extends({}, channel);
9125
9125
  }
9126
+ function updateChannelMemberInAllChannels(updatedMembers) {
9127
+ var updatedMembersMap = {};
9128
+ for (var _iterator = _createForOfIteratorHelperLoose(updatedMembers), _step; !(_step = _iterator()).done;) {
9129
+ var member = _step.value;
9130
+ updatedMembersMap[member.id] = member;
9131
+ }
9132
+ var updateMembers = function updateMembers(members) {
9133
+ return members.map(function (member) {
9134
+ return updatedMembersMap[member.id] ? _extends({}, member, updatedMembersMap[member.id]) : member;
9135
+ });
9136
+ };
9137
+ allChannels = allChannels.map(function (channel) {
9138
+ var _channel$members;
9139
+ if ((_channel$members = channel.members) !== null && _channel$members !== void 0 && _channel$members.length) {
9140
+ var hasMatch = channel.members.some(function (m) {
9141
+ return updatedMembersMap[m.id];
9142
+ });
9143
+ if (hasMatch) {
9144
+ return _extends({}, channel, {
9145
+ members: updateMembers(channel.members)
9146
+ });
9147
+ }
9148
+ }
9149
+ return channel;
9150
+ });
9151
+ for (var channelId in channelsMap) {
9152
+ var _channel$members2;
9153
+ var channel = channelsMap[channelId];
9154
+ if ((_channel$members2 = channel.members) !== null && _channel$members2 !== void 0 && _channel$members2.length && channel.members.some(function (m) {
9155
+ return updatedMembersMap[m.id];
9156
+ })) {
9157
+ channelsMap[channelId] = _extends({}, channel, {
9158
+ members: updateMembers(channel.members)
9159
+ });
9160
+ }
9161
+ }
9162
+ for (var _channelId in allChannelsMap) {
9163
+ var _channel$members3;
9164
+ var _channel = allChannelsMap[_channelId];
9165
+ if ((_channel$members3 = _channel.members) !== null && _channel$members3 !== void 0 && _channel$members3.length && _channel.members.some(function (m) {
9166
+ return updatedMembersMap[m.id];
9167
+ })) {
9168
+ allChannelsMap[_channelId] = _extends({}, _channel, {
9169
+ members: updateMembers(_channel.members)
9170
+ });
9171
+ }
9172
+ }
9173
+ for (var i = 0; i < allChannels.length; i++) {
9174
+ var _channel2$members;
9175
+ var _channel2 = allChannels[i];
9176
+ if ((_channel2$members = _channel2.members) !== null && _channel2$members !== void 0 && _channel2$members.length && _channel2.members.some(function (m) {
9177
+ return updatedMembersMap[m.id];
9178
+ })) {
9179
+ allChannels[i] = _extends({}, _channel2, {
9180
+ members: updateMembers(_channel2.members)
9181
+ });
9182
+ }
9183
+ }
9184
+ }
9126
9185
  function setActiveChannelId(id) {
9127
9186
  activeChannelId = id;
9128
9187
  }
@@ -9154,8 +9213,8 @@ function getLastChannelFromMap(deletePending) {
9154
9213
  }
9155
9214
  var channels = Object.values(channelsMap);
9156
9215
  if (deletePending) {
9157
- for (var _iterator = _createForOfIteratorHelperLoose(channels), _step; !(_step = _iterator()).done;) {
9158
- var channel = _step.value;
9216
+ for (var _iterator2 = _createForOfIteratorHelperLoose(channels), _step2; !(_step2 = _iterator2()).done;) {
9217
+ var channel = _step2.value;
9159
9218
  if (!getPendingDeleteChannel(channel.id)) {
9160
9219
  return channel;
9161
9220
  }
@@ -9571,6 +9630,39 @@ var channelSlice = createSlice({
9571
9630
  state.activeChannel = _extends({}, activeChannelCopy, config);
9572
9631
  }
9573
9632
  },
9633
+ updateChannelsMembers: function updateChannelsMembers(state, action) {
9634
+ var _state$activeChannel$;
9635
+ var members = action.payload.members;
9636
+ var usersMap = {};
9637
+ for (var _iterator = _createForOfIteratorHelperLoose(members), _step; !(_step = _iterator()).done;) {
9638
+ var _extends2;
9639
+ var member = _step.value;
9640
+ usersMap = _extends({}, usersMap, (_extends2 = {}, _extends2[member.id] = member, _extends2));
9641
+ }
9642
+ var updateMembers = function updateMembers(members) {
9643
+ return members.map(function (member) {
9644
+ return usersMap[member.id] ? _extends({}, member, usersMap[member.id]) : member;
9645
+ });
9646
+ };
9647
+ state.channels = state.channels.map(function (channel) {
9648
+ var _channel$members;
9649
+ if ((_channel$members = channel.members) !== null && _channel$members !== void 0 && _channel$members.length && channel.members.some(function (m) {
9650
+ return usersMap[m.id];
9651
+ })) {
9652
+ return _extends({}, channel, {
9653
+ members: updateMembers(channel.members)
9654
+ });
9655
+ }
9656
+ return channel;
9657
+ });
9658
+ if (state.activeChannel.id && (_state$activeChannel$ = state.activeChannel.members) !== null && _state$activeChannel$ !== void 0 && _state$activeChannel$.length && state.activeChannel.members.some(function (m) {
9659
+ return usersMap[m.id];
9660
+ })) {
9661
+ state.activeChannel = _extends({}, state.activeChannel, {
9662
+ members: updateMembers(state.activeChannel.members)
9663
+ });
9664
+ }
9665
+ },
9574
9666
  updateSearchedChannelData: function updateSearchedChannelData(state, action) {
9575
9667
  var _action$payload4 = action.payload,
9576
9668
  updateData = _action$payload4.updateData,
@@ -9578,13 +9670,13 @@ var channelSlice = createSlice({
9578
9670
  channelId = _action$payload4.channelId;
9579
9671
  var groupKey = groupName;
9580
9672
  if (state.searchedChannels[groupKey] && state.searchedChannels[groupKey].length) {
9581
- var _extends2;
9582
- state.searchedChannels = _extends({}, state.searchedChannels, (_extends2 = {}, _extends2[groupName] = [].concat(state.searchedChannels[groupKey]).map(function (channel) {
9673
+ var _extends3;
9674
+ state.searchedChannels = _extends({}, state.searchedChannels, (_extends3 = {}, _extends3[groupName] = [].concat(state.searchedChannels[groupKey]).map(function (channel) {
9583
9675
  if (channel.id === channelId) {
9584
9676
  return _extends({}, channel, updateData);
9585
9677
  }
9586
9678
  return channel;
9587
- }), _extends2));
9679
+ }), _extends3));
9588
9680
  }
9589
9681
  },
9590
9682
  updateUserStatusOnChannel: function updateUserStatusOnChannel(state, action) {
@@ -9683,30 +9775,30 @@ var channelSlice = createSlice({
9683
9775
  state.channelEditMode = action.payload.state;
9684
9776
  },
9685
9777
  switchTypingIndicator: function switchTypingIndicator(state, action) {
9686
- var _extends3, _extends4;
9778
+ var _extends4, _extends5;
9687
9779
  var _action$payload7 = action.payload,
9688
9780
  typingState = _action$payload7.typingState,
9689
9781
  channelId = _action$payload7.channelId,
9690
9782
  from = _action$payload7.from;
9691
9783
  var currentChannelIndicators = state.typingOrRecordingIndicator[channelId] || {};
9692
- var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends3 = {}, _extends3[from.id] = _extends({}, currentChannelIndicators[from.id], {
9784
+ var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends4 = {}, _extends4[from.id] = _extends({}, currentChannelIndicators[from.id], {
9693
9785
  from: from,
9694
9786
  typingState: typingState
9695
- }), _extends3));
9696
- state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends4 = {}, _extends4[channelId] = updatedChannelIndicators, _extends4));
9787
+ }), _extends4));
9788
+ state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends5 = {}, _extends5[channelId] = updatedChannelIndicators, _extends5));
9697
9789
  },
9698
9790
  switchRecordingIndicator: function switchRecordingIndicator(state, action) {
9699
- var _extends5, _extends6;
9791
+ var _extends6, _extends7;
9700
9792
  var _action$payload8 = action.payload,
9701
9793
  recordingState = _action$payload8.recordingState,
9702
9794
  channelId = _action$payload8.channelId,
9703
9795
  from = _action$payload8.from;
9704
9796
  var currentChannelIndicators = state.typingOrRecordingIndicator[channelId] || {};
9705
- var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends5 = {}, _extends5[from.id] = _extends({}, currentChannelIndicators[from.id], {
9797
+ var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends6 = {}, _extends6[from.id] = _extends({}, currentChannelIndicators[from.id], {
9706
9798
  from: from,
9707
9799
  recordingState: recordingState
9708
- }), _extends5));
9709
- state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends6 = {}, _extends6[channelId] = updatedChannelIndicators, _extends6));
9800
+ }), _extends6));
9801
+ state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends7 = {}, _extends7[channelId] = updatedChannelIndicators, _extends7));
9710
9802
  },
9711
9803
  setIsDragging: function setIsDragging(state, action) {
9712
9804
  state.isDragging = action.payload.isDragging;
@@ -9738,8 +9830,8 @@ var channelSlice = createSlice({
9738
9830
  state.draftIsRemoved = action.payload.channelId;
9739
9831
  },
9740
9832
  setChannelInviteKeys: function setChannelInviteKeys(state, action) {
9741
- var _extends7;
9742
- state.channelInviteKeys = _extends({}, state.channelInviteKeys, (_extends7 = {}, _extends7[action.payload.channelId] = action.payload.inviteKeys, _extends7));
9833
+ var _extends8;
9834
+ state.channelInviteKeys = _extends({}, state.channelInviteKeys, (_extends8 = {}, _extends8[action.payload.channelId] = action.payload.inviteKeys, _extends8));
9743
9835
  },
9744
9836
  setJoinableChannel: function setJoinableChannel(state, action) {
9745
9837
  state.joinableChannel = action.payload.channel;
@@ -9788,6 +9880,7 @@ var _channelSlice$actions = channelSlice.actions,
9788
9880
  setChannelsHasNext = _channelSlice$actions.setChannelsHasNext,
9789
9881
  setActiveChannel = _channelSlice$actions.setActiveChannel,
9790
9882
  updateChannelData = _channelSlice$actions.updateChannelData,
9883
+ updateChannelsMembers = _channelSlice$actions.updateChannelsMembers,
9791
9884
  updateSearchedChannelData = _channelSlice$actions.updateSearchedChannelData,
9792
9885
  updateUserStatusOnChannel = _channelSlice$actions.updateUserStatusOnChannel,
9793
9886
  updateChannelLastMessage = _channelSlice$actions.updateChannelLastMessage,
@@ -10296,6 +10389,7 @@ var queryDirection = {
10296
10389
  };
10297
10390
 
10298
10391
  var ATTACHMENTS_CACHE = 'attachments-cache';
10392
+ var ATTACHMENT_VERSION_KEY = 'sceyt_attachment_cache_version';
10299
10393
  var isBrowser = typeof window !== 'undefined';
10300
10394
  var cacheAvailable;
10301
10395
  if (isBrowser) {
@@ -10303,7 +10397,7 @@ if (isBrowser) {
10303
10397
  } else {
10304
10398
  cacheAvailable = 'caches' in global;
10305
10399
  }
10306
- var ATTACHMENT_VERSION = "_1_0_0";
10400
+ var ATTACHMENT_VERSION = "_1_0_1";
10307
10401
  var setAttachmentToCache = function setAttachmentToCache(attachmentUrl, attachmentResponse) {
10308
10402
  try {
10309
10403
  var attachmentURLVersion = attachmentUrl + ATTACHMENT_VERSION;
@@ -10382,6 +10476,49 @@ var getAttachmentUrlFromCache = function getAttachmentUrlFromCache(attachmentUrl
10382
10476
  var getAttachmentURLWithVersion = function getAttachmentURLWithVersion(attachmentUrl) {
10383
10477
  return attachmentUrl + ATTACHMENT_VERSION;
10384
10478
  };
10479
+ var cleanupOldAttachmentCache = function cleanupOldAttachmentCache() {
10480
+ try {
10481
+ if (!cacheAvailable || !isBrowser) {
10482
+ return Promise.resolve();
10483
+ }
10484
+ return Promise.resolve(_catch(function () {
10485
+ function _temp0() {
10486
+ localStorage.setItem(ATTACHMENT_VERSION_KEY, ATTACHMENT_VERSION);
10487
+ }
10488
+ var storedVersion = localStorage.getItem(ATTACHMENT_VERSION_KEY) || '_1_0_0';
10489
+ var _temp9 = function () {
10490
+ if (storedVersion && storedVersion !== ATTACHMENT_VERSION) {
10491
+ log.info("Attachment cache version changed from " + storedVersion + " to " + ATTACHMENT_VERSION + ", cleaning up old cache...");
10492
+ return Promise.resolve(caches.open(ATTACHMENTS_CACHE)).then(function (cache) {
10493
+ return Promise.resolve(cache.keys()).then(function (requests) {
10494
+ function _temp8() {
10495
+ log.info("Cleaned up " + deletedCount + " old cached attachments");
10496
+ }
10497
+ var deletedCount = 0;
10498
+ var _temp7 = _forOf(requests, function (request) {
10499
+ var url = request.url;
10500
+ var _temp6 = function () {
10501
+ if (url.includes(storedVersion)) {
10502
+ return Promise.resolve(cache["delete"](request)).then(function () {
10503
+ deletedCount++;
10504
+ });
10505
+ }
10506
+ }();
10507
+ if (_temp6 && _temp6.then) return _temp6.then(function () {});
10508
+ });
10509
+ return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
10510
+ });
10511
+ });
10512
+ }
10513
+ }();
10514
+ return _temp9 && _temp9.then ? _temp9.then(_temp0) : _temp0(_temp9);
10515
+ }, function (error) {
10516
+ log.error('Error cleaning up old attachment cache:', error);
10517
+ }));
10518
+ } catch (e) {
10519
+ return Promise.reject(e);
10520
+ }
10521
+ };
10385
10522
 
10386
10523
  function sendMessageAC(message, channelId, connectionState, sendAttachmentsAsSeparateMessage, isResend) {
10387
10524
  return {
@@ -12954,6 +13091,11 @@ var updateChannelDataAC = function updateChannelDataAC(channelId, config, moveUp
12954
13091
  sort: sort
12955
13092
  });
12956
13093
  };
13094
+ var updateChannelsMembersAC = function updateChannelsMembersAC(members) {
13095
+ return updateChannelsMembers({
13096
+ members: members
13097
+ });
13098
+ };
12957
13099
  var updateSearchedChannelDataAC = function updateSearchedChannelDataAC(channelId, config, groupName) {
12958
13100
  return updateSearchedChannelData({
12959
13101
  updateData: config,
@@ -18826,7 +18968,7 @@ function checkUsersStatus() {
18826
18968
  }
18827
18969
  });
18828
18970
  if (!update) {
18829
- _context25.n = 4;
18971
+ _context25.n = 5;
18830
18972
  break;
18831
18973
  }
18832
18974
  updateData = JSON.parse(JSON.stringify(usersToUpdateMap));
@@ -18839,16 +18981,18 @@ function checkUsersStatus() {
18839
18981
  _context25.n = 4;
18840
18982
  return effects.put(updateUserStatusOnChannelAC(updateData));
18841
18983
  case 4:
18842
- _context25.n = 6;
18843
- break;
18984
+ updateChannelMemberInAllChannels(Object.values(updateData));
18844
18985
  case 5:
18845
- _context25.p = 5;
18986
+ _context25.n = 7;
18987
+ break;
18988
+ case 6:
18989
+ _context25.p = 6;
18846
18990
  _t25 = _context25.v;
18847
18991
  log.error('ERROR in check user status : ', _t25.message);
18848
- case 6:
18992
+ case 7:
18849
18993
  return _context25.a(2);
18850
18994
  }
18851
- }, _marked25, null, [[0, 5]]);
18995
+ }, _marked25, null, [[0, 6]]);
18852
18996
  }
18853
18997
  function sendTyping(action) {
18854
18998
  var state, activeChannelId, channel, _t26;
@@ -19971,16 +20115,21 @@ var resizeImageWithPica = function resizeImageWithPica(file, maxWidth, maxHeight
19971
20115
  newHeight: img.height
19972
20116
  };
19973
20117
  }
20118
+ var srcCanvas = document.createElement('canvas');
20119
+ srcCanvas.width = img.width;
20120
+ srcCanvas.height = img.height;
20121
+ var srcCtx = srcCanvas.getContext('2d');
20122
+ srcCtx.drawImage(img, 0, 0);
20123
+ URL.revokeObjectURL(url);
19974
20124
  var canvas = document.createElement('canvas');
19975
20125
  canvas.width = newWidth;
19976
20126
  canvas.height = newHeight;
19977
- return Promise.resolve(pica.resize(img, canvas, {
20127
+ return Promise.resolve(pica.resize(srcCanvas, canvas, {
19978
20128
  quality: 3,
19979
20129
  unsharpAmount: 80,
19980
20130
  unsharpRadius: 0.6,
19981
20131
  unsharpThreshold: 2
19982
20132
  })).then(function () {
19983
- URL.revokeObjectURL(url);
19984
20133
  var originalType = file.type || 'image/jpeg';
19985
20134
  var outputType = type || 'image/webp';
19986
20135
  if (outputType === 'image/webp' && !canvas.toDataURL('image/webp').includes('webp')) {
@@ -24535,10 +24684,13 @@ function blockUser(action) {
24535
24684
  _iterator = _createForOfIteratorHelperLoose(blockedUsers);
24536
24685
  case 6:
24537
24686
  if ((_step = _iterator()).done) {
24538
- _context2.n = 10;
24687
+ _context2.n = 12;
24539
24688
  break;
24540
24689
  }
24541
24690
  user = _step.value;
24691
+ updateUserOnMap(_extends({}, user, {
24692
+ blocked: true
24693
+ }));
24542
24694
  _context2.n = 7;
24543
24695
  return effects.put(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = _extends({}, user, {
24544
24696
  blocked: true
@@ -24554,22 +24706,31 @@ function blockUser(action) {
24554
24706
  blocked: true
24555
24707
  }), _updateUserStatusOnCh)));
24556
24708
  case 9:
24709
+ _context2.n = 10;
24710
+ return effects.put(updateChannelsMembersAC([_extends({}, user, {
24711
+ blocked: true
24712
+ })]));
24713
+ case 10:
24714
+ updateChannelMemberInAllChannels([_extends({}, user, {
24715
+ blocked: true
24716
+ })]);
24717
+ case 11:
24557
24718
  _context2.n = 6;
24558
24719
  break;
24559
- case 10:
24560
- _context2.n = 12;
24720
+ case 12:
24721
+ _context2.n = 14;
24561
24722
  break;
24562
- case 11:
24563
- _context2.p = 11;
24723
+ case 13:
24724
+ _context2.p = 13;
24564
24725
  _t2 = _context2.v;
24565
24726
  log.error('error in block users', _t2.message);
24566
- case 12:
24727
+ case 14:
24567
24728
  return _context2.a(2);
24568
24729
  }
24569
- }, _marked2$4, null, [[0, 11]]);
24730
+ }, _marked2$4, null, [[0, 13]]);
24570
24731
  }
24571
24732
  function unblockUser(action) {
24572
- var SceytChatClient, payload, userIds, unblockedUsers, activeChannelId, activeChannel, isDirectChannel, directChannelUser, _iterator2, _step2, _updateUserStatusOnMa2, _updateMembersPresenc2, _updateUserStatusOnCh2, user, _t3;
24733
+ var SceytChatClient, payload, userIds, unblockedUsers, activeChannelId, activeChannel, isDirectChannel, directChannelUser, _iterator2, _step2, _updateUserStatusOnMa2, _updateMembersPresenc2, _updateUserStatusOnCh2, user, updateData, _t3;
24573
24734
  return _regenerator().w(function (_context3) {
24574
24735
  while (1) switch (_context3.p = _context3.n) {
24575
24736
  case 0:
@@ -24621,38 +24782,51 @@ function unblockUser(action) {
24621
24782
  _iterator2 = _createForOfIteratorHelperLoose(unblockedUsers);
24622
24783
  case 6:
24623
24784
  if ((_step2 = _iterator2()).done) {
24624
- _context3.n = 10;
24785
+ _context3.n = 12;
24625
24786
  break;
24626
24787
  }
24627
24788
  user = _step2.value;
24789
+ updateData = JSON.parse(JSON.stringify(user));
24790
+ updateUserOnMap(_extends({}, updateData, {
24791
+ blocked: false
24792
+ }));
24628
24793
  _context3.n = 7;
24629
- return effects.put(updateUserStatusOnMapAC((_updateUserStatusOnMa2 = {}, _updateUserStatusOnMa2[user.id] = _extends({}, user, {
24794
+ return effects.put(updateUserStatusOnMapAC((_updateUserStatusOnMa2 = {}, _updateUserStatusOnMa2[user.id] = _extends({}, updateData, {
24630
24795
  blocked: false
24631
24796
  }), _updateUserStatusOnMa2)));
24632
24797
  case 7:
24633
24798
  _context3.n = 8;
24634
- return effects.put(updateMembersPresenceAC((_updateMembersPresenc2 = {}, _updateMembersPresenc2[user.id] = _extends({}, user, {
24799
+ return effects.put(updateMembersPresenceAC((_updateMembersPresenc2 = {}, _updateMembersPresenc2[user.id] = _extends({}, updateData, {
24635
24800
  blocked: false
24636
24801
  }), _updateMembersPresenc2)));
24637
24802
  case 8:
24638
24803
  _context3.n = 9;
24639
- return effects.put(updateUserStatusOnChannelAC((_updateUserStatusOnCh2 = {}, _updateUserStatusOnCh2[user.id] = _extends({}, user, {
24804
+ return effects.put(updateUserStatusOnChannelAC((_updateUserStatusOnCh2 = {}, _updateUserStatusOnCh2[user.id] = _extends({}, updateData, {
24640
24805
  blocked: false
24641
24806
  }), _updateUserStatusOnCh2)));
24642
24807
  case 9:
24808
+ _context3.n = 10;
24809
+ return effects.put(updateChannelsMembersAC([_extends({}, user, {
24810
+ blocked: false
24811
+ })]));
24812
+ case 10:
24813
+ updateChannelMemberInAllChannels([_extends({}, user, {
24814
+ blocked: false
24815
+ })]);
24816
+ case 11:
24643
24817
  _context3.n = 6;
24644
24818
  break;
24645
- case 10:
24646
- _context3.n = 12;
24819
+ case 12:
24820
+ _context3.n = 14;
24647
24821
  break;
24648
- case 11:
24649
- _context3.p = 11;
24822
+ case 13:
24823
+ _context3.p = 13;
24650
24824
  _t3 = _context3.v;
24651
24825
  log.error('error in unblock users', _t3.message);
24652
- case 12:
24826
+ case 14:
24653
24827
  return _context3.a(2);
24654
24828
  }
24655
- }, _marked3$3, null, [[0, 11]]);
24829
+ }, _marked3$3, null, [[0, 13]]);
24656
24830
  }
24657
24831
  function updateProfile(action) {
24658
24832
  var payload, user, firstName, lastName, avatarUrl, metadata, avatarFile, updateUserProfileData, SceytChatClient, fileToUpload, updatedUser, _t4;
@@ -25120,6 +25294,7 @@ function useUpdatedUser(user) {
25120
25294
  var _updateUserStatusOnMa;
25121
25295
  setUserToMap(user);
25122
25296
  dispatch(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = user, _updateUserStatusOnMa)));
25297
+ updateChannelMemberInAllChannels([user]);
25123
25298
  }
25124
25299
  }, [user === null || user === void 0 ? void 0 : user.id]);
25125
25300
  return React.useMemo(function () {
@@ -25860,6 +26035,7 @@ var SceytChat = function SceytChat(_ref) {
25860
26035
  React.useEffect(function () {
25861
26036
  log.info('client is changed.... ', client);
25862
26037
  if (client) {
26038
+ cleanupOldAttachmentCache();
25863
26039
  setClient(client);
25864
26040
  setSceytChatClient(client);
25865
26041
  dispatch(setUserAC(client.user));
@@ -29261,7 +29437,22 @@ var ChannelList = function ChannelList(_ref) {
29261
29437
  }, [channels]);
29262
29438
  var setSelectedChannel = function setSelectedChannel(channel) {
29263
29439
  if (activeChannel.id !== channel.id) {
29264
- dispatch(sendTypingAC(false));
29440
+ if (activeChannel) {
29441
+ var _getClient;
29442
+ var user = (_getClient = getClient()) === null || _getClient === void 0 ? void 0 : _getClient.user;
29443
+ var isAllUsersBlcked = true;
29444
+ for (var i = 0; i < (activeChannel === null || activeChannel === void 0 ? void 0 : (_activeChannel$member2 = activeChannel.members) === null || _activeChannel$member2 === void 0 ? void 0 : _activeChannel$member2.length); i++) {
29445
+ var _activeChannel$member2;
29446
+ var member = activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.members[i];
29447
+ if (!(member !== null && member !== void 0 && member.blocked) && user.id !== member.id) {
29448
+ isAllUsersBlcked = false;
29449
+ break;
29450
+ }
29451
+ }
29452
+ if (!isAllUsersBlcked) {
29453
+ dispatch(sendTypingAC(false));
29454
+ }
29455
+ }
29265
29456
  dispatch(clearMessagesAC());
29266
29457
  dispatch(switchChannelActionAC(channel));
29267
29458
  }
package/index.modern.js CHANGED
@@ -9122,6 +9122,65 @@ function setChannelInMap(channel) {
9122
9122
  channelsMap[channel.id] = _extends({}, channel);
9123
9123
  allChannelsMap[channel.id] = _extends({}, channel);
9124
9124
  }
9125
+ function updateChannelMemberInAllChannels(updatedMembers) {
9126
+ var updatedMembersMap = {};
9127
+ for (var _iterator = _createForOfIteratorHelperLoose(updatedMembers), _step; !(_step = _iterator()).done;) {
9128
+ var member = _step.value;
9129
+ updatedMembersMap[member.id] = member;
9130
+ }
9131
+ var updateMembers = function updateMembers(members) {
9132
+ return members.map(function (member) {
9133
+ return updatedMembersMap[member.id] ? _extends({}, member, updatedMembersMap[member.id]) : member;
9134
+ });
9135
+ };
9136
+ allChannels = allChannels.map(function (channel) {
9137
+ var _channel$members;
9138
+ if ((_channel$members = channel.members) !== null && _channel$members !== void 0 && _channel$members.length) {
9139
+ var hasMatch = channel.members.some(function (m) {
9140
+ return updatedMembersMap[m.id];
9141
+ });
9142
+ if (hasMatch) {
9143
+ return _extends({}, channel, {
9144
+ members: updateMembers(channel.members)
9145
+ });
9146
+ }
9147
+ }
9148
+ return channel;
9149
+ });
9150
+ for (var channelId in channelsMap) {
9151
+ var _channel$members2;
9152
+ var channel = channelsMap[channelId];
9153
+ if ((_channel$members2 = channel.members) !== null && _channel$members2 !== void 0 && _channel$members2.length && channel.members.some(function (m) {
9154
+ return updatedMembersMap[m.id];
9155
+ })) {
9156
+ channelsMap[channelId] = _extends({}, channel, {
9157
+ members: updateMembers(channel.members)
9158
+ });
9159
+ }
9160
+ }
9161
+ for (var _channelId in allChannelsMap) {
9162
+ var _channel$members3;
9163
+ var _channel = allChannelsMap[_channelId];
9164
+ if ((_channel$members3 = _channel.members) !== null && _channel$members3 !== void 0 && _channel$members3.length && _channel.members.some(function (m) {
9165
+ return updatedMembersMap[m.id];
9166
+ })) {
9167
+ allChannelsMap[_channelId] = _extends({}, _channel, {
9168
+ members: updateMembers(_channel.members)
9169
+ });
9170
+ }
9171
+ }
9172
+ for (var i = 0; i < allChannels.length; i++) {
9173
+ var _channel2$members;
9174
+ var _channel2 = allChannels[i];
9175
+ if ((_channel2$members = _channel2.members) !== null && _channel2$members !== void 0 && _channel2$members.length && _channel2.members.some(function (m) {
9176
+ return updatedMembersMap[m.id];
9177
+ })) {
9178
+ allChannels[i] = _extends({}, _channel2, {
9179
+ members: updateMembers(_channel2.members)
9180
+ });
9181
+ }
9182
+ }
9183
+ }
9125
9184
  function setActiveChannelId(id) {
9126
9185
  activeChannelId = id;
9127
9186
  }
@@ -9153,8 +9212,8 @@ function getLastChannelFromMap(deletePending) {
9153
9212
  }
9154
9213
  var channels = Object.values(channelsMap);
9155
9214
  if (deletePending) {
9156
- for (var _iterator = _createForOfIteratorHelperLoose(channels), _step; !(_step = _iterator()).done;) {
9157
- var channel = _step.value;
9215
+ for (var _iterator2 = _createForOfIteratorHelperLoose(channels), _step2; !(_step2 = _iterator2()).done;) {
9216
+ var channel = _step2.value;
9158
9217
  if (!getPendingDeleteChannel(channel.id)) {
9159
9218
  return channel;
9160
9219
  }
@@ -9570,6 +9629,39 @@ var channelSlice = createSlice({
9570
9629
  state.activeChannel = _extends({}, activeChannelCopy, config);
9571
9630
  }
9572
9631
  },
9632
+ updateChannelsMembers: function updateChannelsMembers(state, action) {
9633
+ var _state$activeChannel$;
9634
+ var members = action.payload.members;
9635
+ var usersMap = {};
9636
+ for (var _iterator = _createForOfIteratorHelperLoose(members), _step; !(_step = _iterator()).done;) {
9637
+ var _extends2;
9638
+ var member = _step.value;
9639
+ usersMap = _extends({}, usersMap, (_extends2 = {}, _extends2[member.id] = member, _extends2));
9640
+ }
9641
+ var updateMembers = function updateMembers(members) {
9642
+ return members.map(function (member) {
9643
+ return usersMap[member.id] ? _extends({}, member, usersMap[member.id]) : member;
9644
+ });
9645
+ };
9646
+ state.channels = state.channels.map(function (channel) {
9647
+ var _channel$members;
9648
+ if ((_channel$members = channel.members) !== null && _channel$members !== void 0 && _channel$members.length && channel.members.some(function (m) {
9649
+ return usersMap[m.id];
9650
+ })) {
9651
+ return _extends({}, channel, {
9652
+ members: updateMembers(channel.members)
9653
+ });
9654
+ }
9655
+ return channel;
9656
+ });
9657
+ if (state.activeChannel.id && (_state$activeChannel$ = state.activeChannel.members) !== null && _state$activeChannel$ !== void 0 && _state$activeChannel$.length && state.activeChannel.members.some(function (m) {
9658
+ return usersMap[m.id];
9659
+ })) {
9660
+ state.activeChannel = _extends({}, state.activeChannel, {
9661
+ members: updateMembers(state.activeChannel.members)
9662
+ });
9663
+ }
9664
+ },
9573
9665
  updateSearchedChannelData: function updateSearchedChannelData(state, action) {
9574
9666
  var _action$payload4 = action.payload,
9575
9667
  updateData = _action$payload4.updateData,
@@ -9577,13 +9669,13 @@ var channelSlice = createSlice({
9577
9669
  channelId = _action$payload4.channelId;
9578
9670
  var groupKey = groupName;
9579
9671
  if (state.searchedChannels[groupKey] && state.searchedChannels[groupKey].length) {
9580
- var _extends2;
9581
- state.searchedChannels = _extends({}, state.searchedChannels, (_extends2 = {}, _extends2[groupName] = [].concat(state.searchedChannels[groupKey]).map(function (channel) {
9672
+ var _extends3;
9673
+ state.searchedChannels = _extends({}, state.searchedChannels, (_extends3 = {}, _extends3[groupName] = [].concat(state.searchedChannels[groupKey]).map(function (channel) {
9582
9674
  if (channel.id === channelId) {
9583
9675
  return _extends({}, channel, updateData);
9584
9676
  }
9585
9677
  return channel;
9586
- }), _extends2));
9678
+ }), _extends3));
9587
9679
  }
9588
9680
  },
9589
9681
  updateUserStatusOnChannel: function updateUserStatusOnChannel(state, action) {
@@ -9682,30 +9774,30 @@ var channelSlice = createSlice({
9682
9774
  state.channelEditMode = action.payload.state;
9683
9775
  },
9684
9776
  switchTypingIndicator: function switchTypingIndicator(state, action) {
9685
- var _extends3, _extends4;
9777
+ var _extends4, _extends5;
9686
9778
  var _action$payload7 = action.payload,
9687
9779
  typingState = _action$payload7.typingState,
9688
9780
  channelId = _action$payload7.channelId,
9689
9781
  from = _action$payload7.from;
9690
9782
  var currentChannelIndicators = state.typingOrRecordingIndicator[channelId] || {};
9691
- var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends3 = {}, _extends3[from.id] = _extends({}, currentChannelIndicators[from.id], {
9783
+ var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends4 = {}, _extends4[from.id] = _extends({}, currentChannelIndicators[from.id], {
9692
9784
  from: from,
9693
9785
  typingState: typingState
9694
- }), _extends3));
9695
- state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends4 = {}, _extends4[channelId] = updatedChannelIndicators, _extends4));
9786
+ }), _extends4));
9787
+ state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends5 = {}, _extends5[channelId] = updatedChannelIndicators, _extends5));
9696
9788
  },
9697
9789
  switchRecordingIndicator: function switchRecordingIndicator(state, action) {
9698
- var _extends5, _extends6;
9790
+ var _extends6, _extends7;
9699
9791
  var _action$payload8 = action.payload,
9700
9792
  recordingState = _action$payload8.recordingState,
9701
9793
  channelId = _action$payload8.channelId,
9702
9794
  from = _action$payload8.from;
9703
9795
  var currentChannelIndicators = state.typingOrRecordingIndicator[channelId] || {};
9704
- var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends5 = {}, _extends5[from.id] = _extends({}, currentChannelIndicators[from.id], {
9796
+ var updatedChannelIndicators = _extends({}, currentChannelIndicators, (_extends6 = {}, _extends6[from.id] = _extends({}, currentChannelIndicators[from.id], {
9705
9797
  from: from,
9706
9798
  recordingState: recordingState
9707
- }), _extends5));
9708
- state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends6 = {}, _extends6[channelId] = updatedChannelIndicators, _extends6));
9799
+ }), _extends6));
9800
+ state.typingOrRecordingIndicator = _extends({}, state.typingOrRecordingIndicator, (_extends7 = {}, _extends7[channelId] = updatedChannelIndicators, _extends7));
9709
9801
  },
9710
9802
  setIsDragging: function setIsDragging(state, action) {
9711
9803
  state.isDragging = action.payload.isDragging;
@@ -9737,8 +9829,8 @@ var channelSlice = createSlice({
9737
9829
  state.draftIsRemoved = action.payload.channelId;
9738
9830
  },
9739
9831
  setChannelInviteKeys: function setChannelInviteKeys(state, action) {
9740
- var _extends7;
9741
- state.channelInviteKeys = _extends({}, state.channelInviteKeys, (_extends7 = {}, _extends7[action.payload.channelId] = action.payload.inviteKeys, _extends7));
9832
+ var _extends8;
9833
+ state.channelInviteKeys = _extends({}, state.channelInviteKeys, (_extends8 = {}, _extends8[action.payload.channelId] = action.payload.inviteKeys, _extends8));
9742
9834
  },
9743
9835
  setJoinableChannel: function setJoinableChannel(state, action) {
9744
9836
  state.joinableChannel = action.payload.channel;
@@ -9787,6 +9879,7 @@ var _channelSlice$actions = channelSlice.actions,
9787
9879
  setChannelsHasNext = _channelSlice$actions.setChannelsHasNext,
9788
9880
  setActiveChannel = _channelSlice$actions.setActiveChannel,
9789
9881
  updateChannelData = _channelSlice$actions.updateChannelData,
9882
+ updateChannelsMembers = _channelSlice$actions.updateChannelsMembers,
9790
9883
  updateSearchedChannelData = _channelSlice$actions.updateSearchedChannelData,
9791
9884
  updateUserStatusOnChannel = _channelSlice$actions.updateUserStatusOnChannel,
9792
9885
  updateChannelLastMessage = _channelSlice$actions.updateChannelLastMessage,
@@ -10295,6 +10388,7 @@ var queryDirection = {
10295
10388
  };
10296
10389
 
10297
10390
  var ATTACHMENTS_CACHE = 'attachments-cache';
10391
+ var ATTACHMENT_VERSION_KEY = 'sceyt_attachment_cache_version';
10298
10392
  var isBrowser = typeof window !== 'undefined';
10299
10393
  var cacheAvailable;
10300
10394
  if (isBrowser) {
@@ -10302,7 +10396,7 @@ if (isBrowser) {
10302
10396
  } else {
10303
10397
  cacheAvailable = 'caches' in global;
10304
10398
  }
10305
- var ATTACHMENT_VERSION = "_1_0_0";
10399
+ var ATTACHMENT_VERSION = "_1_0_1";
10306
10400
  var setAttachmentToCache = function setAttachmentToCache(attachmentUrl, attachmentResponse) {
10307
10401
  try {
10308
10402
  var attachmentURLVersion = attachmentUrl + ATTACHMENT_VERSION;
@@ -10381,6 +10475,49 @@ var getAttachmentUrlFromCache = function getAttachmentUrlFromCache(attachmentUrl
10381
10475
  var getAttachmentURLWithVersion = function getAttachmentURLWithVersion(attachmentUrl) {
10382
10476
  return attachmentUrl + ATTACHMENT_VERSION;
10383
10477
  };
10478
+ var cleanupOldAttachmentCache = function cleanupOldAttachmentCache() {
10479
+ try {
10480
+ if (!cacheAvailable || !isBrowser) {
10481
+ return Promise.resolve();
10482
+ }
10483
+ return Promise.resolve(_catch(function () {
10484
+ function _temp0() {
10485
+ localStorage.setItem(ATTACHMENT_VERSION_KEY, ATTACHMENT_VERSION);
10486
+ }
10487
+ var storedVersion = localStorage.getItem(ATTACHMENT_VERSION_KEY) || '_1_0_0';
10488
+ var _temp9 = function () {
10489
+ if (storedVersion && storedVersion !== ATTACHMENT_VERSION) {
10490
+ log.info("Attachment cache version changed from " + storedVersion + " to " + ATTACHMENT_VERSION + ", cleaning up old cache...");
10491
+ return Promise.resolve(caches.open(ATTACHMENTS_CACHE)).then(function (cache) {
10492
+ return Promise.resolve(cache.keys()).then(function (requests) {
10493
+ function _temp8() {
10494
+ log.info("Cleaned up " + deletedCount + " old cached attachments");
10495
+ }
10496
+ var deletedCount = 0;
10497
+ var _temp7 = _forOf(requests, function (request) {
10498
+ var url = request.url;
10499
+ var _temp6 = function () {
10500
+ if (url.includes(storedVersion)) {
10501
+ return Promise.resolve(cache["delete"](request)).then(function () {
10502
+ deletedCount++;
10503
+ });
10504
+ }
10505
+ }();
10506
+ if (_temp6 && _temp6.then) return _temp6.then(function () {});
10507
+ });
10508
+ return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7);
10509
+ });
10510
+ });
10511
+ }
10512
+ }();
10513
+ return _temp9 && _temp9.then ? _temp9.then(_temp0) : _temp0(_temp9);
10514
+ }, function (error) {
10515
+ log.error('Error cleaning up old attachment cache:', error);
10516
+ }));
10517
+ } catch (e) {
10518
+ return Promise.reject(e);
10519
+ }
10520
+ };
10384
10521
 
10385
10522
  function sendMessageAC(message, channelId, connectionState, sendAttachmentsAsSeparateMessage, isResend) {
10386
10523
  return {
@@ -12953,6 +13090,11 @@ var updateChannelDataAC = function updateChannelDataAC(channelId, config, moveUp
12953
13090
  sort: sort
12954
13091
  });
12955
13092
  };
13093
+ var updateChannelsMembersAC = function updateChannelsMembersAC(members) {
13094
+ return updateChannelsMembers({
13095
+ members: members
13096
+ });
13097
+ };
12956
13098
  var updateSearchedChannelDataAC = function updateSearchedChannelDataAC(channelId, config, groupName) {
12957
13099
  return updateSearchedChannelData({
12958
13100
  updateData: config,
@@ -18825,7 +18967,7 @@ function checkUsersStatus() {
18825
18967
  }
18826
18968
  });
18827
18969
  if (!update) {
18828
- _context25.n = 4;
18970
+ _context25.n = 5;
18829
18971
  break;
18830
18972
  }
18831
18973
  updateData = JSON.parse(JSON.stringify(usersToUpdateMap));
@@ -18838,16 +18980,18 @@ function checkUsersStatus() {
18838
18980
  _context25.n = 4;
18839
18981
  return put(updateUserStatusOnChannelAC(updateData));
18840
18982
  case 4:
18841
- _context25.n = 6;
18842
- break;
18983
+ updateChannelMemberInAllChannels(Object.values(updateData));
18843
18984
  case 5:
18844
- _context25.p = 5;
18985
+ _context25.n = 7;
18986
+ break;
18987
+ case 6:
18988
+ _context25.p = 6;
18845
18989
  _t25 = _context25.v;
18846
18990
  log.error('ERROR in check user status : ', _t25.message);
18847
- case 6:
18991
+ case 7:
18848
18992
  return _context25.a(2);
18849
18993
  }
18850
- }, _marked25, null, [[0, 5]]);
18994
+ }, _marked25, null, [[0, 6]]);
18851
18995
  }
18852
18996
  function sendTyping(action) {
18853
18997
  var state, activeChannelId, channel, _t26;
@@ -19970,16 +20114,21 @@ var resizeImageWithPica = function resizeImageWithPica(file, maxWidth, maxHeight
19970
20114
  newHeight: img.height
19971
20115
  };
19972
20116
  }
20117
+ var srcCanvas = document.createElement('canvas');
20118
+ srcCanvas.width = img.width;
20119
+ srcCanvas.height = img.height;
20120
+ var srcCtx = srcCanvas.getContext('2d');
20121
+ srcCtx.drawImage(img, 0, 0);
20122
+ URL.revokeObjectURL(url);
19973
20123
  var canvas = document.createElement('canvas');
19974
20124
  canvas.width = newWidth;
19975
20125
  canvas.height = newHeight;
19976
- return Promise.resolve(pica.resize(img, canvas, {
20126
+ return Promise.resolve(pica.resize(srcCanvas, canvas, {
19977
20127
  quality: 3,
19978
20128
  unsharpAmount: 80,
19979
20129
  unsharpRadius: 0.6,
19980
20130
  unsharpThreshold: 2
19981
20131
  })).then(function () {
19982
- URL.revokeObjectURL(url);
19983
20132
  var originalType = file.type || 'image/jpeg';
19984
20133
  var outputType = type || 'image/webp';
19985
20134
  if (outputType === 'image/webp' && !canvas.toDataURL('image/webp').includes('webp')) {
@@ -24534,10 +24683,13 @@ function blockUser(action) {
24534
24683
  _iterator = _createForOfIteratorHelperLoose(blockedUsers);
24535
24684
  case 6:
24536
24685
  if ((_step = _iterator()).done) {
24537
- _context2.n = 10;
24686
+ _context2.n = 12;
24538
24687
  break;
24539
24688
  }
24540
24689
  user = _step.value;
24690
+ updateUserOnMap(_extends({}, user, {
24691
+ blocked: true
24692
+ }));
24541
24693
  _context2.n = 7;
24542
24694
  return put(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = _extends({}, user, {
24543
24695
  blocked: true
@@ -24553,22 +24705,31 @@ function blockUser(action) {
24553
24705
  blocked: true
24554
24706
  }), _updateUserStatusOnCh)));
24555
24707
  case 9:
24708
+ _context2.n = 10;
24709
+ return put(updateChannelsMembersAC([_extends({}, user, {
24710
+ blocked: true
24711
+ })]));
24712
+ case 10:
24713
+ updateChannelMemberInAllChannels([_extends({}, user, {
24714
+ blocked: true
24715
+ })]);
24716
+ case 11:
24556
24717
  _context2.n = 6;
24557
24718
  break;
24558
- case 10:
24559
- _context2.n = 12;
24719
+ case 12:
24720
+ _context2.n = 14;
24560
24721
  break;
24561
- case 11:
24562
- _context2.p = 11;
24722
+ case 13:
24723
+ _context2.p = 13;
24563
24724
  _t2 = _context2.v;
24564
24725
  log.error('error in block users', _t2.message);
24565
- case 12:
24726
+ case 14:
24566
24727
  return _context2.a(2);
24567
24728
  }
24568
- }, _marked2$4, null, [[0, 11]]);
24729
+ }, _marked2$4, null, [[0, 13]]);
24569
24730
  }
24570
24731
  function unblockUser(action) {
24571
- var SceytChatClient, payload, userIds, unblockedUsers, activeChannelId, activeChannel, isDirectChannel, directChannelUser, _iterator2, _step2, _updateUserStatusOnMa2, _updateMembersPresenc2, _updateUserStatusOnCh2, user, _t3;
24732
+ var SceytChatClient, payload, userIds, unblockedUsers, activeChannelId, activeChannel, isDirectChannel, directChannelUser, _iterator2, _step2, _updateUserStatusOnMa2, _updateMembersPresenc2, _updateUserStatusOnCh2, user, updateData, _t3;
24572
24733
  return _regenerator().w(function (_context3) {
24573
24734
  while (1) switch (_context3.p = _context3.n) {
24574
24735
  case 0:
@@ -24620,38 +24781,51 @@ function unblockUser(action) {
24620
24781
  _iterator2 = _createForOfIteratorHelperLoose(unblockedUsers);
24621
24782
  case 6:
24622
24783
  if ((_step2 = _iterator2()).done) {
24623
- _context3.n = 10;
24784
+ _context3.n = 12;
24624
24785
  break;
24625
24786
  }
24626
24787
  user = _step2.value;
24788
+ updateData = JSON.parse(JSON.stringify(user));
24789
+ updateUserOnMap(_extends({}, updateData, {
24790
+ blocked: false
24791
+ }));
24627
24792
  _context3.n = 7;
24628
- return put(updateUserStatusOnMapAC((_updateUserStatusOnMa2 = {}, _updateUserStatusOnMa2[user.id] = _extends({}, user, {
24793
+ return put(updateUserStatusOnMapAC((_updateUserStatusOnMa2 = {}, _updateUserStatusOnMa2[user.id] = _extends({}, updateData, {
24629
24794
  blocked: false
24630
24795
  }), _updateUserStatusOnMa2)));
24631
24796
  case 7:
24632
24797
  _context3.n = 8;
24633
- return put(updateMembersPresenceAC((_updateMembersPresenc2 = {}, _updateMembersPresenc2[user.id] = _extends({}, user, {
24798
+ return put(updateMembersPresenceAC((_updateMembersPresenc2 = {}, _updateMembersPresenc2[user.id] = _extends({}, updateData, {
24634
24799
  blocked: false
24635
24800
  }), _updateMembersPresenc2)));
24636
24801
  case 8:
24637
24802
  _context3.n = 9;
24638
- return put(updateUserStatusOnChannelAC((_updateUserStatusOnCh2 = {}, _updateUserStatusOnCh2[user.id] = _extends({}, user, {
24803
+ return put(updateUserStatusOnChannelAC((_updateUserStatusOnCh2 = {}, _updateUserStatusOnCh2[user.id] = _extends({}, updateData, {
24639
24804
  blocked: false
24640
24805
  }), _updateUserStatusOnCh2)));
24641
24806
  case 9:
24807
+ _context3.n = 10;
24808
+ return put(updateChannelsMembersAC([_extends({}, user, {
24809
+ blocked: false
24810
+ })]));
24811
+ case 10:
24812
+ updateChannelMemberInAllChannels([_extends({}, user, {
24813
+ blocked: false
24814
+ })]);
24815
+ case 11:
24642
24816
  _context3.n = 6;
24643
24817
  break;
24644
- case 10:
24645
- _context3.n = 12;
24818
+ case 12:
24819
+ _context3.n = 14;
24646
24820
  break;
24647
- case 11:
24648
- _context3.p = 11;
24821
+ case 13:
24822
+ _context3.p = 13;
24649
24823
  _t3 = _context3.v;
24650
24824
  log.error('error in unblock users', _t3.message);
24651
- case 12:
24825
+ case 14:
24652
24826
  return _context3.a(2);
24653
24827
  }
24654
- }, _marked3$3, null, [[0, 11]]);
24828
+ }, _marked3$3, null, [[0, 13]]);
24655
24829
  }
24656
24830
  function updateProfile(action) {
24657
24831
  var payload, user, firstName, lastName, avatarUrl, metadata, avatarFile, updateUserProfileData, SceytChatClient, fileToUpload, updatedUser, _t4;
@@ -25119,6 +25293,7 @@ function useUpdatedUser(user) {
25119
25293
  var _updateUserStatusOnMa;
25120
25294
  setUserToMap(user);
25121
25295
  dispatch(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = user, _updateUserStatusOnMa)));
25296
+ updateChannelMemberInAllChannels([user]);
25122
25297
  }
25123
25298
  }, [user === null || user === void 0 ? void 0 : user.id]);
25124
25299
  return useMemo(function () {
@@ -25859,6 +26034,7 @@ var SceytChat = function SceytChat(_ref) {
25859
26034
  useEffect(function () {
25860
26035
  log.info('client is changed.... ', client);
25861
26036
  if (client) {
26037
+ cleanupOldAttachmentCache();
25862
26038
  setClient(client);
25863
26039
  setSceytChatClient(client);
25864
26040
  dispatch(setUserAC(client.user));
@@ -29260,7 +29436,22 @@ var ChannelList = function ChannelList(_ref) {
29260
29436
  }, [channels]);
29261
29437
  var setSelectedChannel = function setSelectedChannel(channel) {
29262
29438
  if (activeChannel.id !== channel.id) {
29263
- dispatch(sendTypingAC(false));
29439
+ if (activeChannel) {
29440
+ var _getClient;
29441
+ var user = (_getClient = getClient()) === null || _getClient === void 0 ? void 0 : _getClient.user;
29442
+ var isAllUsersBlcked = true;
29443
+ for (var i = 0; i < (activeChannel === null || activeChannel === void 0 ? void 0 : (_activeChannel$member2 = activeChannel.members) === null || _activeChannel$member2 === void 0 ? void 0 : _activeChannel$member2.length); i++) {
29444
+ var _activeChannel$member2;
29445
+ var member = activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.members[i];
29446
+ if (!(member !== null && member !== void 0 && member.blocked) && user.id !== member.id) {
29447
+ isAllUsersBlcked = false;
29448
+ break;
29449
+ }
29450
+ }
29451
+ if (!isAllUsersBlcked) {
29452
+ dispatch(sendTypingAC(false));
29453
+ }
29454
+ }
29264
29455
  dispatch(clearMessagesAC());
29265
29456
  dispatch(switchChannelActionAC(channel));
29266
29457
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sceyt-chat-react-uikit",
3
- "version": "1.8.3-beta.2",
3
+ "version": "1.8.3-beta.4",
4
4
  "description": "Interactive React UI Components for Sceyt Chat.",
5
5
  "author": "Sceyt",
6
6
  "license": "MIT",