sceyt-chat-react-uikit 1.7.9-beta.10 → 1.7.9-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.modern.js CHANGED
@@ -9084,6 +9084,7 @@ var disableFrowardMentionsCount = false;
9084
9084
  var onUpdateChannel = function onUpdateChannel() {};
9085
9085
  var useInviteLink = false;
9086
9086
  var disappearingSettings;
9087
+ var customLoadMembersFunctions;
9087
9088
  var inviteLinkOptions = null;
9088
9089
  function setBaseUrlForInviteMembers(url) {
9089
9090
  baseUrlForInviteMembers = url;
@@ -9164,6 +9165,7 @@ function destroyChannelsMap() {
9164
9165
  var query = {
9165
9166
  channelQuery: null,
9166
9167
  channelQueryForward: null,
9168
+ channelMembersQuery: null,
9167
9169
  blockedQuery: null,
9168
9170
  current: null,
9169
9171
  membersQuery: null,
@@ -9212,6 +9214,9 @@ function setDisableFrowardMentionsCount(disable) {
9212
9214
  function getDisableFrowardMentionsCount() {
9213
9215
  return disableFrowardMentionsCount;
9214
9216
  }
9217
+ function getCustomLoadMembersFunctions() {
9218
+ return customLoadMembersFunctions;
9219
+ }
9215
9220
  function setOnUpdateChannel(callback) {
9216
9221
  onUpdateChannel = callback;
9217
9222
  }
@@ -9332,6 +9337,9 @@ var getShowChannelDetails = function getShowChannelDetails() {
9332
9337
  var setDisappearingSettings = function setDisappearingSettings(settings) {
9333
9338
  disappearingSettings = settings;
9334
9339
  };
9340
+ var setCustomLoadMembersFunctions = function setCustomLoadMembersFunctions(functions) {
9341
+ customLoadMembersFunctions = functions;
9342
+ };
9335
9343
  var getDisappearingSettings = function getDisappearingSettings() {
9336
9344
  return disappearingSettings;
9337
9345
  };
@@ -12106,9 +12114,9 @@ var _messageSlice$actions = messageSlice.actions,
12106
12114
  var MessageReducer = messageSlice.reducer;
12107
12115
 
12108
12116
  var initialState$2 = {
12109
- membersLoadingState: 0,
12110
- membersHasNext: true,
12111
- activeChannelMembers: [],
12117
+ channelsMembersLoadingState: {},
12118
+ channelsMembersHasNextMap: {},
12119
+ channelsMembersMap: {},
12112
12120
  roles: [],
12113
12121
  getRolesFail: undefined,
12114
12122
  rolesMap: {},
@@ -12124,22 +12132,34 @@ var memberSlice = createSlice({
12124
12132
  initialState: initialState$2,
12125
12133
  reducers: {
12126
12134
  setMembersToList: function setMembersToList(state, action) {
12127
- var members = action.payload.members;
12128
- state.activeChannelMembers = [].concat(members);
12135
+ var _action$payload = action.payload,
12136
+ channelId = _action$payload.channelId,
12137
+ members = _action$payload.members;
12138
+ if (!state.channelsMembersMap[channelId]) {
12139
+ state.channelsMembersMap[channelId] = [];
12140
+ }
12141
+ state.channelsMembersMap[channelId] = Array.from(new Set([].concat(members)));
12129
12142
  },
12130
12143
  addMembersToList: function addMembersToList(state, action) {
12131
- var _state$activeChannelM;
12132
- var members = action.payload.members;
12133
- (_state$activeChannelM = state.activeChannelMembers).push.apply(_state$activeChannelM, members);
12144
+ var _action$payload2 = action.payload,
12145
+ channelId = _action$payload2.channelId,
12146
+ members = _action$payload2.members;
12147
+ if (!state.channelsMembersMap[channelId]) {
12148
+ state.channelsMembersMap[channelId] = [];
12149
+ }
12150
+ state.channelsMembersMap[channelId] = Array.from(new Set([].concat(state.channelsMembersMap[channelId], members)));
12134
12151
  },
12135
12152
  updateMembers: function updateMembers(state, action) {
12136
- var members = action.payload.members;
12153
+ var _action$payload3 = action.payload,
12154
+ channelId = _action$payload3.channelId,
12155
+ members = _action$payload3.members;
12137
12156
  if (members.length) {
12157
+ var _state$channelsMember;
12138
12158
  var updatedMembersMap = {};
12139
12159
  for (var i = 0; i < members.length; i++) {
12140
12160
  updatedMembersMap[members[i].id] = members[i];
12141
12161
  }
12142
- state.activeChannelMembers = state.activeChannelMembers.map(function (member) {
12162
+ state.channelsMembersMap[channelId] = (_state$channelsMember = state.channelsMembersMap[channelId]) === null || _state$channelsMember === void 0 ? void 0 : _state$channelsMember.map(function (member) {
12143
12163
  if (updatedMembersMap[member.id]) {
12144
12164
  return updatedMembersMap[member.id];
12145
12165
  }
@@ -12149,32 +12169,45 @@ var memberSlice = createSlice({
12149
12169
  },
12150
12170
  updateMembersPresence: function updateMembersPresence(state, action) {
12151
12171
  var usersMap = action.payload.usersMap;
12152
- if (state.activeChannelMembers.length) {
12153
- state.activeChannelMembers = state.activeChannelMembers.map(function (member) {
12154
- if (usersMap[member.id]) {
12155
- return _extends({}, member, usersMap[member.id]);
12156
- }
12157
- return member;
12158
- });
12172
+ for (var channelId in usersMap) {
12173
+ var _state$channelsMember2;
12174
+ if ((_state$channelsMember2 = state.channelsMembersMap[channelId]) !== null && _state$channelsMember2 !== void 0 && _state$channelsMember2.length) {
12175
+ var _state$channelsMember3;
12176
+ state.channelsMembersMap[channelId] = (_state$channelsMember3 = state.channelsMembersMap[channelId]) === null || _state$channelsMember3 === void 0 ? void 0 : _state$channelsMember3.map(function (member) {
12177
+ if (usersMap[member.id]) {
12178
+ return _extends({}, member, usersMap[member.id]);
12179
+ }
12180
+ return member;
12181
+ });
12182
+ }
12159
12183
  }
12160
12184
  },
12161
- clearMembers: function clearMembers(state) {
12162
- state.activeChannelMembers = [];
12185
+ clearMembers: function clearMembers(state, action) {
12186
+ var channelId = action.payload.channelId;
12187
+ if (state.channelsMembersMap[channelId]) {
12188
+ state.channelsMembersMap[channelId] = [];
12189
+ }
12163
12190
  },
12164
12191
  removeMemberFromList: function removeMemberFromList(state, action) {
12165
- var members = action.payload.members;
12166
- if (members.length) {
12192
+ var _action$payload4 = action.payload,
12193
+ channelId = _action$payload4.channelId,
12194
+ members = _action$payload4.members;
12195
+ if (members.length && state.channelsMembersMap[channelId]) {
12196
+ var _state$channelsMember4;
12167
12197
  var removedMembersMap = {};
12168
12198
  for (var i = 0; i < members.length; i++) {
12169
12199
  removedMembersMap[members[i].id] = members[i];
12170
12200
  }
12171
- state.activeChannelMembers = state.activeChannelMembers.filter(function (member) {
12201
+ state.channelsMembersMap[channelId] = (_state$channelsMember4 = state.channelsMembersMap[channelId]) === null || _state$channelsMember4 === void 0 ? void 0 : _state$channelsMember4.filter(function (member) {
12172
12202
  return !removedMembersMap[member.id];
12173
12203
  });
12174
12204
  }
12175
12205
  },
12176
12206
  setMembersLoadingState: function setMembersLoadingState(state, action) {
12177
- state.membersLoadingState = action.payload.state;
12207
+ var _action$payload5 = action.payload,
12208
+ channelId = _action$payload5.channelId,
12209
+ loadingState = _action$payload5.loadingState;
12210
+ state.channelsMembersLoadingState[channelId] = loadingState;
12178
12211
  },
12179
12212
  getRolesSuccess: function getRolesSuccess(state, action) {
12180
12213
  var roles = action.payload.roles;
@@ -12186,9 +12219,9 @@ var memberSlice = createSlice({
12186
12219
  state.roles = roles;
12187
12220
  },
12188
12221
  getRolesFail: function getRolesFail(state, action) {
12189
- var _action$payload = action.payload,
12190
- attempts = _action$payload.attempts,
12191
- timeout = _action$payload.timeout;
12222
+ var _action$payload6 = action.payload,
12223
+ attempts = _action$payload6.attempts,
12224
+ timeout = _action$payload6.timeout;
12192
12225
  if (attempts || timeout) {
12193
12226
  state.getRolesFail = {
12194
12227
  attempts: attempts || 0,
@@ -12199,13 +12232,16 @@ var memberSlice = createSlice({
12199
12232
  }
12200
12233
  },
12201
12234
  setMembersHasNext: function setMembersHasNext(state, action) {
12202
- state.membersHasNext = action.payload.hasNext;
12235
+ var _action$payload7 = action.payload,
12236
+ channelId = _action$payload7.channelId,
12237
+ hasNext = _action$payload7.hasNext;
12238
+ state.channelsMembersHasNextMap[channelId] = hasNext;
12203
12239
  },
12204
12240
  setActionIsRestricted: function setActionIsRestricted(state, action) {
12205
- var _action$payload2 = action.payload,
12206
- isRestricted = _action$payload2.isRestricted,
12207
- fromChannel = _action$payload2.fromChannel,
12208
- members = _action$payload2.members;
12241
+ var _action$payload8 = action.payload,
12242
+ isRestricted = _action$payload8.isRestricted,
12243
+ fromChannel = _action$payload8.fromChannel,
12244
+ members = _action$payload8.members;
12209
12245
  state.restricted.isRestricted = isRestricted;
12210
12246
  state.restricted.fromChannel = fromChannel;
12211
12247
  state.restricted.members = members;
@@ -13422,19 +13458,22 @@ var changeMemberRoleAC = function changeMemberRoleAC(channelId, members) {
13422
13458
  }
13423
13459
  };
13424
13460
  };
13425
- var setMembersToListAC = function setMembersToListAC(members) {
13461
+ var setMembersToListAC = function setMembersToListAC(members, channelId) {
13426
13462
  return setMembersToList({
13427
- members: members
13463
+ members: members,
13464
+ channelId: channelId
13428
13465
  });
13429
13466
  };
13430
- var addMembersToListAC = function addMembersToListAC(members) {
13467
+ var addMembersToListAC = function addMembersToListAC(members, channelId) {
13431
13468
  return addMembersToList({
13432
- members: members
13469
+ members: members,
13470
+ channelId: channelId
13433
13471
  });
13434
13472
  };
13435
- var updateMembersAC = function updateMembersAC(members) {
13473
+ var updateMembersAC = function updateMembersAC(members, channelId) {
13436
13474
  return updateMembers({
13437
- members: members
13475
+ members: members,
13476
+ channelId: channelId
13438
13477
  });
13439
13478
  };
13440
13479
  var updateMembersPresenceAC = function updateMembersPresenceAC(usersMap) {
@@ -13442,14 +13481,16 @@ var updateMembersPresenceAC = function updateMembersPresenceAC(usersMap) {
13442
13481
  usersMap: usersMap
13443
13482
  });
13444
13483
  };
13445
- var setMembersLoadingStateAC = function setMembersLoadingStateAC(state) {
13484
+ var setMembersLoadingStateAC = function setMembersLoadingStateAC(loadingState, channelId) {
13446
13485
  return setMembersLoadingState({
13447
- state: state
13486
+ loadingState: loadingState,
13487
+ channelId: channelId
13448
13488
  });
13449
13489
  };
13450
- var removeMemberFromListAC = function removeMemberFromListAC(members) {
13490
+ var removeMemberFromListAC = function removeMemberFromListAC(members, channelId) {
13451
13491
  return removeMemberFromList({
13452
- members: members
13492
+ members: members,
13493
+ channelId: channelId
13453
13494
  });
13454
13495
  };
13455
13496
  var getRolesSuccessAC = function getRolesSuccessAC(roles) {
@@ -13463,9 +13504,10 @@ var getRolesFailAC = function getRolesFailAC(timeout, attempts) {
13463
13504
  attempts: attempts
13464
13505
  });
13465
13506
  };
13466
- var setMembersHasNextAC = function setMembersHasNextAC(hasNext) {
13507
+ var setMembersHasNextAC = function setMembersHasNextAC(hasNext, channelId) {
13467
13508
  return setMembersHasNext({
13468
- hasNext: hasNext
13509
+ hasNext: hasNext,
13510
+ channelId: channelId
13469
13511
  });
13470
13512
  };
13471
13513
  var setActionIsRestrictedAC = function setActionIsRestrictedAC(isRestricted, fromChannel, members) {
@@ -15045,7 +15087,7 @@ function watchForEvents() {
15045
15087
  };
15046
15088
  });
15047
15089
  _loop = /*#__PURE__*/_regenerator().m(function _callee() {
15048
- var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, _chan2, _channel, member, _channelExists, _activeChannelId, groupName, updateChannelData, _channel2, _channelExists2, _channel3, removedMembers, _activeChannelId2, _channelExists3, activeChannel, _updateChannelData, _groupName, _channel4, addedMembers, _activeChannelId3, _channelExists4, _updateChannelData2, _groupName2, onUpdateChannel, updatedChannel, _channelExists5, subject, avatarUrl, muted, mutedTill, metadata, _channel5, fields, _activeChannelId4, _groupName3, _channel6, message, messageToHandle, _channelFilterTypes, _activeChannelId5, _channelExists6, channelForAdd, hasNextMessage, _groupName4, showNotifications, tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelId, markerList, _channel7, _activeChannelId6, updateLastMessage, markersMap, activeChannelMessages, _iterator, _step, messageId, isPendingMessage, lastMessage, _channelId, _channel8, _channel9, deletedMessage, _activeChannelId7, _channelExists7, _channel0, _message, _activeChannelId8, _channelExists8, _channel1, user, _message2, reaction, isSelf, _activeChannelId9, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, _contactsMap, _getFromContacts2, _state, _theme, _accentColor, _textSecondary, _messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel10, pollDetails, _messageId, pollDetailsData, _activeChannelId0, addedVotes, deletedVotes, objs, _iterator2, _step2, vote, _iterator3, _step3, _vote, _i, _objs, obj, _store$getState$Messa, key, hasNext, _i2, _objs2, _obj, _pollDetailsData$chan3, _channel11, _pollDetails, _messageId2, _pollDetailsData, _activeChannelId1, _deletedVotes, _objs3, _iterator4, _step4, _vote2, _i3, _objs4, _obj2, _i4, _objs5, _obj3, _pollDetailsData2$cha, _channel12, _pollDetails2, _messageId3, _activeChannelId10, _pollDetailsData2, retractedVotes, _objs6, _iterator5, _step5, _vote4, _i5, _objs7, _obj4, _iterator6, _step6, _vote3, _channel13, _messageId4, _activeChannelId11, _obj5, _channel14, _user, _message3, _reaction, channelFromMap, _isSelf, _activeChannelId12, _channelUpdateParams, _channel15, _updatedChannel, _channel16, _activeChannelId13, channelExist, _channel17, _channel18, _channel19, _channel20, _channel21, _channel22, _channel23, _groupName5, _channel24, _groupName6, _channel25, members, _activeChannelId14, i, _channel26, _channel27, _channelId2, from, name, status, _t, _t2;
15090
+ var _yield$take, type, args, createdChannel, channelFilterTypes, getFromContacts, channelExists, _chan, channel, joinedMember, _chan2, customLoadMembersFunctions, joinMembersEvent, membersList, updateChannelData, _channel, member, _channelExists, activeChannelId, groupName, _updateChannelData, _channel2, _channelExists2, _channel3, removedMembers, _activeChannelId, _channelExists3, activeChannel, _updateChannelData2, _groupName, _channel4, addedMembers, _activeChannelId2, _channelExists4, _updateChannelData3, _customLoadMembersFunctions, addMembersEvent, _membersList, _groupName2, onUpdateChannel, updatedChannel, _channelExists5, subject, avatarUrl, muted, mutedTill, metadata, _channel5, fields, _activeChannelId3, _groupName3, _channel6, message, messageToHandle, _channelFilterTypes, _activeChannelId4, _channelExists6, channelForAdd, hasNextMessage, _groupName4, showNotifications, tabIsActive, _state$ThemeReducer$n, _state$ThemeReducer$n2, _state$ThemeReducer$n3, _state$ThemeReducer$n4, _state$ThemeReducer$n5, _state$ThemeReducer$n6, contactsMap, _getFromContacts, state, theme, accentColor, textSecondary, messageBody, channelId, markerList, _channel7, _activeChannelId5, updateLastMessage, markersMap, activeChannelMessages, _iterator, _step, messageId, isPendingMessage, lastMessage, _channelId, _channel8, _channel9, deletedMessage, _activeChannelId6, _channelExists7, _channel0, _message, _activeChannelId7, _channelExists8, _channel1, user, _message2, reaction, isSelf, _activeChannelId8, _state$ThemeReducer$n7, _state$ThemeReducer$n8, _state$ThemeReducer$n9, _state$ThemeReducer$n0, _state$ThemeReducer$n1, _state$ThemeReducer$n10, _contactsMap, _getFromContacts2, _state, _theme, _accentColor, _textSecondary, _messageBody, channelUpdateParams, _pollDetailsData$chan, _pollDetailsData$chan2, _channel10, pollDetails, _messageId, pollDetailsData, _activeChannelId9, addedVotes, deletedVotes, objs, _iterator2, _step2, vote, _iterator3, _step3, _vote, _i, _objs, obj, _store$getState$Messa, key, hasNext, _i2, _objs2, _obj, _pollDetailsData$chan3, _channel11, _pollDetails, _messageId2, _pollDetailsData, _activeChannelId0, _deletedVotes, _objs3, _iterator4, _step4, _vote2, _i3, _objs4, _obj2, _i4, _objs5, _obj3, _pollDetailsData2$cha, _channel12, _pollDetails2, _messageId3, _activeChannelId1, _pollDetailsData2, retractedVotes, _objs6, _iterator5, _step5, _vote4, _i5, _objs7, _obj4, _iterator6, _step6, _vote3, _channel13, _messageId4, _activeChannelId10, _obj5, _channel14, _user, _message3, _reaction, channelFromMap, _isSelf, _activeChannelId11, _channelUpdateParams, _channel15, _updatedChannel, _channel16, _activeChannelId12, channelExist, _channel17, _channel18, _channel19, _channel20, _channel21, _channel22, _channel23, _groupName5, _channel24, _groupName6, _channel25, members, _activeChannelId13, _customLoadMembersFunctions2, updateMembersEvent, _membersList2, i, _channel26, _channel27, _channelId2, from, name, status, _t, _t2, _t3, _t4;
15049
15091
  return _regenerator().w(function (_context) {
15050
15092
  while (1) switch (_context.p = _context.n) {
15051
15093
  case 0:
@@ -15057,7 +15099,7 @@ function watchForEvents() {
15057
15099
  type = _yield$take.type;
15058
15100
  args = _yield$take.args;
15059
15101
  _t = type;
15060
- _context.n = _t === CHANNEL_EVENT_TYPES.CREATE ? 2 : _t === CHANNEL_EVENT_TYPES.JOIN ? 7 : _t === CHANNEL_EVENT_TYPES.LEAVE ? 9 : _t === CHANNEL_EVENT_TYPES.BLOCK ? 22 : _t === CHANNEL_EVENT_TYPES.UNBLOCK ? 24 : _t === CHANNEL_EVENT_TYPES.KICK_MEMBERS ? 25 : _t === CHANNEL_EVENT_TYPES.ADD_MEMBERS ? 36 : _t === CHANNEL_EVENT_TYPES.UPDATE_CHANNEL ? 46 : _t === CHANNEL_EVENT_TYPES.MESSAGE ? 51 : _t === CHANNEL_EVENT_TYPES.MESSAGE_MARKERS_RECEIVED ? 66 : _t === CHANNEL_EVENT_TYPES.DELETE ? 79 : _t === CHANNEL_EVENT_TYPES.DELETE_MESSAGE ? 81 : _t === CHANNEL_EVENT_TYPES.EDIT_MESSAGE ? 86 : _t === CHANNEL_EVENT_TYPES.REACTION_ADDED ? 91 : _t === CHANNEL_EVENT_TYPES.POLL_ADDED ? 99 : _t === CHANNEL_EVENT_TYPES.POLL_DELETED ? 109 : _t === CHANNEL_EVENT_TYPES.POLL_RETRACTED ? 117 : _t === CHANNEL_EVENT_TYPES.POLL_CLOSED ? 125 : _t === CHANNEL_EVENT_TYPES.REACTION_DELETED ? 129 : _t === CHANNEL_EVENT_TYPES.UNREAD_MESSAGES_INFO ? 134 : _t === CHANNEL_EVENT_TYPES.CLEAR_HISTORY ? 137 : _t === CHANNEL_EVENT_TYPES.MUTE ? 143 : _t === CHANNEL_EVENT_TYPES.UNMUTE ? 145 : _t === CHANNEL_EVENT_TYPES.PINED ? 147 : _t === CHANNEL_EVENT_TYPES.UNPINED ? 149 : _t === CHANNEL_EVENT_TYPES.HIDE ? 151 : _t === CHANNEL_EVENT_TYPES.UNHIDE ? 153 : _t === CHANNEL_EVENT_TYPES.CHANNEL_MARKED_AS_UNREAD ? 155 : _t === CHANNEL_EVENT_TYPES.CHANNEL_MARKED_AS_READ ? 158 : _t === CHANNEL_EVENT_TYPES.CHANGE_ROLE ? 161 : _t === CHANNEL_EVENT_TYPES.FROZEN ? 168 : _t === CHANNEL_EVENT_TYPES.UNFROZEN ? 169 : _t === CHANNEL_EVENT_TYPES.CHANNEL_EVENT ? 170 : _t === CONNECTION_EVENT_TYPES.CONNECTION_STATUS_CHANGED ? 179 : 182;
15102
+ _context.n = _t === CHANNEL_EVENT_TYPES.CREATE ? 2 : _t === CHANNEL_EVENT_TYPES.JOIN ? 7 : _t === CHANNEL_EVENT_TYPES.LEAVE ? 17 : _t === CHANNEL_EVENT_TYPES.BLOCK ? 30 : _t === CHANNEL_EVENT_TYPES.UNBLOCK ? 32 : _t === CHANNEL_EVENT_TYPES.KICK_MEMBERS ? 33 : _t === CHANNEL_EVENT_TYPES.ADD_MEMBERS ? 44 : _t === CHANNEL_EVENT_TYPES.UPDATE_CHANNEL ? 59 : _t === CHANNEL_EVENT_TYPES.MESSAGE ? 64 : _t === CHANNEL_EVENT_TYPES.MESSAGE_MARKERS_RECEIVED ? 79 : _t === CHANNEL_EVENT_TYPES.DELETE ? 92 : _t === CHANNEL_EVENT_TYPES.DELETE_MESSAGE ? 94 : _t === CHANNEL_EVENT_TYPES.EDIT_MESSAGE ? 99 : _t === CHANNEL_EVENT_TYPES.REACTION_ADDED ? 104 : _t === CHANNEL_EVENT_TYPES.POLL_ADDED ? 112 : _t === CHANNEL_EVENT_TYPES.POLL_DELETED ? 122 : _t === CHANNEL_EVENT_TYPES.POLL_RETRACTED ? 130 : _t === CHANNEL_EVENT_TYPES.POLL_CLOSED ? 138 : _t === CHANNEL_EVENT_TYPES.REACTION_DELETED ? 142 : _t === CHANNEL_EVENT_TYPES.UNREAD_MESSAGES_INFO ? 147 : _t === CHANNEL_EVENT_TYPES.CLEAR_HISTORY ? 150 : _t === CHANNEL_EVENT_TYPES.MUTE ? 156 : _t === CHANNEL_EVENT_TYPES.UNMUTE ? 158 : _t === CHANNEL_EVENT_TYPES.PINED ? 160 : _t === CHANNEL_EVENT_TYPES.UNPINED ? 162 : _t === CHANNEL_EVENT_TYPES.HIDE ? 164 : _t === CHANNEL_EVENT_TYPES.UNHIDE ? 166 : _t === CHANNEL_EVENT_TYPES.CHANNEL_MARKED_AS_UNREAD ? 168 : _t === CHANNEL_EVENT_TYPES.CHANNEL_MARKED_AS_READ ? 171 : _t === CHANNEL_EVENT_TYPES.CHANGE_ROLE ? 174 : _t === CHANNEL_EVENT_TYPES.FROZEN ? 184 : _t === CHANNEL_EVENT_TYPES.UNFROZEN ? 185 : _t === CHANNEL_EVENT_TYPES.CHANNEL_EVENT ? 186 : _t === CONNECTION_EVENT_TYPES.CONNECTION_STATUS_CHANGED ? 195 : 198;
15061
15103
  break;
15062
15104
  case 2:
15063
15105
  createdChannel = args.createdChannel;
@@ -15091,227 +15133,307 @@ function watchForEvents() {
15091
15133
  addChannelToAllChannels(createdChannel);
15092
15134
  }
15093
15135
  case 6:
15094
- return _context.a(3, 183);
15136
+ return _context.a(3, 199);
15095
15137
  case 7:
15096
- channel = args.channel;
15138
+ channel = args.channel, joinedMember = args.joinedMember;
15097
15139
  log.info('channel JOIN ... . ', channel);
15098
- _context.n = 8;
15099
- return call(getActiveChannelId);
15100
- case 8:
15101
15140
  _chan2 = getChannelFromAllChannels(channel.id);
15102
15141
  if (!_chan2) {
15103
15142
  addChannelToAllChannels(channel);
15143
+ _chan2 = getChannelFromAllChannels(channel.id);
15144
+ }
15145
+ if (!_chan2) {
15146
+ _context.n = 16;
15147
+ break;
15148
+ }
15149
+ customLoadMembersFunctions = getCustomLoadMembersFunctions();
15150
+ joinMembersEvent = customLoadMembersFunctions === null || customLoadMembersFunctions === void 0 ? void 0 : customLoadMembersFunctions.joinMembersEvent;
15151
+ membersList = [];
15152
+ if (!joinMembersEvent) {
15153
+ _context.n = 10;
15154
+ break;
15104
15155
  }
15105
- return _context.a(3, 183);
15156
+ _context.n = 8;
15157
+ return call(joinMembersEvent, _chan2.id, [joinedMember], store.getState().MembersReducer.channelsMembersMap[_chan2.id] || []);
15158
+ case 8:
15159
+ membersList = _context.v;
15160
+ _context.n = 9;
15161
+ return put(setMembersToListAC(membersList, _chan2.id));
15106
15162
  case 9:
15163
+ _context.n = 11;
15164
+ break;
15165
+ case 10:
15166
+ _context.n = 11;
15167
+ return put(addMembersToListAC([joinedMember], _chan2.id));
15168
+ case 11:
15169
+ updateChannelOnAllChannels(_chan2.id, {
15170
+ memberCount: _chan2.memberCount + 1
15171
+ });
15172
+ if (!joinMembersEvent) {
15173
+ _context.n = 12;
15174
+ break;
15175
+ }
15176
+ _t2 = {
15177
+ members: membersList
15178
+ };
15179
+ _context.n = 14;
15180
+ break;
15181
+ case 12:
15182
+ _context.n = 13;
15183
+ return call(updateActiveChannelMembersAdd, [joinedMember]) || {};
15184
+ case 13:
15185
+ _t2 = _context.v;
15186
+ case 14:
15187
+ updateChannelData = _t2;
15188
+ _context.n = 15;
15189
+ return put(updateChannelDataAC(_chan2.id, _extends({
15190
+ memberCount: _chan2.memberCount + 1
15191
+ }, updateChannelData)));
15192
+ case 15:
15193
+ _context.n = 16;
15194
+ return put(updateSearchedChannelDataAC(_chan2.id, {
15195
+ memberCount: _chan2.memberCount + 1
15196
+ }, getChannelGroupName(_chan2)));
15197
+ case 16:
15198
+ return _context.a(3, 199);
15199
+ case 17:
15107
15200
  _channel = args.channel, member = args.member;
15108
15201
  log.info('channel LEAVE ... ', _channel, member);
15109
15202
  _channelExists = checkChannelExists(_channel.id);
15110
- _context.n = 10;
15203
+ _context.n = 18;
15111
15204
  return call(getActiveChannelId);
15112
- case 10:
15113
- _activeChannelId = _context.v;
15205
+ case 18:
15206
+ activeChannelId = _context.v;
15114
15207
  if (!(member.id === SceytChatClient.user.id)) {
15115
- _context.n = 15;
15208
+ _context.n = 23;
15116
15209
  break;
15117
15210
  }
15118
- _context.n = 11;
15211
+ _context.n = 19;
15119
15212
  return put(switchChannelActionAC(null));
15120
- case 11:
15121
- _context.n = 12;
15213
+ case 19:
15214
+ _context.n = 20;
15122
15215
  return put(removeChannelAC(_channel.id));
15123
- case 12:
15216
+ case 20:
15124
15217
  removeChannelFromMap(_channel.id);
15125
15218
  deleteChannelFromAllChannels(_channel.id);
15126
- _context.n = 13;
15219
+ _context.n = 21;
15127
15220
  return put(setChannelToRemoveAC(_channel));
15128
- case 13:
15129
- _context.n = 14;
15221
+ case 21:
15222
+ _context.n = 22;
15130
15223
  return put(removeChannelCachesAC(_channel.id));
15131
- case 14:
15132
- _context.n = 21;
15224
+ case 22:
15225
+ _context.n = 29;
15133
15226
  break;
15134
- case 15:
15227
+ case 23:
15135
15228
  groupName = getChannelGroupName(_channel);
15136
15229
  if (!_channelExists) {
15137
- _context.n = 19;
15230
+ _context.n = 27;
15138
15231
  break;
15139
15232
  }
15140
- updateChannelData = {};
15141
- if (!(_activeChannelId === _channel.id)) {
15142
- _context.n = 18;
15233
+ _updateChannelData = {};
15234
+ if (!(activeChannelId === _channel.id)) {
15235
+ _context.n = 26;
15143
15236
  break;
15144
15237
  }
15145
- _context.n = 16;
15146
- return put(removeMemberFromListAC([member]));
15147
- case 16:
15148
- _context.n = 17;
15238
+ _context.n = 24;
15239
+ return put(removeMemberFromListAC([member], _channel.id));
15240
+ case 24:
15241
+ _context.n = 25;
15149
15242
  return call(updateActiveChannelMembersRemove, [member]) || {};
15150
- case 17:
15151
- updateChannelData = _context.v;
15152
- case 18:
15153
- _context.n = 19;
15243
+ case 25:
15244
+ _updateChannelData = _context.v;
15245
+ case 26:
15246
+ _context.n = 27;
15154
15247
  return put(updateChannelDataAC(_channel.id, _extends({
15155
15248
  memberCount: _channel.memberCount,
15156
15249
  muted: _channel.muted,
15157
15250
  mutedTill: _channel.mutedTill
15158
- }, updateChannelData)));
15159
- case 19:
15160
- _context.n = 20;
15251
+ }, _updateChannelData)));
15252
+ case 27:
15253
+ _context.n = 28;
15161
15254
  return put(updateSearchedChannelDataAC(_channel.id, {
15162
15255
  memberCount: _channel.memberCount,
15163
15256
  muted: _channel.muted,
15164
15257
  mutedTill: _channel.mutedTill
15165
15258
  }, groupName));
15166
- case 20:
15259
+ case 28:
15167
15260
  updateChannelOnAllChannels(_channel.id, {
15168
15261
  memberCount: _channel.memberCount,
15169
15262
  muted: _channel.muted,
15170
15263
  mutedTill: _channel.mutedTill
15171
15264
  });
15172
- case 21:
15173
- return _context.a(3, 183);
15174
- case 22:
15265
+ case 29:
15266
+ return _context.a(3, 199);
15267
+ case 30:
15175
15268
  log.info('channel BLOCK ... ');
15176
15269
  _channel2 = args.channel;
15177
15270
  _channelExists2 = checkChannelExists(_channel2.id);
15178
15271
  if (!_channelExists2) {
15179
- _context.n = 23;
15272
+ _context.n = 31;
15180
15273
  break;
15181
15274
  }
15182
- _context.n = 23;
15275
+ _context.n = 31;
15183
15276
  return put(removeChannelAC(_channel2.id));
15184
- case 23:
15185
- return _context.a(3, 183);
15186
- case 24:
15277
+ case 31:
15278
+ return _context.a(3, 199);
15279
+ case 32:
15187
15280
  log.info('channel UNBLOCK ... ');
15188
- return _context.a(3, 183);
15189
- case 25:
15281
+ return _context.a(3, 199);
15282
+ case 33:
15190
15283
  _channel3 = args.channel, removedMembers = args.removedMembers;
15191
15284
  log.info('channel KICK_MEMBERS ... ', removedMembers);
15192
- _context.n = 26;
15285
+ _context.n = 34;
15193
15286
  return call(getActiveChannelId);
15194
- case 26:
15195
- _activeChannelId2 = _context.v;
15287
+ case 34:
15288
+ _activeChannelId = _context.v;
15196
15289
  _channelExists3 = checkChannelExists(_channel3.id);
15197
15290
  if (!_channelExists3) {
15198
- _context.n = 35;
15291
+ _context.n = 43;
15199
15292
  break;
15200
15293
  }
15201
15294
  if (!removedMembers.find(function (mem) {
15202
15295
  return mem.id === SceytChatClient.user.id;
15203
15296
  })) {
15204
- _context.n = 30;
15297
+ _context.n = 38;
15205
15298
  break;
15206
15299
  }
15207
15300
  removeChannelFromMap(_channel3.id);
15208
- _context.n = 27;
15301
+ _context.n = 35;
15209
15302
  return put(removeChannelAC(_channel3.id));
15210
- case 27:
15211
- _context.n = 28;
15303
+ case 35:
15304
+ _context.n = 36;
15212
15305
  return call(getLastChannelFromMap);
15213
- case 28:
15306
+ case 36:
15214
15307
  activeChannel = _context.v;
15215
15308
  if (!activeChannel) {
15216
- _context.n = 29;
15309
+ _context.n = 37;
15217
15310
  break;
15218
15311
  }
15219
- _context.n = 29;
15312
+ _context.n = 37;
15220
15313
  return put(switchChannelActionAC(JSON.parse(JSON.stringify(activeChannel))));
15221
- case 29:
15222
- _context.n = 35;
15314
+ case 37:
15315
+ _context.n = 43;
15223
15316
  break;
15224
- case 30:
15225
- _updateChannelData = {};
15226
- if (!(_activeChannelId2 === _channel3.id)) {
15227
- _context.n = 33;
15317
+ case 38:
15318
+ _updateChannelData2 = {};
15319
+ if (!(_activeChannelId === _channel3.id)) {
15320
+ _context.n = 41;
15228
15321
  break;
15229
15322
  }
15230
- _context.n = 31;
15231
- return put(removeMemberFromListAC(removedMembers));
15232
- case 31:
15233
- _context.n = 32;
15323
+ _context.n = 39;
15324
+ return put(removeMemberFromListAC(removedMembers, _channel3.id));
15325
+ case 39:
15326
+ _context.n = 40;
15234
15327
  return call(updateActiveChannelMembersRemove, removedMembers) || {};
15235
- case 32:
15236
- _updateChannelData = _context.v;
15237
- case 33:
15328
+ case 40:
15329
+ _updateChannelData2 = _context.v;
15330
+ case 41:
15238
15331
  _groupName = getChannelGroupName(_channel3);
15239
- _context.n = 34;
15332
+ _context.n = 42;
15240
15333
  return put(updateSearchedChannelDataAC(_channel3.id, {
15241
15334
  memberCount: _channel3.memberCount,
15242
15335
  muted: _channel3.muted,
15243
15336
  mutedTill: _channel3.mutedTill
15244
15337
  }, _groupName));
15245
- case 34:
15246
- _context.n = 35;
15338
+ case 42:
15339
+ _context.n = 43;
15247
15340
  return put(updateChannelDataAC(_channel3.id, _extends({
15248
15341
  memberCount: _channel3.memberCount,
15249
15342
  muted: _channel3.muted,
15250
15343
  mutedTill: _channel3.mutedTill
15251
- }, _updateChannelData)));
15252
- case 35:
15344
+ }, _updateChannelData2)));
15345
+ case 43:
15253
15346
  updateChannelOnAllChannels(_channel3.id, {
15254
15347
  memberCount: _channel3.memberCount,
15255
15348
  muted: _channel3.muted,
15256
15349
  mutedTill: _channel3.mutedTill
15257
15350
  });
15258
- return _context.a(3, 183);
15259
- case 36:
15351
+ return _context.a(3, 199);
15352
+ case 44:
15260
15353
  _channel4 = args.channel, addedMembers = args.addedMembers;
15261
15354
  log.info('channel ADD_MEMBERS ... ', addedMembers);
15262
- _context.n = 37;
15355
+ _context.n = 45;
15263
15356
  return call(getActiveChannelId);
15264
- case 37:
15265
- _activeChannelId3 = _context.v;
15357
+ case 45:
15358
+ _activeChannelId2 = _context.v;
15266
15359
  _channelExists4 = checkChannelExists(_channel4.id);
15267
15360
  if (!_channelExists4) {
15268
- _context.n = 42;
15361
+ _context.n = 55;
15269
15362
  break;
15270
15363
  }
15271
- _updateChannelData2 = {};
15272
- if (!(_activeChannelId3 === _channel4.id)) {
15273
- _context.n = 40;
15364
+ _updateChannelData3 = {};
15365
+ if (!(_activeChannelId2 === _channel4.id)) {
15366
+ _context.n = 53;
15274
15367
  break;
15275
15368
  }
15276
- _context.n = 38;
15277
- return put(addMembersToListAC(addedMembers));
15278
- case 38:
15279
- _context.n = 39;
15369
+ _customLoadMembersFunctions = getCustomLoadMembersFunctions();
15370
+ addMembersEvent = _customLoadMembersFunctions === null || _customLoadMembersFunctions === void 0 ? void 0 : _customLoadMembersFunctions.addMembersEvent;
15371
+ _membersList = [];
15372
+ if (!addMembersEvent) {
15373
+ _context.n = 48;
15374
+ break;
15375
+ }
15376
+ _context.n = 46;
15377
+ return call(addMembersEvent, _channel4.id, addedMembers, store.getState().MembersReducer.channelsMembersMap[_channel4.id] || []);
15378
+ case 46:
15379
+ _membersList = _context.v;
15380
+ _context.n = 47;
15381
+ return put(setMembersToListAC(_membersList, _channel4.id));
15382
+ case 47:
15383
+ _context.n = 49;
15384
+ break;
15385
+ case 48:
15386
+ _context.n = 49;
15387
+ return put(addMembersToListAC(addedMembers, _channel4.id));
15388
+ case 49:
15389
+ if (!addMembersEvent) {
15390
+ _context.n = 50;
15391
+ break;
15392
+ }
15393
+ _t3 = {
15394
+ members: _membersList
15395
+ };
15396
+ _context.n = 52;
15397
+ break;
15398
+ case 50:
15399
+ _context.n = 51;
15280
15400
  return call(updateActiveChannelMembersAdd, addedMembers) || {};
15281
- case 39:
15282
- _updateChannelData2 = _context.v;
15283
- case 40:
15284
- _context.n = 41;
15401
+ case 51:
15402
+ _t3 = _context.v;
15403
+ case 52:
15404
+ _updateChannelData3 = _t3;
15405
+ case 53:
15406
+ _context.n = 54;
15285
15407
  return put(updateChannelDataAC(_channel4.id, _extends({
15286
15408
  memberCount: _channel4.memberCount,
15287
15409
  muted: _channel4.muted,
15288
15410
  mutedTill: _channel4.mutedTill
15289
- }, _updateChannelData2)));
15290
- case 41:
15291
- _context.n = 44;
15411
+ }, _updateChannelData3)));
15412
+ case 54:
15413
+ _context.n = 57;
15292
15414
  break;
15293
- case 42:
15294
- _context.n = 43;
15415
+ case 55:
15416
+ _context.n = 56;
15295
15417
  return call(setChannelInMap, _channel4);
15296
- case 43:
15297
- _context.n = 44;
15418
+ case 56:
15419
+ _context.n = 57;
15298
15420
  return put(setAddedToChannelAC(JSON.parse(JSON.stringify(_channel4))));
15299
- case 44:
15421
+ case 57:
15300
15422
  _groupName2 = getChannelGroupName(_channel4);
15301
- _context.n = 45;
15423
+ _context.n = 58;
15302
15424
  return put(updateSearchedChannelDataAC(_channel4.id, {
15303
15425
  memberCount: _channel4.memberCount,
15304
15426
  muted: _channel4.muted,
15305
15427
  mutedTill: _channel4.mutedTill
15306
15428
  }, _groupName2));
15307
- case 45:
15429
+ case 58:
15308
15430
  updateChannelOnAllChannels(_channel4.id, {
15309
15431
  memberCount: _channel4.memberCount,
15310
15432
  muted: _channel4.muted,
15311
15433
  mutedTill: _channel4.mutedTill
15312
15434
  });
15313
- return _context.a(3, 183);
15314
- case 46:
15435
+ return _context.a(3, 199);
15436
+ case 59:
15315
15437
  onUpdateChannel = getOnUpdateChannel();
15316
15438
  log.info('channel UPDATE_CHANNEL ... ');
15317
15439
  updatedChannel = args.updatedChannel;
@@ -15340,39 +15462,39 @@ function watchForEvents() {
15340
15462
  onUpdateChannel(updatedChannel, fields);
15341
15463
  }
15342
15464
  if (!_channelExists5) {
15343
- _context.n = 49;
15465
+ _context.n = 62;
15344
15466
  break;
15345
15467
  }
15346
- _context.n = 47;
15468
+ _context.n = 60;
15347
15469
  return put(updateChannelDataAC(updatedChannel.id, {
15348
15470
  subject: subject,
15349
15471
  avatarUrl: avatarUrl,
15350
15472
  muted: muted,
15351
15473
  mutedTill: mutedTill
15352
15474
  }));
15353
- case 47:
15354
- _context.n = 48;
15475
+ case 60:
15476
+ _context.n = 61;
15355
15477
  return call(getActiveChannelId);
15356
- case 48:
15357
- _activeChannelId4 = _context.v;
15358
- if (!(_activeChannelId4 === updatedChannel.id)) {
15359
- _context.n = 49;
15478
+ case 61:
15479
+ _activeChannelId3 = _context.v;
15480
+ if (!(_activeChannelId3 === updatedChannel.id)) {
15481
+ _context.n = 62;
15360
15482
  break;
15361
15483
  }
15362
- _context.n = 49;
15484
+ _context.n = 62;
15363
15485
  return put(setActiveChannelAC(_extends({}, updatedChannel, {
15364
15486
  metadata: isJSON(metadata) ? JSON.parse(metadata) : metadata
15365
15487
  })));
15366
- case 49:
15488
+ case 62:
15367
15489
  _groupName3 = getChannelGroupName(updatedChannel);
15368
- _context.n = 50;
15490
+ _context.n = 63;
15369
15491
  return put(updateSearchedChannelDataAC(updatedChannel.id, {
15370
15492
  subject: subject,
15371
15493
  avatarUrl: avatarUrl,
15372
15494
  muted: muted,
15373
15495
  mutedTill: mutedTill
15374
15496
  }, _groupName3));
15375
- case 50:
15497
+ case 63:
15376
15498
  updateChannelOnAllChannels(updatedChannel.id, {
15377
15499
  subject: subject,
15378
15500
  avatarUrl: avatarUrl,
@@ -15380,60 +15502,60 @@ function watchForEvents() {
15380
15502
  mutedTill: mutedTill,
15381
15503
  metadata: isJSON(metadata) ? JSON.parse(metadata) : metadata
15382
15504
  });
15383
- return _context.a(3, 183);
15384
- case 51:
15505
+ return _context.a(3, 199);
15506
+ case 64:
15385
15507
  _channel6 = args.channel, message = args.message;
15386
15508
  log.info('channel MESSAGE ... id : ', message.id, ', channel.id: ', _channel6.id);
15387
15509
  messageToHandle = handleNewMessages ? handleNewMessages(message, _channel6) : message;
15388
15510
  _channelFilterTypes = getChannelTypesFilter();
15389
15511
  if (!(messageToHandle && _channel6 && (_channelFilterTypes !== null && _channelFilterTypes !== void 0 && _channelFilterTypes.length ? _channelFilterTypes.includes(_channel6.type) : true))) {
15390
- _context.n = 65;
15512
+ _context.n = 78;
15391
15513
  break;
15392
15514
  }
15393
15515
  _channel6.metadata = isJSON(_channel6.metadata) ? JSON.parse(_channel6.metadata) : _channel6.metadata;
15394
- _activeChannelId5 = getActiveChannelId();
15516
+ _activeChannelId4 = getActiveChannelId();
15395
15517
  _channelExists6 = checkChannelExists(_channel6.id);
15396
15518
  channelForAdd = JSON.parse(JSON.stringify(_channel6));
15397
- _context.n = 52;
15519
+ _context.n = 65;
15398
15520
  return put(addChannelAC(channelForAdd));
15399
- case 52:
15521
+ case 65:
15400
15522
  if (_channelExists6) {
15401
- _context.n = 53;
15523
+ _context.n = 66;
15402
15524
  break;
15403
15525
  }
15404
15526
  setChannelInMap(_channel6);
15405
- _context.n = 54;
15527
+ _context.n = 67;
15406
15528
  break;
15407
- case 53:
15529
+ case 66:
15408
15530
  if (message.repliedInThread) {
15409
- _context.n = 54;
15531
+ _context.n = 67;
15410
15532
  break;
15411
15533
  }
15412
- _context.n = 54;
15534
+ _context.n = 67;
15413
15535
  return put(updateChannelLastMessageAC(message, channelForAdd));
15414
- case 54:
15415
- if (!(_channel6.id === _activeChannelId5)) {
15416
- _context.n = 56;
15536
+ case 67:
15537
+ if (!(_channel6.id === _activeChannelId4)) {
15538
+ _context.n = 69;
15417
15539
  break;
15418
15540
  }
15419
15541
  if (getHasNextCached()) {
15420
- _context.n = 55;
15542
+ _context.n = 68;
15421
15543
  break;
15422
15544
  }
15423
- _context.n = 55;
15545
+ _context.n = 68;
15424
15546
  return put(addMessageAC(message));
15425
- case 55:
15547
+ case 68:
15426
15548
  addAllMessages([message], MESSAGE_LOAD_DIRECTION.NEXT);
15427
15549
  hasNextMessage = store.getState().MessageReducer.messagesHasNext;
15428
15550
  if (!(!getHasNextCached() && !hasNextMessage)) {
15429
- _context.n = 56;
15551
+ _context.n = 69;
15430
15552
  break;
15431
15553
  }
15432
- _context.n = 56;
15554
+ _context.n = 69;
15433
15555
  return put(scrollToNewMessageAC(true, false, true));
15434
- case 56:
15556
+ case 69:
15435
15557
  addMessageToMap(_channel6.id, message);
15436
- _context.n = 57;
15558
+ _context.n = 70;
15437
15559
  return put(updateChannelDataAC(_channel6.id, {
15438
15560
  messageCount: channelForAdd.messageCount,
15439
15561
  unread: channelForAdd.unread,
@@ -15449,9 +15571,9 @@ function watchForEvents() {
15449
15571
  userMessageReactions: [],
15450
15572
  lastReactedMessage: null
15451
15573
  }));
15452
- case 57:
15574
+ case 70:
15453
15575
  _groupName4 = getChannelGroupName(_channel6);
15454
- _context.n = 58;
15576
+ _context.n = 71;
15455
15577
  return put(updateSearchedChannelDataAC(_channel6.id, {
15456
15578
  messageCount: channelForAdd.messageCount,
15457
15579
  unread: channelForAdd.unread,
@@ -15467,27 +15589,27 @@ function watchForEvents() {
15467
15589
  userMessageReactions: [],
15468
15590
  lastReactedMessage: null
15469
15591
  }, _groupName4));
15470
- case 58:
15592
+ case 71:
15471
15593
  showNotifications = getShowNotifications();
15472
15594
  if (!(showNotifications && !message.silent && message.user.id !== SceytChatClient.user.id && !_channel6.muted)) {
15473
- _context.n = 61;
15595
+ _context.n = 74;
15474
15596
  break;
15475
15597
  }
15476
15598
  if (!(Notification.permission === 'granted')) {
15477
- _context.n = 61;
15599
+ _context.n = 74;
15478
15600
  break;
15479
15601
  }
15480
- _context.n = 59;
15602
+ _context.n = 72;
15481
15603
  return select(browserTabIsActiveSelector);
15482
- case 59:
15604
+ case 72:
15483
15605
  tabIsActive = _context.v;
15484
- if (!(document.visibilityState !== 'visible' || !tabIsActive || _channel6.id !== _activeChannelId5)) {
15485
- _context.n = 61;
15606
+ if (!(document.visibilityState !== 'visible' || !tabIsActive || _channel6.id !== _activeChannelId4)) {
15607
+ _context.n = 74;
15486
15608
  break;
15487
15609
  }
15488
- _context.n = 60;
15610
+ _context.n = 73;
15489
15611
  return select(contactsMapSelector);
15490
- case 60:
15612
+ case 73:
15491
15613
  contactsMap = _context.v;
15492
15614
  _getFromContacts = getShowOnlyContactUsers();
15493
15615
  state = store.getState();
@@ -15507,20 +15629,20 @@ function watchForEvents() {
15507
15629
  setNotification(messageBody, message.user, _channel6, undefined, message.attachments && message.attachments.length ? message.attachments.find(function (att) {
15508
15630
  return att.type !== attachmentTypes.link;
15509
15631
  }) : undefined);
15510
- case 61:
15632
+ case 74:
15511
15633
  if (!(message.repliedInThread && message.parentMessage.id)) {
15512
- _context.n = 63;
15634
+ _context.n = 76;
15513
15635
  break;
15514
15636
  }
15515
- _context.n = 62;
15637
+ _context.n = 75;
15516
15638
  return put(markMessagesAsDeliveredAC(message.parentMessage.id, [message.id]));
15517
- case 62:
15518
- _context.n = 64;
15639
+ case 75:
15640
+ _context.n = 77;
15519
15641
  break;
15520
- case 63:
15521
- _context.n = 64;
15642
+ case 76:
15643
+ _context.n = 77;
15522
15644
  return put(markMessagesAsDeliveredAC(_channel6.id, [message.id]));
15523
- case 64:
15645
+ case 77:
15524
15646
  updateChannelOnAllChannels(_channel6.id, {
15525
15647
  messageCount: channelForAdd.messageCount,
15526
15648
  unread: channelForAdd.unread,
@@ -15537,50 +15659,50 @@ function watchForEvents() {
15537
15659
  userMessageReactions: _channel6.userMessageReactions
15538
15660
  });
15539
15661
  updateChannelLastMessageOnAllChannels(_channel6.id, _channel6.lastMessage);
15540
- case 65:
15541
- return _context.a(3, 183);
15542
- case 66:
15662
+ case 78:
15663
+ return _context.a(3, 199);
15664
+ case 79:
15543
15665
  channelId = args.channelId, markerList = args.markerList;
15544
- _context.n = 67;
15666
+ _context.n = 80;
15545
15667
  return call(getChannelFromMap, channelId);
15546
- case 67:
15668
+ case 80:
15547
15669
  _channel7 = _context.v;
15548
15670
  log.info('channel MESSAGE_MARKERS_RECEIVED ... channel: ', _channel7, 'markers list: ', markerList);
15549
15671
  if (!_channel7) {
15550
- _context.n = 78;
15672
+ _context.n = 91;
15551
15673
  break;
15552
15674
  }
15553
- _context.n = 68;
15675
+ _context.n = 81;
15554
15676
  return call(getActiveChannelId);
15555
- case 68:
15556
- _activeChannelId6 = _context.v;
15677
+ case 81:
15678
+ _activeChannelId5 = _context.v;
15557
15679
  updateLastMessage = false;
15558
15680
  markersMap = {};
15559
- activeChannelMessages = getMessagesFromMap(_activeChannelId6);
15681
+ activeChannelMessages = getMessagesFromMap(_activeChannelId5);
15560
15682
  _iterator = _createForOfIteratorHelperLoose(markerList.messageIds);
15561
- case 69:
15683
+ case 82:
15562
15684
  if ((_step = _iterator()).done) {
15563
- _context.n = 74;
15685
+ _context.n = 87;
15564
15686
  break;
15565
15687
  }
15566
15688
  messageId = _step.value;
15567
15689
  if (!(activeChannelMessages !== null && activeChannelMessages !== void 0 && activeChannelMessages[messageId])) {
15568
- _context.n = 71;
15690
+ _context.n = 84;
15569
15691
  break;
15570
15692
  }
15571
- _context.n = 70;
15693
+ _context.n = 83;
15572
15694
  return put(removePendingMessageAC(channelId, messageId));
15573
- case 70:
15574
- _context.n = 72;
15695
+ case 83:
15696
+ _context.n = 85;
15575
15697
  break;
15576
- case 71:
15577
- isPendingMessage = getMessageFromPendingMessagesMap(_activeChannelId6, messageId);
15698
+ case 84:
15699
+ isPendingMessage = getMessageFromPendingMessagesMap(_activeChannelId5, messageId);
15578
15700
  if (isPendingMessage) {
15579
- updatePendingMessageOnMap(_activeChannelId6, messageId, {
15701
+ updatePendingMessageOnMap(_activeChannelId5, messageId, {
15580
15702
  deliveryStatus: markerList.name
15581
15703
  });
15582
15704
  }
15583
- case 72:
15705
+ case 85:
15584
15706
  markersMap[messageId] = true;
15585
15707
  if (_channel7) {
15586
15708
  if (_channel7.lastMessage && messageId === _channel7.lastMessage.id) {
@@ -15591,102 +15713,102 @@ function watchForEvents() {
15591
15713
  id: messageId,
15592
15714
  deliveryStatus: markerList.name
15593
15715
  });
15594
- case 73:
15595
- _context.n = 69;
15716
+ case 86:
15717
+ _context.n = 82;
15596
15718
  break;
15597
- case 74:
15719
+ case 87:
15598
15720
  if (!updateLastMessage) {
15599
- _context.n = 75;
15721
+ _context.n = 88;
15600
15722
  break;
15601
15723
  }
15602
15724
  lastMessage = _extends({}, _channel7.lastMessage, updateMessageDeliveryStatusAndMarkers(_channel7.lastMessage, markerList.name));
15603
15725
  updateChannelLastMessageOnAllChannels(_channel7.id, lastMessage);
15604
- _context.n = 75;
15726
+ _context.n = 88;
15605
15727
  return put(updateChannelLastMessageStatusAC(lastMessage, _channel7));
15606
- case 75:
15607
- if (!(_activeChannelId6 === channelId)) {
15608
- _context.n = 77;
15728
+ case 88:
15729
+ if (!(_activeChannelId5 === channelId)) {
15730
+ _context.n = 90;
15609
15731
  break;
15610
15732
  }
15611
- _context.n = 76;
15733
+ _context.n = 89;
15612
15734
  return put(updateMessagesStatusAC(markerList.name, markersMap));
15613
- case 76:
15735
+ case 89:
15614
15736
  updateMarkersOnAllMessages(markersMap, markerList.name);
15615
- case 77:
15737
+ case 90:
15616
15738
  updateMessageStatusOnMap(_channel7.id, {
15617
15739
  name: markerList.name,
15618
15740
  markersMap: markersMap
15619
15741
  });
15620
15742
  updateMessageStatusOnAllMessages(markerList.name, markersMap);
15621
- _context.n = 78;
15743
+ _context.n = 91;
15622
15744
  return put(updateMessagesMarkersAC(channelId, markerList.name, markerList));
15623
- case 78:
15624
- return _context.a(3, 183);
15625
- case 79:
15745
+ case 91:
15746
+ return _context.a(3, 199);
15747
+ case 92:
15626
15748
  _channelId = args.channelId;
15627
15749
  log.info('channel DELETE ... ');
15628
15750
  _channel8 = getChannelFromMap(_channelId);
15629
- _context.n = 80;
15751
+ _context.n = 93;
15630
15752
  return put(setChannelToRemoveAC(_channel8));
15631
- case 80:
15753
+ case 93:
15632
15754
  deleteChannelFromAllChannels(_channelId);
15633
- return _context.a(3, 183);
15634
- case 81:
15755
+ return _context.a(3, 199);
15756
+ case 94:
15635
15757
  _channel9 = args.channel, deletedMessage = args.deletedMessage;
15636
- _context.n = 82;
15758
+ _context.n = 95;
15637
15759
  return call(getActiveChannelId);
15638
- case 82:
15639
- _activeChannelId7 = _context.v;
15760
+ case 95:
15761
+ _activeChannelId6 = _context.v;
15640
15762
  log.info('channel DELETE_MESSAGE ... ');
15641
15763
  _channelExists7 = checkChannelExists(_channel9.id);
15642
- if (!(_channel9.id === _activeChannelId7)) {
15643
- _context.n = 83;
15764
+ if (!(_channel9.id === _activeChannelId6)) {
15765
+ _context.n = 96;
15644
15766
  break;
15645
15767
  }
15646
15768
  updateMessageOnAllMessages(deletedMessage.id, deletedMessage);
15647
- _context.n = 83;
15769
+ _context.n = 96;
15648
15770
  return put(updateMessageAC(deletedMessage.id, deletedMessage));
15649
- case 83:
15771
+ case 96:
15650
15772
  updateMessageOnMap(_channel9.id, {
15651
15773
  messageId: deletedMessage.id,
15652
15774
  params: deletedMessage
15653
15775
  });
15654
15776
  if (!_channelExists7) {
15655
- _context.n = 85;
15777
+ _context.n = 98;
15656
15778
  break;
15657
15779
  }
15658
- _context.n = 84;
15780
+ _context.n = 97;
15659
15781
  return put(updateChannelDataAC(_channel9.id, {
15660
15782
  newMessageCount: _channel9.newMessageCount,
15661
15783
  muted: _channel9.muted,
15662
15784
  mutedTill: _channel9.mutedTill
15663
15785
  }));
15664
- case 84:
15786
+ case 97:
15665
15787
  if (!(_channel9.lastMessage.id === deletedMessage.id)) {
15666
- _context.n = 85;
15788
+ _context.n = 98;
15667
15789
  break;
15668
15790
  }
15669
- _context.n = 85;
15791
+ _context.n = 98;
15670
15792
  return put(updateChannelLastMessageAC(deletedMessage, _channel9));
15671
- case 85:
15793
+ case 98:
15672
15794
  updateChannelOnAllChannels(_channel9.id, {
15673
15795
  newMessageCount: _channel9.newMessageCount,
15674
15796
  muted: _channel9.muted,
15675
15797
  mutedTill: _channel9.mutedTill
15676
15798
  }, deletedMessage);
15677
- return _context.a(3, 183);
15678
- case 86:
15799
+ return _context.a(3, 199);
15800
+ case 99:
15679
15801
  _channel0 = args.channel, _message = args.message;
15680
- _context.n = 87;
15802
+ _context.n = 100;
15681
15803
  return call(getActiveChannelId);
15682
- case 87:
15683
- _activeChannelId8 = _context.v;
15804
+ case 100:
15805
+ _activeChannelId7 = _context.v;
15684
15806
  _channelExists8 = checkChannelExists(_channel0.id);
15685
- if (!(_channel0.id === _activeChannelId8)) {
15686
- _context.n = 89;
15807
+ if (!(_channel0.id === _activeChannelId7)) {
15808
+ _context.n = 102;
15687
15809
  break;
15688
15810
  }
15689
- _context.n = 88;
15811
+ _context.n = 101;
15690
15812
  return put(updateMessageAC(_message.id, {
15691
15813
  body: _message.body,
15692
15814
  state: _message.state,
@@ -15695,7 +15817,7 @@ function watchForEvents() {
15695
15817
  mentionedUsers: _message.mentionedUsers,
15696
15818
  updatedAt: _message.updatedAt
15697
15819
  }));
15698
- case 88:
15820
+ case 101:
15699
15821
  updateMessageOnAllMessages(_message.id, {
15700
15822
  body: _message.body,
15701
15823
  state: _message.state,
@@ -15704,18 +15826,18 @@ function watchForEvents() {
15704
15826
  mentionedUsers: _message.mentionedUsers,
15705
15827
  updatedAt: _message.updatedAt
15706
15828
  });
15707
- case 89:
15829
+ case 102:
15708
15830
  if (!_channelExists8) {
15709
- _context.n = 90;
15831
+ _context.n = 103;
15710
15832
  break;
15711
15833
  }
15712
15834
  if (!(_channel0.lastMessage.id === _message.id)) {
15713
- _context.n = 90;
15835
+ _context.n = 103;
15714
15836
  break;
15715
15837
  }
15716
- _context.n = 90;
15838
+ _context.n = 103;
15717
15839
  return put(updateChannelLastMessageAC(_message, _channel0));
15718
- case 90:
15840
+ case 103:
15719
15841
  if (checkChannelExistsOnMessagesMap(_channel0.id)) {
15720
15842
  updateMessageOnMap(_channel0.id, {
15721
15843
  messageId: _message.id,
@@ -15723,38 +15845,38 @@ function watchForEvents() {
15723
15845
  });
15724
15846
  }
15725
15847
  updateChannelOnAllChannels(_channel0.id, {}, _message);
15726
- return _context.a(3, 183);
15727
- case 91:
15848
+ return _context.a(3, 199);
15849
+ case 104:
15728
15850
  _channel1 = args.channel, user = args.user, _message2 = args.message, reaction = args.reaction;
15729
15851
  isSelf = user.id === SceytChatClient.user.id;
15730
- _context.n = 92;
15852
+ _context.n = 105;
15731
15853
  return call(getActiveChannelId);
15732
- case 92:
15733
- _activeChannelId9 = _context.v;
15734
- if (!(_channel1.id === _activeChannelId9)) {
15735
- _context.n = 94;
15854
+ case 105:
15855
+ _activeChannelId8 = _context.v;
15856
+ if (!(_channel1.id === _activeChannelId8)) {
15857
+ _context.n = 107;
15736
15858
  break;
15737
15859
  }
15738
- _context.n = 93;
15860
+ _context.n = 106;
15739
15861
  return put(addReactionToMessageAC(_message2, reaction, isSelf));
15740
- case 93:
15862
+ case 106:
15741
15863
  addReactionOnAllMessages(_message2, reaction, true);
15742
- case 94:
15864
+ case 107:
15743
15865
  if (!(_message2.user.id === SceytChatClient.user.id)) {
15744
- _context.n = 98;
15866
+ _context.n = 111;
15745
15867
  break;
15746
15868
  }
15747
15869
  if (!(!isSelf && Notification.permission === 'granted')) {
15748
- _context.n = 96;
15870
+ _context.n = 109;
15749
15871
  break;
15750
15872
  }
15751
- if (!(document.visibilityState !== 'visible' || _channel1.id !== _activeChannelId9)) {
15752
- _context.n = 96;
15873
+ if (!(document.visibilityState !== 'visible' || _channel1.id !== _activeChannelId8)) {
15874
+ _context.n = 109;
15753
15875
  break;
15754
15876
  }
15755
- _context.n = 95;
15877
+ _context.n = 108;
15756
15878
  return select(contactsMapSelector);
15757
- case 95:
15879
+ case 108:
15758
15880
  _contactsMap = _context.v;
15759
15881
  _getFromContacts2 = getShowOnlyContactUsers();
15760
15882
  _state = store.getState();
@@ -15774,9 +15896,9 @@ function watchForEvents() {
15774
15896
  setNotification(_messageBody, reaction.user, _channel1, reaction.key, _message2.attachments && _message2.attachments.length ? _message2.attachments.find(function (att) {
15775
15897
  return att.type !== attachmentTypes.link;
15776
15898
  }) : undefined);
15777
- case 96:
15899
+ case 109:
15778
15900
  if (!(_channel1.newReactions && _channel1.newReactions.length)) {
15779
- _context.n = 97;
15901
+ _context.n = 110;
15780
15902
  break;
15781
15903
  }
15782
15904
  channelUpdateParams = {
@@ -15786,9 +15908,9 @@ function watchForEvents() {
15786
15908
  muted: _channel1.muted,
15787
15909
  mutedTill: _channel1.mutedTill
15788
15910
  };
15789
- _context.n = 97;
15911
+ _context.n = 110;
15790
15912
  return put(updateChannelDataAC(_channel1.id, channelUpdateParams));
15791
- case 97:
15913
+ case 110:
15792
15914
  updateChannelOnAllChannels(_channel1.id, {
15793
15915
  userMessageReactions: _channel1.newReactions,
15794
15916
  lastReactedMessage: _message2,
@@ -15796,19 +15918,19 @@ function watchForEvents() {
15796
15918
  muted: _channel1.muted,
15797
15919
  mutedTill: _channel1.mutedTill
15798
15920
  });
15799
- case 98:
15921
+ case 111:
15800
15922
  if (checkChannelExistsOnMessagesMap(_channel1.id)) {
15801
15923
  addReactionToMessageOnMap(_channel1.id, _message2, reaction, true);
15802
15924
  }
15803
- return _context.a(3, 183);
15804
- case 99:
15925
+ return _context.a(3, 199);
15926
+ case 112:
15805
15927
  log.info('CHANNEL_EVENT_TYPES.POLL_ADDED ... ');
15806
15928
  _channel10 = args.channel, pollDetails = args.pollDetails, _messageId = args.messageId;
15807
15929
  pollDetailsData = pollDetails;
15808
- _context.n = 100;
15930
+ _context.n = 113;
15809
15931
  return call(getActiveChannelId);
15810
- case 100:
15811
- _activeChannelId0 = _context.v;
15932
+ case 113:
15933
+ _activeChannelId9 = _context.v;
15812
15934
  addedVotes = (pollDetailsData === null || pollDetailsData === void 0 ? void 0 : (_pollDetailsData$chan = pollDetailsData.changedVotes) === null || _pollDetailsData$chan === void 0 ? void 0 : _pollDetailsData$chan.addedVotes) || [];
15813
15935
  deletedVotes = (pollDetailsData === null || pollDetailsData === void 0 ? void 0 : (_pollDetailsData$chan2 = pollDetailsData.changedVotes) === null || _pollDetailsData$chan2 === void 0 ? void 0 : _pollDetailsData$chan2.removedVotes) || [];
15814
15936
  objs = [];
@@ -15827,39 +15949,39 @@ function watchForEvents() {
15827
15949
  });
15828
15950
  }
15829
15951
  _i = 0, _objs = objs;
15830
- case 101:
15952
+ case 114:
15831
15953
  if (!(_i < _objs.length)) {
15832
- _context.n = 105;
15954
+ _context.n = 118;
15833
15955
  break;
15834
15956
  }
15835
15957
  obj = _objs[_i];
15836
15958
  if (!(pollDetailsData !== null && pollDetailsData !== void 0 && pollDetailsData.id && obj.vote)) {
15837
- _context.n = 104;
15959
+ _context.n = 117;
15838
15960
  break;
15839
15961
  }
15840
15962
  key = pollDetailsData.id + "_" + obj.vote.optionId;
15841
15963
  hasNext = ((_store$getState$Messa = store.getState().MessageReducer.pollVotesHasMore) === null || _store$getState$Messa === void 0 ? void 0 : _store$getState$Messa[key]) || false;
15842
15964
  if (!(obj.type === 'addOwn')) {
15843
- _context.n = 103;
15965
+ _context.n = 116;
15844
15966
  break;
15845
15967
  }
15846
- _context.n = 102;
15968
+ _context.n = 115;
15847
15969
  return put(addPollVotesToListAC(pollDetailsData.id, obj.vote.optionId, [obj.vote], hasNext, undefined));
15848
- case 102:
15849
- _context.n = 104;
15970
+ case 115:
15971
+ _context.n = 117;
15850
15972
  break;
15851
- case 103:
15852
- _context.n = 104;
15973
+ case 116:
15974
+ _context.n = 117;
15853
15975
  return put(deletePollVotesFromListAC(pollDetailsData.id, obj.vote.optionId, [obj.vote], _messageId));
15854
- case 104:
15976
+ case 117:
15855
15977
  _i++;
15856
- _context.n = 101;
15978
+ _context.n = 114;
15857
15979
  break;
15858
- case 105:
15980
+ case 118:
15859
15981
  _i2 = 0, _objs2 = objs;
15860
- case 106:
15982
+ case 119:
15861
15983
  if (!(_i2 < _objs2.length)) {
15862
- _context.n = 108;
15984
+ _context.n = 121;
15863
15985
  break;
15864
15986
  }
15865
15987
  _obj = _objs2[_i2];
@@ -15870,27 +15992,27 @@ function watchForEvents() {
15870
15992
  type: _obj.type,
15871
15993
  vote: _obj.vote
15872
15994
  });
15873
- if (!(_channel10.id === _activeChannelId0)) {
15874
- _context.n = 107;
15995
+ if (!(_channel10.id === _activeChannelId9)) {
15996
+ _context.n = 120;
15875
15997
  break;
15876
15998
  }
15877
15999
  updateMessageOnAllMessages(_messageId, {}, _obj);
15878
- _context.n = 107;
16000
+ _context.n = 120;
15879
16001
  return put(updateMessageAC(_messageId, {}, undefined, _obj));
15880
- case 107:
16002
+ case 120:
15881
16003
  _i2++;
15882
- _context.n = 106;
16004
+ _context.n = 119;
15883
16005
  break;
15884
- case 108:
15885
- return _context.a(3, 183);
15886
- case 109:
16006
+ case 121:
16007
+ return _context.a(3, 199);
16008
+ case 122:
15887
16009
  log.info('CHANNEL_EVENT_TYPES.POLL_DELETED ... ');
15888
16010
  _channel11 = args.channel, _pollDetails = args.pollDetails, _messageId2 = args.messageId;
15889
16011
  _pollDetailsData = _pollDetails;
15890
- _context.n = 110;
16012
+ _context.n = 123;
15891
16013
  return call(getActiveChannelId);
15892
- case 110:
15893
- _activeChannelId1 = _context.v;
16014
+ case 123:
16015
+ _activeChannelId0 = _context.v;
15894
16016
  _deletedVotes = (_pollDetailsData === null || _pollDetailsData === void 0 ? void 0 : (_pollDetailsData$chan3 = _pollDetailsData.changedVotes) === null || _pollDetailsData$chan3 === void 0 ? void 0 : _pollDetailsData$chan3.removedVotes) || [];
15895
16017
  _objs3 = [];
15896
16018
  for (_iterator4 = _createForOfIteratorHelperLoose(_deletedVotes); !(_step4 = _iterator4()).done;) {
@@ -15901,27 +16023,27 @@ function watchForEvents() {
15901
16023
  });
15902
16024
  }
15903
16025
  _i3 = 0, _objs4 = _objs3;
15904
- case 111:
16026
+ case 124:
15905
16027
  if (!(_i3 < _objs4.length)) {
15906
- _context.n = 113;
16028
+ _context.n = 126;
15907
16029
  break;
15908
16030
  }
15909
16031
  _obj2 = _objs4[_i3];
15910
16032
  if (!(_pollDetailsData !== null && _pollDetailsData !== void 0 && _pollDetailsData.id && _obj2.vote)) {
15911
- _context.n = 112;
16033
+ _context.n = 125;
15912
16034
  break;
15913
16035
  }
15914
- _context.n = 112;
16036
+ _context.n = 125;
15915
16037
  return put(deletePollVotesFromListAC(_pollDetailsData.id, _obj2.vote.optionId, [_obj2.vote], _messageId2));
15916
- case 112:
16038
+ case 125:
15917
16039
  _i3++;
15918
- _context.n = 111;
16040
+ _context.n = 124;
15919
16041
  break;
15920
- case 113:
16042
+ case 126:
15921
16043
  _i4 = 0, _objs5 = _objs3;
15922
- case 114:
16044
+ case 127:
15923
16045
  if (!(_i4 < _objs5.length)) {
15924
- _context.n = 116;
16046
+ _context.n = 129;
15925
16047
  break;
15926
16048
  }
15927
16049
  _obj3 = _objs5[_i4];
@@ -15929,26 +16051,26 @@ function watchForEvents() {
15929
16051
  messageId: _messageId2,
15930
16052
  params: {}
15931
16053
  }, _obj3);
15932
- if (!(_channel11.id === _activeChannelId1)) {
15933
- _context.n = 115;
16054
+ if (!(_channel11.id === _activeChannelId0)) {
16055
+ _context.n = 128;
15934
16056
  break;
15935
16057
  }
15936
16058
  updateMessageOnAllMessages(_messageId2, {}, _obj3);
15937
- _context.n = 115;
16059
+ _context.n = 128;
15938
16060
  return put(updateMessageAC(_messageId2, {}, undefined, _obj3));
15939
- case 115:
16061
+ case 128:
15940
16062
  _i4++;
15941
- _context.n = 114;
16063
+ _context.n = 127;
15942
16064
  break;
15943
- case 116:
15944
- return _context.a(3, 183);
15945
- case 117:
16065
+ case 129:
16066
+ return _context.a(3, 199);
16067
+ case 130:
15946
16068
  log.info('CHANNEL_EVENT_TYPES.POLL_RETRACTED ... ');
15947
16069
  _channel12 = args.channel, _pollDetails2 = args.pollDetails, _messageId3 = args.messageId;
15948
- _context.n = 118;
16070
+ _context.n = 131;
15949
16071
  return call(getActiveChannelId);
15950
- case 118:
15951
- _activeChannelId10 = _context.v;
16072
+ case 131:
16073
+ _activeChannelId1 = _context.v;
15952
16074
  _pollDetailsData2 = _pollDetails2;
15953
16075
  retractedVotes = (_pollDetailsData2 === null || _pollDetailsData2 === void 0 ? void 0 : (_pollDetailsData2$cha = _pollDetailsData2.changedVotes) === null || _pollDetailsData2$cha === void 0 ? void 0 : _pollDetailsData2$cha.removedVotes) || [];
15954
16076
  _objs6 = [];
@@ -15960,9 +16082,9 @@ function watchForEvents() {
15960
16082
  });
15961
16083
  }
15962
16084
  _i5 = 0, _objs7 = _objs6;
15963
- case 119:
16085
+ case 132:
15964
16086
  if (!(_i5 < _objs7.length)) {
15965
- _context.n = 124;
16087
+ _context.n = 137;
15966
16088
  break;
15967
16089
  }
15968
16090
  _obj4 = _objs7[_i5];
@@ -15971,42 +16093,42 @@ function watchForEvents() {
15971
16093
  params: {}
15972
16094
  }, _obj4);
15973
16095
  if (!(_pollDetailsData2 !== null && _pollDetailsData2 !== void 0 && _pollDetailsData2.id && retractedVotes.length > 0)) {
15974
- _context.n = 122;
16096
+ _context.n = 135;
15975
16097
  break;
15976
16098
  }
15977
16099
  _iterator6 = _createForOfIteratorHelperLoose(retractedVotes);
15978
- case 120:
16100
+ case 133:
15979
16101
  if ((_step6 = _iterator6()).done) {
15980
- _context.n = 122;
16102
+ _context.n = 135;
15981
16103
  break;
15982
16104
  }
15983
16105
  _vote3 = _step6.value;
15984
- _context.n = 121;
16106
+ _context.n = 134;
15985
16107
  return put(deletePollVotesFromListAC(_pollDetailsData2.id, _vote3.optionId, [_vote3], _messageId3));
15986
- case 121:
15987
- _context.n = 120;
16108
+ case 134:
16109
+ _context.n = 133;
15988
16110
  break;
15989
- case 122:
15990
- if (!(_channel12.id === _activeChannelId10)) {
15991
- _context.n = 123;
16111
+ case 135:
16112
+ if (!(_channel12.id === _activeChannelId1)) {
16113
+ _context.n = 136;
15992
16114
  break;
15993
16115
  }
15994
16116
  updateMessageOnAllMessages(_messageId3, {}, _obj4);
15995
- _context.n = 123;
16117
+ _context.n = 136;
15996
16118
  return put(updateMessageAC(_messageId3, {}, undefined, _obj4));
15997
- case 123:
16119
+ case 136:
15998
16120
  _i5++;
15999
- _context.n = 119;
16121
+ _context.n = 132;
16000
16122
  break;
16001
- case 124:
16002
- return _context.a(3, 183);
16003
- case 125:
16123
+ case 137:
16124
+ return _context.a(3, 199);
16125
+ case 138:
16004
16126
  log.info('CHANNEL_EVENT_TYPES.POLL_CLOSED ... ');
16005
16127
  _channel13 = args.channel, _messageId4 = args.messageId;
16006
- _context.n = 126;
16128
+ _context.n = 139;
16007
16129
  return call(getActiveChannelId);
16008
- case 126:
16009
- _activeChannelId11 = _context.v;
16130
+ case 139:
16131
+ _activeChannelId10 = _context.v;
16010
16132
  _obj5 = {
16011
16133
  type: 'close'
16012
16134
  };
@@ -16014,55 +16136,55 @@ function watchForEvents() {
16014
16136
  messageId: _messageId4,
16015
16137
  params: {}
16016
16138
  }, _obj5);
16017
- if (!(_channel13.id === _activeChannelId11)) {
16018
- _context.n = 128;
16139
+ if (!(_channel13.id === _activeChannelId10)) {
16140
+ _context.n = 141;
16019
16141
  break;
16020
16142
  }
16021
16143
  updateMessageOnAllMessages(_messageId4, {}, _obj5);
16022
- _context.n = 127;
16144
+ _context.n = 140;
16023
16145
  return put(updateMessageAC(_messageId4, {}, undefined, _obj5));
16024
- case 127:
16025
- return _context.a(3, 183);
16026
- case 128:
16027
- return _context.a(3, 183);
16028
- case 129:
16146
+ case 140:
16147
+ return _context.a(3, 199);
16148
+ case 141:
16149
+ return _context.a(3, 199);
16150
+ case 142:
16029
16151
  _channel14 = args.channel, _user = args.user, _message3 = args.message, _reaction = args.reaction;
16030
16152
  log.info('channel REACTION_DELETED ... ', _channel14);
16031
16153
  channelFromMap = getChannelFromMap(_channel14.id);
16032
16154
  _isSelf = _user.id === SceytChatClient.user.id;
16033
- _context.n = 130;
16155
+ _context.n = 143;
16034
16156
  return call(getActiveChannelId);
16035
- case 130:
16036
- _activeChannelId12 = _context.v;
16037
- if (!(_channel14.id === _activeChannelId12)) {
16038
- _context.n = 132;
16157
+ case 143:
16158
+ _activeChannelId11 = _context.v;
16159
+ if (!(_channel14.id === _activeChannelId11)) {
16160
+ _context.n = 145;
16039
16161
  break;
16040
16162
  }
16041
- _context.n = 131;
16163
+ _context.n = 144;
16042
16164
  return put(deleteReactionFromMessageAC(_message3, _reaction, _isSelf));
16043
- case 131:
16165
+ case 144:
16044
16166
  removeReactionOnAllMessages(_message3, _reaction, true);
16045
- case 132:
16167
+ case 145:
16046
16168
  _channelUpdateParams = JSON.parse(JSON.stringify(_channel14));
16047
16169
  if (channelFromMap && channelFromMap.lastReactedMessage && channelFromMap.lastReactedMessage.id === _message3.id) {
16048
16170
  _channelUpdateParams.lastReactedMessage = null;
16049
16171
  }
16050
- _context.n = 133;
16172
+ _context.n = 146;
16051
16173
  return put(updateChannelDataAC(_channel14.id, _channelUpdateParams));
16052
- case 133:
16174
+ case 146:
16053
16175
  updateChannelOnAllChannels(_channel14.id, _channelUpdateParams);
16054
16176
  if (checkChannelExistsOnMessagesMap(_channel14.id)) {
16055
16177
  removeReactionToMessageOnMap(_channel14.id, _message3, _reaction, true);
16056
16178
  }
16057
- return _context.a(3, 183);
16058
- case 134:
16179
+ return _context.a(3, 199);
16180
+ case 147:
16059
16181
  _channel15 = args.channel;
16060
16182
  if (!_channel15) {
16061
- _context.n = 136;
16183
+ _context.n = 149;
16062
16184
  break;
16063
16185
  }
16064
16186
  _updatedChannel = JSON.parse(JSON.stringify(_channel15));
16065
- _context.n = 135;
16187
+ _context.n = 148;
16066
16188
  return put(updateChannelDataAC(_channel15.id, {
16067
16189
  lastMessage: _channel15.lastMessage,
16068
16190
  newMessageCount: _channel15.newMessageCount,
@@ -16075,36 +16197,36 @@ function watchForEvents() {
16075
16197
  lastDisplayedMessageId: _channel15.lastDisplayedMessageId,
16076
16198
  messageRetentionPeriod: _channel15.messageRetentionPeriod
16077
16199
  }));
16078
- case 135:
16200
+ case 148:
16079
16201
  updateChannelOnAllChannels(_channel15.id, _updatedChannel);
16080
- case 136:
16081
- return _context.a(3, 183);
16082
- case 137:
16202
+ case 149:
16203
+ return _context.a(3, 199);
16204
+ case 150:
16083
16205
  _channel16 = args.channel;
16084
16206
  log.info('CLEAR_HISTORY: ', _channel16);
16085
- _context.n = 138;
16207
+ _context.n = 151;
16086
16208
  return call(getActiveChannelId);
16087
- case 138:
16088
- _activeChannelId13 = _context.v;
16089
- _context.n = 139;
16209
+ case 151:
16210
+ _activeChannelId12 = _context.v;
16211
+ _context.n = 152;
16090
16212
  return call(checkChannelExists, _channel16.id);
16091
- case 139:
16213
+ case 152:
16092
16214
  channelExist = _context.v;
16093
- if (!(_channel16.id === _activeChannelId13)) {
16094
- _context.n = 141;
16215
+ if (!(_channel16.id === _activeChannelId12)) {
16216
+ _context.n = 154;
16095
16217
  break;
16096
16218
  }
16097
- _context.n = 140;
16219
+ _context.n = 153;
16098
16220
  return put(clearMessagesAC());
16099
- case 140:
16221
+ case 153:
16100
16222
  removeAllMessages();
16101
- case 141:
16223
+ case 154:
16102
16224
  removeMessagesFromMap(_channel16.id);
16103
16225
  if (!channelExist) {
16104
- _context.n = 142;
16226
+ _context.n = 155;
16105
16227
  break;
16106
16228
  }
16107
- _context.n = 142;
16229
+ _context.n = 155;
16108
16230
  return put(updateChannelDataAC(_channel16.id, {
16109
16231
  lastMessage: null,
16110
16232
  newMessageCount: 0,
@@ -16112,7 +16234,7 @@ function watchForEvents() {
16112
16234
  muted: _channel16.muted,
16113
16235
  mutedTill: _channel16.mutedTill
16114
16236
  }));
16115
- case 142:
16237
+ case 155:
16116
16238
  updateChannelOnAllChannels(_channel16.id, {
16117
16239
  lastMessage: null,
16118
16240
  newMessageCount: 0,
@@ -16120,173 +16242,189 @@ function watchForEvents() {
16120
16242
  muted: _channel16.muted,
16121
16243
  mutedTill: _channel16.mutedTill
16122
16244
  });
16123
- return _context.a(3, 183);
16124
- case 143:
16245
+ return _context.a(3, 199);
16246
+ case 156:
16125
16247
  _channel17 = args.channel;
16126
16248
  log.info('channel MUTE ... ');
16127
- _context.n = 144;
16249
+ _context.n = 157;
16128
16250
  return put(updateChannelDataAC(_channel17.id, {
16129
16251
  muted: _channel17.muted,
16130
16252
  mutedTill: _channel17.mutedTill
16131
16253
  }));
16132
- case 144:
16254
+ case 157:
16133
16255
  updateChannelOnAllChannels(_channel17.id, {
16134
16256
  muted: _channel17.muted,
16135
16257
  mutedTill: _channel17.mutedTill
16136
16258
  });
16137
- return _context.a(3, 183);
16138
- case 145:
16259
+ return _context.a(3, 199);
16260
+ case 158:
16139
16261
  _channel18 = args.channel;
16140
16262
  log.info('channel UNMUTE ... ');
16141
- _context.n = 146;
16263
+ _context.n = 159;
16142
16264
  return put(updateChannelDataAC(_channel18.id, {
16143
16265
  muted: _channel18.muted,
16144
16266
  mutedTill: _channel18.mutedTill
16145
16267
  }));
16146
- case 146:
16268
+ case 159:
16147
16269
  updateChannelOnAllChannels(_channel18.id, {
16148
16270
  muted: _channel18.muted,
16149
16271
  mutedTill: _channel18.mutedTill
16150
16272
  });
16151
- return _context.a(3, 183);
16152
- case 147:
16273
+ return _context.a(3, 199);
16274
+ case 160:
16153
16275
  _channel19 = args.channel;
16154
16276
  log.info('channel PINED ... ');
16155
- _context.n = 148;
16277
+ _context.n = 161;
16156
16278
  return put(updateChannelDataAC(_channel19.id, {
16157
16279
  pinnedAt: _channel19.pinnedAt
16158
16280
  }, true));
16159
- case 148:
16281
+ case 161:
16160
16282
  updateChannelOnAllChannels(_channel19.id, {
16161
16283
  pinnedAt: _channel19.pinnedAt
16162
16284
  });
16163
- return _context.a(3, 183);
16164
- case 149:
16285
+ return _context.a(3, 199);
16286
+ case 162:
16165
16287
  _channel20 = args.channel;
16166
16288
  log.info('channel UNPINED ... ');
16167
- _context.n = 150;
16289
+ _context.n = 163;
16168
16290
  return put(updateChannelDataAC(_channel20.id, {
16169
16291
  pinnedAt: _channel20.pinnedAt
16170
16292
  }, false, true));
16171
- case 150:
16293
+ case 163:
16172
16294
  updateChannelOnAllChannels(_channel20.id, {
16173
16295
  pinnedAt: _channel20.pinnedAt
16174
16296
  });
16175
- return _context.a(3, 183);
16176
- case 151:
16297
+ return _context.a(3, 199);
16298
+ case 164:
16177
16299
  _channel21 = args.channel;
16178
16300
  log.info('channel HIDE ... ');
16179
- _context.n = 152;
16301
+ _context.n = 165;
16180
16302
  return put(setChannelToHideAC(_channel21));
16181
- case 152:
16182
- return _context.a(3, 183);
16183
- case 153:
16303
+ case 165:
16304
+ return _context.a(3, 199);
16305
+ case 166:
16184
16306
  _channel22 = args.channel;
16185
16307
  log.info('channel UNHIDE ... ');
16186
- _context.n = 154;
16308
+ _context.n = 167;
16187
16309
  return put(setChannelToUnHideAC(_channel22));
16188
- case 154:
16189
- return _context.a(3, 183);
16190
- case 155:
16310
+ case 167:
16311
+ return _context.a(3, 199);
16312
+ case 168:
16191
16313
  _channel23 = args.channel;
16192
- _context.n = 156;
16314
+ _context.n = 169;
16193
16315
  return put(updateChannelDataAC(_channel23.id, {
16194
16316
  unread: _channel23.unread,
16195
16317
  muted: _channel23.muted,
16196
16318
  mutedTill: _channel23.mutedTill
16197
16319
  }));
16198
- case 156:
16320
+ case 169:
16199
16321
  _groupName5 = getChannelGroupName(_channel23);
16200
- _context.n = 157;
16322
+ _context.n = 170;
16201
16323
  return put(updateSearchedChannelDataAC(_channel23.id, {
16202
16324
  unread: _channel23.unread
16203
16325
  }, _groupName5));
16204
- case 157:
16326
+ case 170:
16205
16327
  updateChannelOnAllChannels(_channel23.id, {
16206
16328
  unread: _channel23.unread
16207
16329
  });
16208
- return _context.a(3, 183);
16209
- case 158:
16330
+ return _context.a(3, 199);
16331
+ case 171:
16210
16332
  _channel24 = args.channel;
16211
- _context.n = 159;
16333
+ _context.n = 172;
16212
16334
  return put(updateChannelDataAC(_channel24.id, {
16213
16335
  unread: _channel24.unread,
16214
16336
  muted: _channel24.muted,
16215
16337
  mutedTill: _channel24.mutedTill
16216
16338
  }));
16217
- case 159:
16339
+ case 172:
16218
16340
  _groupName6 = getChannelGroupName(_channel24);
16219
- _context.n = 160;
16341
+ _context.n = 173;
16220
16342
  return put(updateSearchedChannelDataAC(_channel24.id, {
16221
16343
  unread: _channel24.unread
16222
16344
  }, _groupName6));
16223
- case 160:
16345
+ case 173:
16224
16346
  updateChannelOnAllChannels(_channel24.id, {
16225
16347
  unread: _channel24.unread
16226
16348
  });
16227
- return _context.a(3, 183);
16228
- case 161:
16349
+ return _context.a(3, 199);
16350
+ case 174:
16229
16351
  _channel25 = args.channel, members = args.members;
16230
16352
  log.info('channel CHANGE_ROLE channel ... ', _channel25);
16231
16353
  log.info('channel CHANGE_ROLE member ... ', members);
16232
- _context.n = 162;
16354
+ _context.n = 175;
16233
16355
  return call(getActiveChannelId);
16234
- case 162:
16235
- _activeChannelId14 = _context.v;
16236
- if (!(_channel25.id === _activeChannelId14)) {
16237
- _context.n = 163;
16356
+ case 175:
16357
+ _activeChannelId13 = _context.v;
16358
+ if (!(_channel25.id === _activeChannelId13)) {
16359
+ _context.n = 179;
16238
16360
  break;
16239
16361
  }
16240
- _context.n = 163;
16241
- return put(updateMembersAC(members));
16242
- case 163:
16362
+ _customLoadMembersFunctions2 = getCustomLoadMembersFunctions();
16363
+ updateMembersEvent = _customLoadMembersFunctions2 === null || _customLoadMembersFunctions2 === void 0 ? void 0 : _customLoadMembersFunctions2.updateMembersEvent;
16364
+ if (!updateMembersEvent) {
16365
+ _context.n = 178;
16366
+ break;
16367
+ }
16368
+ _context.n = 176;
16369
+ return call(updateMembersEvent, _channel25.id, members, store.getState().MembersReducer.channelsMembersMap[_channel25.id] || []);
16370
+ case 176:
16371
+ _membersList2 = _context.v;
16372
+ _context.n = 177;
16373
+ return put(setMembersToListAC(_membersList2, _channel25.id));
16374
+ case 177:
16375
+ _context.n = 179;
16376
+ break;
16377
+ case 178:
16378
+ _context.n = 179;
16379
+ return put(updateMembersAC(members, _channel25.id));
16380
+ case 179:
16243
16381
  i = 0;
16244
- case 164:
16382
+ case 180:
16245
16383
  if (!(i < members.length)) {
16246
- _context.n = 167;
16384
+ _context.n = 183;
16247
16385
  break;
16248
16386
  }
16249
16387
  if (!(members[i].id === SceytChatClient.user.id)) {
16250
- _context.n = 166;
16388
+ _context.n = 182;
16251
16389
  break;
16252
16390
  }
16253
- _context.n = 165;
16391
+ _context.n = 181;
16254
16392
  return put(updateChannelDataAC(_channel25.id, {
16255
16393
  userRole: members[i].role,
16256
16394
  muted: _channel25.muted,
16257
16395
  mutedTill: _channel25.mutedTill
16258
16396
  }));
16259
- case 165:
16397
+ case 181:
16260
16398
  updateChannelOnAllChannels(_channel25.id, {
16261
16399
  userRole: members[i].role,
16262
16400
  muted: _channel25.muted,
16263
16401
  mutedTill: _channel25.mutedTill
16264
16402
  });
16265
- case 166:
16403
+ case 182:
16266
16404
  i++;
16267
- _context.n = 164;
16405
+ _context.n = 180;
16268
16406
  break;
16269
- case 167:
16270
- return _context.a(3, 183);
16271
- case 168:
16407
+ case 183:
16408
+ return _context.a(3, 199);
16409
+ case 184:
16272
16410
  _channel26 = args.channel;
16273
16411
  log.info('channel frozen channel ... ', _channel26);
16274
- return _context.a(3, 183);
16275
- case 169:
16412
+ return _context.a(3, 199);
16413
+ case 185:
16276
16414
  _channel27 = args.channel;
16277
16415
  log.info('channel unfrozen channel ... ', _channel27);
16278
- return _context.a(3, 183);
16279
- case 170:
16416
+ return _context.a(3, 199);
16417
+ case 186:
16280
16418
  _channelId2 = args.channelId, from = args.from, name = args.name;
16281
16419
  log.info('channel event received >>>... . . . . . ', args);
16282
16420
  if (!(from.id === SceytChatClient.user.id)) {
16283
- _context.n = 171;
16421
+ _context.n = 187;
16284
16422
  break;
16285
16423
  }
16286
- return _context.a(3, 183);
16287
- case 171:
16424
+ return _context.a(3, 199);
16425
+ case 187:
16288
16426
  if (!(name === 'start_typing')) {
16289
- _context.n = 173;
16427
+ _context.n = 189;
16290
16428
  break;
16291
16429
  }
16292
16430
  if (!usersTimeout.typingTimeout[_channelId2]) {
@@ -16298,27 +16436,27 @@ function watchForEvents() {
16298
16436
  usersTimeout.typingTimeout[_channelId2][from.id] = setTimeout(function () {
16299
16437
  channelListener.onReceivedChannelEvent(_channelId2, from, 'stop_typing');
16300
16438
  }, 5000);
16301
- _context.n = 172;
16439
+ _context.n = 188;
16302
16440
  return put(switchTypingIndicatorAC(true, _channelId2, from));
16303
- case 172:
16304
- _context.n = 178;
16441
+ case 188:
16442
+ _context.n = 194;
16305
16443
  break;
16306
- case 173:
16444
+ case 189:
16307
16445
  if (!(name === 'stop_typing')) {
16308
- _context.n = 175;
16446
+ _context.n = 191;
16309
16447
  break;
16310
16448
  }
16311
16449
  if (usersTimeout.typingTimeout[_channelId2] && usersTimeout.typingTimeout[_channelId2][from.id]) {
16312
16450
  clearTimeout(usersTimeout.typingTimeout[_channelId2][from.id]);
16313
16451
  }
16314
- _context.n = 174;
16452
+ _context.n = 190;
16315
16453
  return put(switchTypingIndicatorAC(false, _channelId2, from));
16316
- case 174:
16317
- _context.n = 178;
16454
+ case 190:
16455
+ _context.n = 194;
16318
16456
  break;
16319
- case 175:
16457
+ case 191:
16320
16458
  if (!(name === 'start_recording')) {
16321
- _context.n = 177;
16459
+ _context.n = 193;
16322
16460
  break;
16323
16461
  }
16324
16462
  if (!usersTimeout.recordingTimeout[_channelId2]) {
@@ -16330,50 +16468,50 @@ function watchForEvents() {
16330
16468
  usersTimeout.recordingTimeout[_channelId2][from.id] = setTimeout(function () {
16331
16469
  channelListener.onReceivedChannelEvent(_channelId2, from, 'stop_recording');
16332
16470
  }, 5000);
16333
- _context.n = 176;
16471
+ _context.n = 192;
16334
16472
  return put(switchRecordingIndicatorAC(true, _channelId2, from));
16335
- case 176:
16336
- _context.n = 178;
16473
+ case 192:
16474
+ _context.n = 194;
16337
16475
  break;
16338
- case 177:
16476
+ case 193:
16339
16477
  if (!(name === 'stop_recording')) {
16340
- _context.n = 178;
16478
+ _context.n = 194;
16341
16479
  break;
16342
16480
  }
16343
16481
  if (usersTimeout.recordingTimeout[_channelId2] && usersTimeout.recordingTimeout[_channelId2][from.id]) {
16344
16482
  clearTimeout(usersTimeout.recordingTimeout[_channelId2][from.id]);
16345
16483
  }
16346
- _context.n = 178;
16484
+ _context.n = 194;
16347
16485
  return put(switchRecordingIndicatorAC(false, _channelId2, from));
16348
- case 178:
16349
- return _context.a(3, 183);
16350
- case 179:
16486
+ case 194:
16487
+ return _context.a(3, 199);
16488
+ case 195:
16351
16489
  status = args.status;
16352
16490
  log.info('connection status changed . . . . . ', status);
16353
- _context.n = 180;
16491
+ _context.n = 196;
16354
16492
  return put(setConnectionStatusAC(status));
16355
- case 180:
16493
+ case 196:
16356
16494
  if (!(status === CONNECTION_STATUS.CONNECTED)) {
16357
- _context.n = 181;
16495
+ _context.n = 197;
16358
16496
  break;
16359
16497
  }
16360
- _context.n = 181;
16498
+ _context.n = 197;
16361
16499
  return put(getRolesAC());
16362
- case 181:
16363
- return _context.a(3, 183);
16364
- case 182:
16500
+ case 197:
16501
+ return _context.a(3, 199);
16502
+ case 198:
16365
16503
  log.warn('UNHANDLED EVENT FROM REDUX-SAGA EVENT-CHANNEL');
16366
- case 183:
16367
- _context.n = 185;
16504
+ case 199:
16505
+ _context.n = 201;
16368
16506
  break;
16369
- case 184:
16370
- _context.p = 184;
16371
- _t2 = _context.v;
16372
- log.error('Error in watchForEvents:', _t2);
16373
- case 185:
16507
+ case 200:
16508
+ _context.p = 200;
16509
+ _t4 = _context.v;
16510
+ log.error('Error in watchForEvents:', _t4);
16511
+ case 201:
16374
16512
  return _context.a(2);
16375
16513
  }
16376
- }, _callee, null, [[0, 184]]);
16514
+ }, _callee, null, [[0, 200]]);
16377
16515
  });
16378
16516
  case 1:
16379
16517
  return _context2.d(_regeneratorValues(_loop()), 2);
@@ -22944,121 +23082,186 @@ var _marked$4 = /*#__PURE__*/_regenerator().m(getMembers),
22944
23082
  _marked8$2 = /*#__PURE__*/_regenerator().m(getRoles),
22945
23083
  _marked9$2 = /*#__PURE__*/_regenerator().m(MembersSaga);
22946
23084
  function getMembers(action) {
22947
- var payload, channelId, SceytChatClient, membersQueryBuilder, membersQuery, _yield$call, members, hasNext, updateChannelData, _t;
23085
+ var payload, channelId, SceytChatClient, membersQueryBuilder, membersQuery, _query$channelMembers, customLoadMembersFunctions, _getMembers, channel, _ref, members, hasNext, updateChannelData, _t, _t2;
22948
23086
  return _regenerator().w(function (_context) {
22949
23087
  while (1) switch (_context.p = _context.n) {
22950
23088
  case 0:
22951
- _context.p = 0;
22952
- _context.n = 1;
22953
- return put(setMembersHasNextAC(true));
22954
- case 1:
22955
23089
  payload = action.payload;
22956
23090
  channelId = payload.channelId;
22957
- if (channelId) {
22958
- _context.n = 2;
23091
+ _context.p = 1;
23092
+ _context.n = 2;
23093
+ return put(setMembersHasNextAC(true, channelId));
23094
+ case 2:
23095
+ if (!(!channelId || store.getState().MembersReducer.channelsMembersHasNextMap[channelId] === false)) {
23096
+ _context.n = 3;
22959
23097
  break;
22960
23098
  }
22961
23099
  return _context.a(2);
22962
- case 2:
23100
+ case 3:
22963
23101
  SceytChatClient = getClient();
22964
23102
  membersQueryBuilder = new SceytChatClient.MemberListQueryBuilder(channelId);
22965
23103
  membersQueryBuilder.all().byAffiliationOrder().orderKeyByUsername().limit(50);
22966
- _context.n = 3;
22967
- return call(membersQueryBuilder.build);
22968
- case 3:
22969
- membersQuery = _context.v;
22970
- query.membersQuery = membersQuery;
22971
23104
  _context.n = 4;
22972
- return put(setMembersLoadingStateAC(LOADING_STATE.LOADING));
23105
+ return call(membersQueryBuilder.build);
22973
23106
  case 4:
23107
+ membersQuery = _context.v;
23108
+ if (!query.channelMembersQuery) {
23109
+ query.channelMembersQuery = (_query$channelMembers = {}, _query$channelMembers[channelId] = membersQuery, _query$channelMembers);
23110
+ } else {
23111
+ query.channelMembersQuery[channelId] = membersQuery;
23112
+ }
22974
23113
  _context.n = 5;
22975
- return call(membersQuery.loadNextPage);
23114
+ return put(setMembersLoadingStateAC(LOADING_STATE.LOADING, channelId));
22976
23115
  case 5:
22977
- _yield$call = _context.v;
22978
- members = _yield$call.members;
22979
- hasNext = _yield$call.hasNext;
23116
+ customLoadMembersFunctions = getCustomLoadMembersFunctions();
23117
+ _getMembers = customLoadMembersFunctions === null || customLoadMembersFunctions === void 0 ? void 0 : customLoadMembersFunctions.getMembers;
23118
+ channel = getChannelFromMap(channelId);
23119
+ if (channel) {
23120
+ _context.n = 7;
23121
+ break;
23122
+ }
23123
+ channel = getChannelFromAllChannels(channelId);
23124
+ if (!channel) {
23125
+ _context.n = 7;
23126
+ break;
23127
+ }
22980
23128
  _context.n = 6;
22981
- return put(setMembersToListAC(members));
23129
+ return call(SceytChatClient.getChannel, channelId);
22982
23130
  case 6:
22983
- _context.n = 7;
22984
- return put(setMembersHasNextAC(hasNext));
23131
+ channel = _context.v;
22985
23132
  case 7:
23133
+ if (!_getMembers) {
23134
+ _context.n = 9;
23135
+ break;
23136
+ }
22986
23137
  _context.n = 8;
22987
- return call(updateActiveChannelMembersAdd, members) || {};
23138
+ return call(_getMembers, channel);
22988
23139
  case 8:
22989
- updateChannelData = _context.v;
22990
- _context.n = 9;
22991
- return put(updateChannelDataAC(channelId, updateChannelData));
22992
- case 9:
23140
+ _t = _context.v;
22993
23141
  _context.n = 11;
22994
23142
  break;
23143
+ case 9:
23144
+ _context.n = 10;
23145
+ return call(membersQuery.loadNextPage);
22995
23146
  case 10:
22996
- _context.p = 10;
22997
23147
  _t = _context.v;
22998
- log.error('ERROR in get members - ', _t.message);
22999
23148
  case 11:
23000
- _context.p = 11;
23149
+ _ref = _t;
23150
+ members = _ref.members;
23151
+ hasNext = _ref.hasNext;
23001
23152
  _context.n = 12;
23002
- return put(setMembersLoadingStateAC(LOADING_STATE.LOADED));
23153
+ return put(setMembersToListAC(members, channelId));
23003
23154
  case 12:
23004
- return _context.f(11);
23155
+ _context.n = 13;
23156
+ return put(setMembersHasNextAC(hasNext, channelId));
23005
23157
  case 13:
23158
+ _context.n = 14;
23159
+ return call(updateActiveChannelMembersAdd, members) || {};
23160
+ case 14:
23161
+ updateChannelData = _context.v;
23162
+ _context.n = 15;
23163
+ return put(updateChannelDataAC(channelId, updateChannelData));
23164
+ case 15:
23165
+ _context.n = 17;
23166
+ break;
23167
+ case 16:
23168
+ _context.p = 16;
23169
+ _t2 = _context.v;
23170
+ log.error('ERROR in get members - ', _t2.message);
23171
+ case 17:
23172
+ _context.p = 17;
23173
+ _context.n = 18;
23174
+ return put(setMembersLoadingStateAC(LOADING_STATE.LOADED, channelId));
23175
+ case 18:
23176
+ return _context.f(17);
23177
+ case 19:
23006
23178
  return _context.a(2);
23007
23179
  }
23008
- }, _marked$4, null, [[0, 10, 11, 13]]);
23180
+ }, _marked$4, null, [[1, 16, 17, 19]]);
23009
23181
  }
23010
23182
  function loadMoreMembers(action) {
23011
- var payload, limit, channelId, membersQuery, _yield$call2, members, hasNext, updateChannelData;
23183
+ var payload, limit, channelId, channelMembersQuery, membersQuery, customLoadMembersFunctions, _loadMoreMembers, channel, SceytChatClient, _ref2, members, hasNext, updateChannelData, _t3;
23012
23184
  return _regenerator().w(function (_context2) {
23013
23185
  while (1) switch (_context2.p = _context2.n) {
23014
23186
  case 0:
23015
- _context2.p = 0;
23016
23187
  payload = action.payload;
23017
- limit = payload.limit;
23018
- channelId = payload.channelId;
23019
- membersQuery = query.membersQuery;
23188
+ limit = payload.limit, channelId = payload.channelId;
23189
+ _context2.p = 1;
23190
+ channelMembersQuery = query.channelMembersQuery;
23191
+ membersQuery = channelMembersQuery === null || channelMembersQuery === void 0 ? void 0 : channelMembersQuery[channelId];
23020
23192
  if (limit && membersQuery) {
23021
23193
  membersQuery.limit = limit;
23022
23194
  }
23023
- _context2.n = 1;
23024
- return put(setMembersLoadingStateAC(LOADING_STATE.LOADING));
23025
- case 1:
23026
23195
  _context2.n = 2;
23027
- return call(membersQuery.loadNextPage);
23196
+ return put(setMembersLoadingStateAC(LOADING_STATE.LOADING, channelId));
23028
23197
  case 2:
23029
- _yield$call2 = _context2.v;
23030
- members = _yield$call2.members;
23031
- hasNext = _yield$call2.hasNext;
23198
+ customLoadMembersFunctions = getCustomLoadMembersFunctions();
23199
+ _loadMoreMembers = customLoadMembersFunctions === null || customLoadMembersFunctions === void 0 ? void 0 : customLoadMembersFunctions.loadMoreMembers;
23200
+ channel = getChannelFromMap(channelId);
23201
+ if (channel) {
23202
+ _context2.n = 4;
23203
+ break;
23204
+ }
23205
+ channel = getChannelFromAllChannels(channelId);
23206
+ if (!channel) {
23207
+ _context2.n = 4;
23208
+ break;
23209
+ }
23210
+ SceytChatClient = getClient();
23032
23211
  _context2.n = 3;
23033
- return put(addMembersToListAC(members));
23212
+ return call(SceytChatClient.getChannel, channelId);
23034
23213
  case 3:
23035
- _context2.n = 4;
23036
- return put(setMembersHasNextAC(hasNext));
23214
+ channel = _context2.v;
23037
23215
  case 4:
23216
+ if (!_loadMoreMembers) {
23217
+ _context2.n = 6;
23218
+ break;
23219
+ }
23038
23220
  _context2.n = 5;
23039
- return call(updateActiveChannelMembersAdd, members) || {};
23221
+ return call(_loadMoreMembers, channel, limit);
23040
23222
  case 5:
23041
- updateChannelData = _context2.v;
23042
- _context2.n = 6;
23043
- return put(updateChannelDataAC(channelId, updateChannelData));
23044
- case 6:
23223
+ _t3 = _context2.v;
23045
23224
  _context2.n = 8;
23046
23225
  break;
23226
+ case 6:
23227
+ _context2.n = 7;
23228
+ return call(membersQuery.loadNextPage);
23047
23229
  case 7:
23048
- _context2.p = 7;
23230
+ _t3 = _context2.v;
23049
23231
  case 8:
23050
- _context2.p = 8;
23232
+ _ref2 = _t3;
23233
+ members = _ref2.members;
23234
+ hasNext = _ref2.hasNext;
23051
23235
  _context2.n = 9;
23052
- return put(setMembersLoadingStateAC(LOADING_STATE.LOADED));
23236
+ return put(addMembersToListAC(members, channelId));
23053
23237
  case 9:
23054
- return _context2.f(8);
23238
+ _context2.n = 10;
23239
+ return put(setMembersHasNextAC(hasNext, channelId));
23055
23240
  case 10:
23241
+ _context2.n = 11;
23242
+ return call(updateActiveChannelMembersAdd, members) || {};
23243
+ case 11:
23244
+ updateChannelData = _context2.v;
23245
+ _context2.n = 12;
23246
+ return put(updateChannelDataAC(channelId, updateChannelData));
23247
+ case 12:
23248
+ _context2.n = 14;
23249
+ break;
23250
+ case 13:
23251
+ _context2.p = 13;
23252
+ case 14:
23253
+ _context2.p = 14;
23254
+ _context2.n = 15;
23255
+ return put(setMembersLoadingStateAC(LOADING_STATE.LOADED, channelId));
23256
+ case 15:
23257
+ return _context2.f(14);
23258
+ case 16:
23056
23259
  return _context2.a(2);
23057
23260
  }
23058
- }, _marked2$3, null, [[0, 7, 8, 10]]);
23261
+ }, _marked2$3, null, [[1, 13, 14, 16]]);
23059
23262
  }
23060
23263
  function addMembers(action) {
23061
- var payload, members, channelId, channel, membersToAdd, addedMembers, whoDoesNotAdded, membersIds, messageToSend, updateChannelData, _t3;
23264
+ var payload, members, channelId, channel, membersToAdd, addedMembers, whoDoesNotAdded, membersIds, messageToSend, customLoadMembersFunctions, addMembersEvent, membersList, updateChannelData, _t5, _t6;
23062
23265
  return _regenerator().w(function (_context3) {
23063
23266
  while (1) switch (_context3.p = _context3.n) {
23064
23267
  case 0:
@@ -23070,7 +23273,7 @@ function addMembers(action) {
23070
23273
  case 1:
23071
23274
  channel = _context3.v;
23072
23275
  if (!channel) {
23073
- _context3.n = 7;
23276
+ _context3.n = 12;
23074
23277
  break;
23075
23278
  }
23076
23279
  membersToAdd = members.map(function (mem) {
@@ -23117,31 +23320,60 @@ function addMembers(action) {
23117
23320
  _context3.n = 4;
23118
23321
  return put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
23119
23322
  case 4:
23323
+ customLoadMembersFunctions = getCustomLoadMembersFunctions();
23324
+ addMembersEvent = customLoadMembersFunctions === null || customLoadMembersFunctions === void 0 ? void 0 : customLoadMembersFunctions.addMembersEvent;
23325
+ membersList = [];
23326
+ if (!addMembersEvent) {
23327
+ _context3.n = 7;
23328
+ break;
23329
+ }
23120
23330
  _context3.n = 5;
23121
- return put(addMembersToListAC(addedMembers));
23331
+ return call(addMembersEvent, channelId, addedMembers, store.getState().MembersReducer.channelsMembersMap[channelId] || []);
23122
23332
  case 5:
23333
+ membersList = _context3.v;
23334
+ _context3.n = 6;
23335
+ return put(setMembersToListAC(membersList, channelId));
23336
+ case 6:
23337
+ _context3.n = 8;
23338
+ break;
23339
+ case 7:
23340
+ _context3.n = 8;
23341
+ return put(addMembersToListAC(addedMembers, channelId));
23342
+ case 8:
23123
23343
  updateChannelOnAllChannels(channel.id, {
23124
23344
  memberCount: channel.memberCount + addedMembers.length
23125
23345
  });
23126
- _context3.n = 6;
23346
+ if (!addMembersEvent) {
23347
+ _context3.n = 9;
23348
+ break;
23349
+ }
23350
+ _t5 = {
23351
+ members: membersList
23352
+ };
23353
+ _context3.n = 11;
23354
+ break;
23355
+ case 9:
23356
+ _context3.n = 10;
23127
23357
  return call(updateActiveChannelMembersAdd, addedMembers) || {};
23128
- case 6:
23129
- updateChannelData = _context3.v;
23130
- _context3.n = 7;
23358
+ case 10:
23359
+ _t5 = _context3.v;
23360
+ case 11:
23361
+ updateChannelData = _t5;
23362
+ _context3.n = 12;
23131
23363
  return put(updateChannelDataAC(channel.id, _extends({
23132
23364
  memberCount: channel.memberCount + addedMembers.length
23133
23365
  }, updateChannelData)));
23134
- case 7:
23135
- _context3.n = 9;
23366
+ case 12:
23367
+ _context3.n = 14;
23136
23368
  break;
23137
- case 8:
23138
- _context3.p = 8;
23139
- _t3 = _context3.v;
23140
- log.error('error on add members... ', _t3);
23141
- case 9:
23369
+ case 13:
23370
+ _context3.p = 13;
23371
+ _t6 = _context3.v;
23372
+ log.error('error on add members... ', _t6);
23373
+ case 14:
23142
23374
  return _context3.a(2);
23143
23375
  }
23144
- }, _marked3$2, null, [[0, 8]]);
23376
+ }, _marked3$2, null, [[0, 13]]);
23145
23377
  }
23146
23378
  function kickMemberFromChannel(action) {
23147
23379
  var payload, memberId, channelId, channel, removedMembers, membersIds, messageToSend, updateChannelData;
@@ -23180,7 +23412,7 @@ function kickMemberFromChannel(action) {
23180
23412
  return put(sendTextMessageAC(messageToSend, channelId, CONNECTION_STATUS.CONNECTED));
23181
23413
  case 3:
23182
23414
  _context4.n = 4;
23183
- return put(removeMemberFromListAC(removedMembers));
23415
+ return put(removeMemberFromListAC(removedMembers, channelId));
23184
23416
  case 4:
23185
23417
  updateChannelOnAllChannels(channel.id, {
23186
23418
  memberCount: channel.memberCount - removedMembers.length
@@ -23220,7 +23452,7 @@ function blockMember(action) {
23220
23452
  case 2:
23221
23453
  removedMembers = _context5.v;
23222
23454
  _context5.n = 3;
23223
- return put(removeMemberFromListAC(removedMembers));
23455
+ return put(removeMemberFromListAC(removedMembers, channelId));
23224
23456
  case 3:
23225
23457
  updateChannelOnAllChannels(channel.id, {
23226
23458
  memberCount: channel.memberCount - removedMembers.length
@@ -23244,7 +23476,7 @@ function blockMember(action) {
23244
23476
  }, _marked5$2, null, [[0, 6]]);
23245
23477
  }
23246
23478
  function changeMemberRole(action) {
23247
- var payload, channelId, members, channel, updatedMembers, _t6;
23479
+ var payload, channelId, members, channel, updatedMembers, customLoadMembersFunctions, updateMembersEvent, membersList, _t9;
23248
23480
  return _regenerator().w(function (_context6) {
23249
23481
  while (1) switch (_context6.p = _context6.n) {
23250
23482
  case 0:
@@ -23259,22 +23491,38 @@ function changeMemberRole(action) {
23259
23491
  return call(channel.changeMembersRole, members);
23260
23492
  case 2:
23261
23493
  updatedMembers = _context6.v;
23494
+ customLoadMembersFunctions = getCustomLoadMembersFunctions();
23495
+ updateMembersEvent = customLoadMembersFunctions === null || customLoadMembersFunctions === void 0 ? void 0 : customLoadMembersFunctions.updateMembersEvent;
23496
+ if (!updateMembersEvent) {
23497
+ _context6.n = 5;
23498
+ break;
23499
+ }
23262
23500
  _context6.n = 3;
23263
- return put(updateMembersAC(updatedMembers));
23501
+ return call(updateMembersEvent, channelId, updatedMembers, store.getState().MembersReducer.channelsMembersMap[channelId] || []);
23264
23502
  case 3:
23265
- _context6.n = 5;
23266
- break;
23503
+ membersList = _context6.v;
23504
+ _context6.n = 4;
23505
+ return put(setMembersToListAC(membersList, channelId));
23267
23506
  case 4:
23268
- _context6.p = 4;
23269
- _t6 = _context6.v;
23270
- log.error('error in change member role', _t6);
23507
+ _context6.n = 6;
23508
+ break;
23271
23509
  case 5:
23510
+ _context6.n = 6;
23511
+ return put(updateMembersAC(updatedMembers, channelId));
23512
+ case 6:
23513
+ _context6.n = 8;
23514
+ break;
23515
+ case 7:
23516
+ _context6.p = 7;
23517
+ _t9 = _context6.v;
23518
+ log.error('error in change member role', _t9);
23519
+ case 8:
23272
23520
  return _context6.a(2);
23273
23521
  }
23274
- }, _marked6$2, null, [[0, 4]]);
23522
+ }, _marked6$2, null, [[0, 7]]);
23275
23523
  }
23276
23524
  function reportMember(action) {
23277
- var reportData, SceytChatClient, _t7;
23525
+ var reportData, SceytChatClient, _t0;
23278
23526
  return _regenerator().w(function (_context7) {
23279
23527
  while (1) switch (_context7.p = _context7.n) {
23280
23528
  case 0:
@@ -23288,15 +23536,15 @@ function reportMember(action) {
23288
23536
  break;
23289
23537
  case 3:
23290
23538
  _context7.p = 3;
23291
- _t7 = _context7.v;
23292
- log.error('ERROR report user', _t7.message);
23539
+ _t0 = _context7.v;
23540
+ log.error('ERROR report user', _t0.message);
23293
23541
  case 4:
23294
23542
  return _context7.a(2);
23295
23543
  }
23296
23544
  }, _marked7$2, null, [[1, 3]]);
23297
23545
  }
23298
23546
  function getRoles(action) {
23299
- var _action$payload, timeout, attempts, SceytChatClient, roles, _t8;
23547
+ var _action$payload, timeout, attempts, SceytChatClient, roles, _t1;
23300
23548
  return _regenerator().w(function (_context8) {
23301
23549
  while (1) switch (_context8.p = _context8.n) {
23302
23550
  case 0:
@@ -23323,8 +23571,8 @@ function getRoles(action) {
23323
23571
  break;
23324
23572
  case 6:
23325
23573
  _context8.p = 6;
23326
- _t8 = _context8.v;
23327
- log.error('ERROR get roles', _t8);
23574
+ _t1 = _context8.v;
23575
+ log.error('ERROR get roles', _t1);
23328
23576
  _context8.n = 7;
23329
23577
  return put(getRolesFailAC((timeout || 0) + 300, (attempts || 0) + 1));
23330
23578
  case 7:
@@ -23337,7 +23585,7 @@ function MembersSaga() {
23337
23585
  while (1) switch (_context9.n) {
23338
23586
  case 0:
23339
23587
  _context9.n = 1;
23340
- return takeLatest(GET_MEMBERS, getMembers);
23588
+ return takeEvery(GET_MEMBERS, getMembers);
23341
23589
  case 1:
23342
23590
  _context9.n = 2;
23343
23591
  return takeEvery(LOAD_MORE_MEMBERS, loadMoreMembers);
@@ -23854,8 +24102,8 @@ var mutualChannelsLoadingStateSelector = function mutualChannelsLoadingStateSele
23854
24102
  return store.ChannelReducer.mutualChannelsLoadingState;
23855
24103
  };
23856
24104
 
23857
- var activeChannelMembersSelector = function activeChannelMembersSelector(store) {
23858
- return store.MembersReducer.activeChannelMembers;
24105
+ var activeChannelMembersMapSelector = function activeChannelMembersMapSelector(store) {
24106
+ return store.MembersReducer.channelsMembersMap;
23859
24107
  };
23860
24108
  var rolesSelector = function rolesSelector(store) {
23861
24109
  return store.MembersReducer.roles;
@@ -23866,11 +24114,11 @@ var getRolesFailSelector = function getRolesFailSelector(store) {
23866
24114
  var rolesMapSelector = function rolesMapSelector(store) {
23867
24115
  return store.MembersReducer.rolesMap;
23868
24116
  };
23869
- var membersLoadingStateSelector = function membersLoadingStateSelector(store) {
23870
- return store.MembersReducer.membersLoadingState;
24117
+ var channelsMembersLoadingStateSelector = function channelsMembersLoadingStateSelector(store) {
24118
+ return store.MembersReducer.channelsMembersLoadingState;
23871
24119
  };
23872
- var membersHasNextSelector = function membersHasNextSelector(store) {
23873
- return store.MembersReducer.membersHasNext;
24120
+ var channelsMembersHasNextMapSelector = function channelsMembersHasNextMapSelector(store) {
24121
+ return store.MembersReducer.channelsMembersHasNextMap;
23874
24122
  };
23875
24123
  var restrictedSelector = function restrictedSelector(store) {
23876
24124
  return store.MembersReducer.restricted;
@@ -24914,7 +25162,9 @@ var SceytChatContainer = function SceytChatContainer(_ref) {
24914
25162
  embeddedJoinGroupPopup = _ref$embeddedJoinGrou === void 0 ? false : _ref$embeddedJoinGrou,
24915
25163
  onUpdateChannel = _ref.onUpdateChannel,
24916
25164
  _ref$disappearingSett = _ref.disappearingSettings,
24917
- disappearingSettings = _ref$disappearingSett === void 0 ? null : _ref$disappearingSett;
25165
+ disappearingSettings = _ref$disappearingSett === void 0 ? null : _ref$disappearingSett,
25166
+ _ref$customLoadMember = _ref.customLoadMembersFunctions,
25167
+ customLoadMembersFunctions = _ref$customLoadMember === void 0 ? null : _ref$customLoadMember;
24918
25168
  useEffect(function () {
24919
25169
  log.setLevel(logLevel);
24920
25170
  }, [logLevel]);
@@ -24938,6 +25188,11 @@ var SceytChatContainer = function SceytChatContainer(_ref) {
24938
25188
  setDisappearingSettings(disappearingSettings);
24939
25189
  }
24940
25190
  }, [disappearingSettings]);
25191
+ useEffect(function () {
25192
+ if (customLoadMembersFunctions) {
25193
+ setCustomLoadMembersFunctions(customLoadMembersFunctions);
25194
+ }
25195
+ }, [customLoadMembersFunctions]);
24941
25196
  return /*#__PURE__*/React__default.createElement(Provider, {
24942
25197
  store: store,
24943
25198
  context: SceytReduxContext
@@ -40741,8 +40996,14 @@ function MentionsContainer(_ref2) {
40741
40996
  borderColor = _useColor2[THEME_COLORS.BORDER],
40742
40997
  background = _useColor2[THEME_COLORS.BACKGROUND];
40743
40998
  var dispatch = useDispatch();
40744
- var membersHasNext = useSelector(membersHasNextSelector);
40745
- var membersLoadingState = useSelector(membersLoadingStateSelector);
40999
+ var channelsMembersHasNext = useSelector(channelsMembersHasNextMapSelector, shallowEqual);
41000
+ var channelsMembersLoadingState = useSelector(channelsMembersLoadingStateSelector, shallowEqual);
41001
+ var membersLoadingState = useMemo(function () {
41002
+ return channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[channelId];
41003
+ }, [channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[channelId]]);
41004
+ var membersHasNext = useMemo(function () {
41005
+ return channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channelId];
41006
+ }, [channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channelId]]);
40746
41007
  var mentionsListRef = useRef(null);
40747
41008
  var contRef = useRef();
40748
41009
  var handleKeyDown = function handleKeyDown(event) {
@@ -40791,6 +41052,11 @@ function MentionsContainer(_ref2) {
40791
41052
  dispatch(loadMoreMembersAC(15, channelId));
40792
41053
  }
40793
41054
  }, [membersHasNext, membersLoadingState, channelId, dispatch]);
41055
+ useEffect(function () {
41056
+ if ((options === null || options === void 0 ? void 0 : options.length) < 20 && membersHasNext && membersLoadingState === LOADING_STATE.LOADED && channelId) {
41057
+ dispatch(loadMoreMembersAC(15, channelId));
41058
+ }
41059
+ }, [options === null || options === void 0 ? void 0 : options.length, membersHasNext, membersLoadingState, channelId, dispatch]);
40794
41060
  return /*#__PURE__*/React__default.createElement(MentionsContainerWrapper, {
40795
41061
  className: 'typeahead-popover mentions-menu',
40796
41062
  ref: contRef
@@ -40879,7 +41145,7 @@ function MentionsPlugin(_ref3) {
40879
41145
  var selectedIndex = _ref4.selectedIndex,
40880
41146
  selectOptionAndCleanUp = _ref4.selectOptionAndCleanUp,
40881
41147
  setHighlightedIndex = _ref4.setHighlightedIndex;
40882
- return anchorElementRef.current && options.length ? /*#__PURE__*/createPortal(/*#__PURE__*/React__default.createElement(MentionsContainer, {
41148
+ return anchorElementRef.current ? /*#__PURE__*/createPortal(/*#__PURE__*/React__default.createElement(MentionsContainer, {
40883
41149
  queryString: queryString,
40884
41150
  options: options,
40885
41151
  setMentionsIsOpen: setMentionsIsOpen,
@@ -43560,7 +43826,14 @@ var SendMessageInput = function SendMessageInput(_ref3) {
43560
43826
  var getFromContacts = getShowOnlyContactUsers();
43561
43827
  var activeChannel = useSelector(activeChannelSelector);
43562
43828
  var messageToEdit = useSelector(messageToEditSelector);
43563
- var activeChannelMembers = useSelector(activeChannelMembersSelector, shallowEqual);
43829
+ var activeChannelMembersMap = useSelector(activeChannelMembersMapSelector, shallowEqual);
43830
+ var activeChannelMembers = useMemo(function () {
43831
+ return (activeChannelMembersMap === null || activeChannelMembersMap === void 0 ? void 0 : activeChannelMembersMap[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id]) || [];
43832
+ }, [activeChannelMembersMap === null || activeChannelMembersMap === void 0 ? void 0 : activeChannelMembersMap[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id]]);
43833
+ var channelsMembersHasNext = useSelector(channelsMembersHasNextMapSelector, shallowEqual);
43834
+ var membersHasNext = useMemo(function () {
43835
+ return channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id];
43836
+ }, [channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id]]);
43564
43837
  var messageForReply = useSelector(messageForReplySelector);
43565
43838
  var draggedAttachments = useSelector(draggedAttachmentsSelector);
43566
43839
  var selectedMessagesMap = useSelector(selectedMessagesMapSelector);
@@ -44516,7 +44789,7 @@ var SendMessageInput = function SendMessageInput(_ref3) {
44516
44789
  if (activeChannel.id) {
44517
44790
  prevActiveChannelId = activeChannel.id;
44518
44791
  }
44519
- if (activeChannel.id) {
44792
+ if (activeChannel.id && membersHasNext === undefined) {
44520
44793
  dispatch(getMembersAC(activeChannel.id));
44521
44794
  }
44522
44795
  setMentionedUsers([]);
@@ -46571,7 +46844,95 @@ var DisappearingMessagesStatus = styled.span(_templateObject19$3 || (_templateOb
46571
46844
  });
46572
46845
  var ChevronRightIconWrapper$1 = styled.span(_templateObject20$3 || (_templateObject20$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n\n & > svg {\n width: 16px;\n height: 16px;\n transform: rotate(-90deg);\n }\n"])));
46573
46846
 
46574
- var _rect$2, _rect2, _path$1w;
46847
+ var _templateObject$W;
46848
+ var MonthHeader = function MonthHeader(_ref) {
46849
+ var currentCreatedAt = _ref.currentCreatedAt,
46850
+ previousCreatedAt = _ref.previousCreatedAt,
46851
+ isFirst = _ref.isFirst,
46852
+ padding = _ref.padding,
46853
+ fullWidth = _ref.fullWidth;
46854
+ var _useColor = useColors(),
46855
+ textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY];
46856
+ var monthComponent = useMemo(function () {
46857
+ var shouldShowHeader = isFirst || previousCreatedAt && new Date(currentCreatedAt).getMonth() !== new Date(previousCreatedAt).getMonth();
46858
+ if (!shouldShowHeader) {
46859
+ return null;
46860
+ }
46861
+ return /*#__PURE__*/React__default.createElement(MonthHeaderContainer, {
46862
+ color: textSecondary,
46863
+ padding: padding,
46864
+ fullWidth: fullWidth
46865
+ }, new Date(currentCreatedAt).toLocaleDateString('en-US', {
46866
+ month: 'long',
46867
+ year: 'numeric'
46868
+ }));
46869
+ }, [currentCreatedAt, previousCreatedAt, isFirst, textSecondary, padding, fullWidth]);
46870
+ return monthComponent;
46871
+ };
46872
+ var MonthHeaderContainer = styled.div(_templateObject$W || (_templateObject$W = _taggedTemplateLiteralLoose(["\n padding: ", ";\n width: ", ";\n font-style: normal;\n font-weight: 500;\n font-size: 13px;\n line-height: 16px;\n color: ", ";\n text-transform: uppercase;\n"])), function (props) {
46873
+ return props.padding || '9px 12px';
46874
+ }, function (props) {
46875
+ return props.fullWidth ? '100%' : 'auto';
46876
+ }, function (props) {
46877
+ return props.color;
46878
+ });
46879
+
46880
+ var _templateObject$X, _templateObject2$R;
46881
+ var Media = function Media(_ref) {
46882
+ var channel = _ref.channel;
46883
+ var _useColor = useColors(),
46884
+ background = _useColor[THEME_COLORS.BACKGROUND];
46885
+ var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
46886
+ var _useState = useState(null),
46887
+ mediaFile = _useState[0],
46888
+ setMediaFile = _useState[1];
46889
+ var dispatch = useDispatch();
46890
+ var handleMediaItemClick = function handleMediaItemClick(file) {
46891
+ setMediaFile(file);
46892
+ };
46893
+ useEffect(function () {
46894
+ dispatch(setAttachmentsAC([]));
46895
+ dispatch(getAttachmentsAC(channel.id, channelDetailsTabs.media));
46896
+ }, [channel.id]);
46897
+ return /*#__PURE__*/React__default.createElement(Container$o, null, attachments.map(function (file, index) {
46898
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
46899
+ key: file.id
46900
+ }, /*#__PURE__*/React__default.createElement(MonthHeader, {
46901
+ currentCreatedAt: file.createdAt,
46902
+ previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
46903
+ isFirst: index === 0,
46904
+ padding: '9px 6px',
46905
+ fullWidth: true
46906
+ }), /*#__PURE__*/React__default.createElement(MediaItem, null, file.type === 'image' ? (/*#__PURE__*/React__default.createElement(Attachment$1, {
46907
+ attachment: _extends({}, file, {
46908
+ metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
46909
+ }),
46910
+ handleMediaItemClick: handleMediaItemClick,
46911
+ backgroundColor: background,
46912
+ borderRadius: '8px',
46913
+ isDetailsView: true
46914
+ })) : (
46915
+ /*#__PURE__*/
46916
+ React__default.createElement(Attachment$1, {
46917
+ attachment: _extends({}, file, {
46918
+ metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
46919
+ }),
46920
+ handleMediaItemClick: handleMediaItemClick,
46921
+ backgroundColor: background,
46922
+ borderRadius: '8px',
46923
+ isDetailsView: true
46924
+ }))));
46925
+ }), mediaFile && (/*#__PURE__*/React__default.createElement(SliderPopup, {
46926
+ channel: channel,
46927
+ setIsSliderOpen: setMediaFile,
46928
+ mediaFiles: attachments,
46929
+ currentMediaFile: mediaFile
46930
+ })));
46931
+ };
46932
+ var Container$o = styled.div(_templateObject$X || (_templateObject$X = _taggedTemplateLiteralLoose(["\n padding: 6px 4px;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n"])));
46933
+ var MediaItem = styled.div(_templateObject2$R || (_templateObject2$R = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n aspect-ratio: 1/1;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
46934
+
46935
+ var _rect$2, _path$1w;
46575
46936
  function _extends$1A() {
46576
46937
  return _extends$1A = Object.assign ? Object.assign.bind() : function (n) {
46577
46938
  for (var e = 1; e < arguments.length; e++) {
@@ -46581,30 +46942,23 @@ function _extends$1A() {
46581
46942
  return n;
46582
46943
  }, _extends$1A.apply(null, arguments);
46583
46944
  }
46584
- function SvgAddMember(props) {
46945
+ function SvgDocumentIcon(props) {
46585
46946
  return /*#__PURE__*/createElement$1("svg", _extends$1A({
46586
46947
  width: 40,
46587
46948
  height: 40,
46588
- viewBox: "0 0 40.01 40.01",
46589
46949
  fill: "none",
46590
46950
  xmlns: "http://www.w3.org/2000/svg"
46591
46951
  }, props), _rect$2 || (_rect$2 = /*#__PURE__*/createElement$1("rect", {
46592
46952
  width: 40,
46593
46953
  height: 40,
46594
- rx: 20,
46595
- fill: "#F3F5F7"
46596
- })), _rect2 || (_rect2 = /*#__PURE__*/createElement$1("rect", {
46597
- x: 0.25,
46598
- y: 0.25,
46599
- width: 39.5,
46600
- height: 39.5,
46601
- rx: 19.75,
46602
- stroke: "#000",
46603
- strokeOpacity: 0.08,
46604
- strokeWidth: 0.5
46954
+ rx: 8,
46955
+ fill: "currentColor",
46956
+ fillOpacity: 0.2
46605
46957
  })), _path$1w || (_path$1w = /*#__PURE__*/createElement$1("path", {
46606
- d: "M20 12a1 1 0 011 1v6h6a1 1 0 110 2h-6v6a1 1 0 11-2 0l-.001-6H13a1 1 0 110-2h5.999L19 13a1 1 0 011-1z",
46607
- fill: "CurrentColor"
46958
+ fillRule: "evenodd",
46959
+ clipRule: "evenodd",
46960
+ d: "M17.593 9.5c-2.098 0-3.023.185-3.962.687a4.685 4.685 0 00-1.944 1.944c-.502.939-.687 1.864-.687 3.962v7.386c0 2.098.185 3.023.687 3.962a4.685 4.685 0 001.944 1.944c.939.502 1.864.686 3.962.686h3.957c2.098 0 3.023-.184 3.962-.687a4.685 4.685 0 001.944-1.944c.502-.938.687-1.863.687-3.961v-5.1c0-.683-.024-.99-.105-1.34a3.094 3.094 0 00-.399-.964c-.19-.305-.39-.54-.874-1.022l-4.175-4.175c-.483-.483-.717-.684-1.022-.874a3.096 3.096 0 00-.963-.4c-.294-.067-.556-.095-1.034-.102V9.5h-1.978zm0 1.714c-2.002 0-2.587.182-3.154.485a2.971 2.971 0 00-1.24 1.24c-.303.567-.485 1.152-.485 3.154v7.386c0 2.001.182 2.587.485 3.153a2.97 2.97 0 001.24 1.24c.567.304 1.152.485 3.154.485h3.957c2.001 0 2.587-.181 3.153-.484a2.97 2.97 0 001.241-1.241c.303-.566.485-1.152.485-3.153v-5.1c0-.118-.001-.22-.003-.308h-4.712a2.143 2.143 0 01-2.143-2.142l.002-4.713-.15-.001h-1.83zm3.785.876l-.092-.091v3.93c0 .21.151.385.351.421l.077.007 3.932.002-.093-.094-4.175-4.175zm-6.092 12.839c0-.474.383-.858.857-.858h3.428a.857.857 0 010 1.715h-3.428a.857.857 0 01-.857-.857zm.857-4.286a.857.857 0 100 1.714h6a.857.857 0 000-1.714h-6z",
46961
+ fill: "currentColor"
46608
46962
  })));
46609
46963
  }
46610
46964
 
@@ -46618,227 +46972,796 @@ function _extends$1B() {
46618
46972
  return n;
46619
46973
  }, _extends$1B.apply(null, arguments);
46620
46974
  }
46621
- function SvgMoreVert(props) {
46975
+ function SvgDownloadFile(props) {
46622
46976
  return /*#__PURE__*/createElement$1("svg", _extends$1B({
46623
- width: 4,
46624
- height: 14,
46625
- fill: "none",
46626
- xmlns: "http://www.w3.org/2000/svg"
46977
+ width: 24,
46978
+ height: 24,
46979
+ xmlns: "http://www.w3.org/2000/svg",
46980
+ fill: "currentColor"
46627
46981
  }, props), _path$1x || (_path$1x = /*#__PURE__*/createElement$1("path", {
46628
- d: "M.532 11.012c.355-.355.764-.533 1.228-.533.464 0 .874.178 1.228.533.355.354.532.764.532 1.228 0 .464-.177.873-.532 1.228-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 13.113 0 12.704 0 12.24c0-.464.177-.873.532-1.228zm0-5.24c.355-.355.764-.532 1.228-.532.464 0 .874.177 1.228.532.355.355.532.764.532 1.228 0 .464-.177.873-.532 1.228-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 7.873 0 7.464 0 7c0-.464.177-.873.532-1.228zm2.456-2.784c-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 2.634 0 2.224 0 1.76 0 1.296.177.887.532.532.887.177 1.296 0 1.76 0c.464 0 .874.177 1.228.532.355.355.532.764.532 1.228 0 .464-.177.874-.532 1.228z",
46629
- fill: "#9B9DA8"
46982
+ fillRule: "evenodd",
46983
+ clipRule: "evenodd",
46984
+ d: "M12 2a.91.91 0 01.91.91v11.44l2.993-2.993a.91.91 0 011.285 1.286l-4.545 4.545a.91.91 0 01-1.286 0l-4.545-4.545a.909.909 0 111.285-1.286l2.994 2.994V2.909A.91.91 0 0112 2zM2.91 15.636a.91.91 0 01.908.91v1.136a2.5 2.5 0 002.5 2.5h11.364a2.5 2.5 0 002.5-2.5v-1.136a.91.91 0 111.818 0v1.136A4.318 4.318 0 0117.682 22H6.318A4.318 4.318 0 012 17.682v-1.136a.91.91 0 01.91-.91z"
46630
46985
  })));
46631
46986
  }
46632
46987
 
46633
- var _templateObject$W, _templateObject2$R, _templateObject3$K;
46634
- var ChangeMemberRole = function ChangeMemberRole(_ref) {
46635
- var theme = _ref.theme,
46636
- channelId = _ref.channelId,
46637
- member = _ref.member,
46638
- handleClosePopup = _ref.handleClosePopup;
46639
- var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
46988
+ var _templateObject$Y, _templateObject2$S, _templateObject3$K, _templateObject4$D, _templateObject5$y, _templateObject6$v, _templateObject7$u, _templateObject8$q;
46989
+ var Files = function Files(_ref) {
46990
+ var channelId = _ref.channelId,
46991
+ filePreviewIcon = _ref.filePreviewIcon,
46992
+ filePreviewHoverIcon = _ref.filePreviewHoverIcon,
46993
+ filePreviewTitleColor = _ref.filePreviewTitleColor,
46994
+ filePreviewSizeColor = _ref.filePreviewSizeColor,
46995
+ filePreviewHoverBackgroundColor = _ref.filePreviewHoverBackgroundColor,
46996
+ filePreviewDownloadIcon = _ref.filePreviewDownloadIcon,
46997
+ fileNameFontSize = _ref.fileNameFontSize,
46998
+ fileNameLineHeight = _ref.fileNameLineHeight,
46999
+ fileSizeFontSize = _ref.fileSizeFontSize,
47000
+ fileSizeLineHeight = _ref.fileSizeLineHeight;
46640
47001
  var _useColor = useColors(),
46641
47002
  accentColor = _useColor[THEME_COLORS.ACCENT],
46642
47003
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
46643
47004
  textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
46644
- textFootnote = _useColor[THEME_COLORS.TEXT_FOOTNOTE],
46645
- warningColor = _useColor[THEME_COLORS.WARNING],
46646
47005
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
46647
- textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
46648
- background = _useColor[THEME_COLORS.BACKGROUND],
46649
47006
  surface1 = _useColor[THEME_COLORS.SURFACE_1],
46650
- iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
46651
- border = _useColor[THEME_COLORS.BORDER];
47007
+ overlayBackground2 = _useColor[THEME_COLORS.OVERLAY_BACKGROUND_2];
46652
47008
  var dispatch = useDispatch();
46653
- var _useState = useState(false),
46654
- isChanged = _useState[0],
46655
- setIsChanged = _useState[1];
46656
- var _useState2 = useState(),
46657
- selectedRole = _useState2[0],
46658
- setSelectedRole = _useState2[1];
46659
- var roles = useSelector(rolesSelector, shallowEqual) || [];
46660
- useEffect(function () {
46661
- if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
46662
- dispatch(getRolesAC());
46663
- }
46664
- }, [connectionStatus]);
46665
- var handleSave = function handleSave() {
46666
- if (isChanged && selectedRole) {
46667
- var updateMember = _extends({}, member, {
46668
- role: selectedRole
47009
+ var _useState = useState({}),
47010
+ downloadingFilesMap = _useState[0],
47011
+ setDownloadingFilesMap = _useState[1];
47012
+ var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
47013
+ var nameSizeNum = fileNameFontSize && Number(fileNameFontSize.slice(0, -2));
47014
+ var nameMaxLength = nameSizeNum ? 32 - (nameSizeNum - 15) * (nameSizeNum < 20 ? 2 : 1) : 32;
47015
+ var handleCompleteDownload = function handleCompleteDownload(attachmentId) {
47016
+ var stateCopy = _extends({}, downloadingFilesMap);
47017
+ delete stateCopy[attachmentId];
47018
+ setDownloadingFilesMap(stateCopy);
47019
+ };
47020
+ var handleDownloadFile = function handleDownloadFile(attachment) {
47021
+ if (attachment.id) {
47022
+ setDownloadingFilesMap(function (prevState) {
47023
+ var _extends2;
47024
+ return _extends({}, prevState, (_extends2 = {}, _extends2[attachment.id] = {
47025
+ uploadPercent: 1
47026
+ }, _extends2));
46669
47027
  });
46670
- dispatch(changeMemberRoleAC(channelId, [updateMember]));
46671
47028
  }
46672
- handleClosePopup();
47029
+ downloadFile(attachment, true, handleCompleteDownload, function (progress) {
47030
+ var loadedRes = progress.loaded && progress.loaded / progress.total;
47031
+ var uploadPercent = loadedRes && loadedRes * 100;
47032
+ setDownloadingFilesMap(function (prevState) {
47033
+ var _extends3;
47034
+ return _extends({}, prevState, (_extends3 = {}, _extends3[attachment.id] = {
47035
+ uploadPercent: uploadPercent
47036
+ }, _extends3));
47037
+ });
47038
+ });
46673
47039
  };
46674
- function onChangeFunction(roleName) {
46675
- if (member.role !== roleName) {
46676
- setIsChanged(true);
47040
+ useEffect(function () {
47041
+ dispatch(getAttachmentsAC(channelId, channelDetailsTabs.file));
47042
+ }, [channelId]);
47043
+ return /*#__PURE__*/React__default.createElement(Container$p, null, attachments.map(function (file, index) {
47044
+ var metas = file.metadata && isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata;
47045
+ var withPrefix = true;
47046
+ var attachmentThumb = '';
47047
+ if (metas && metas.tmb) {
47048
+ if (metas.tmb.length < 70) {
47049
+ attachmentThumb = base64ToDataURL(metas.tmb);
47050
+ withPrefix = false;
47051
+ } else {
47052
+ attachmentThumb = metas.tmb;
47053
+ }
46677
47054
  }
46678
- setSelectedRole(roleName);
46679
- }
46680
- return /*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
46681
- backgroundColor: background,
46682
- maxWidth: '400px',
46683
- padding: '0'
46684
- }, /*#__PURE__*/React__default.createElement(PopupBody, {
46685
- paddingH: '24px',
46686
- paddingV: '24px'
46687
- }, /*#__PURE__*/React__default.createElement(CloseIcon, {
46688
- color: iconPrimary,
46689
- onClick: handleClosePopup
46690
- }), /*#__PURE__*/React__default.createElement(PopupName, {
46691
- color: textPrimary
46692
- }, "Change member role"), /*#__PURE__*/React__default.createElement(RolesSelect, null, /*#__PURE__*/React__default.createElement(RoleLabel, {
46693
- color: textSecondary
46694
- }, "Roles"), /*#__PURE__*/React__default.createElement(CustomSelect, {
46695
- backgroundColor: background,
46696
- color: textPrimary,
46697
- errorColor: warningColor,
46698
- placeholderColor: textFootnote,
46699
- borderColor: border,
46700
- disabledColor: surface1
46701
- }, /*#__PURE__*/React__default.createElement(DropDown, {
46702
- withIcon: true,
46703
- theme: theme,
46704
- isSelect: true,
46705
- trigger: /*#__PURE__*/React__default.createElement(CustomSelectTrigger, {
46706
- color: textPrimary
46707
- }, selectedRole || member.role || 'Select')
46708
- }, /*#__PURE__*/React__default.createElement(DropdownOptionsUl, {
46709
- theme: theme
46710
- }, !!roles.length && roles.map(function (role) {
46711
- return /*#__PURE__*/React__default.createElement(DropdownOptionLi, {
46712
- hoverBackground: backgroundHovered,
46713
- key: role.name,
47055
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
47056
+ key: file.id
47057
+ }, /*#__PURE__*/React__default.createElement(MonthHeader, {
47058
+ currentCreatedAt: file.createdAt,
47059
+ previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
47060
+ isFirst: index === 0,
47061
+ padding: '14px 14px 0'
47062
+ }), /*#__PURE__*/React__default.createElement(FileItem, {
47063
+ hoverBackgroundColor: filePreviewHoverBackgroundColor || backgroundHovered
47064
+ }, metas && metas.tmb ? (/*#__PURE__*/React__default.createElement(FileThumb, {
47065
+ draggable: false,
47066
+ src: "" + (withPrefix ? 'data:image/jpeg;base64,' : '') + attachmentThumb
47067
+ })) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont, {
47068
+ iconColor: accentColor,
47069
+ fillColor: surface1
47070
+ }, filePreviewIcon || /*#__PURE__*/React__default.createElement(SvgDocumentIcon, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont, {
47071
+ iconColor: accentColor,
47072
+ fillColor: surface1
47073
+ }, filePreviewHoverIcon || /*#__PURE__*/React__default.createElement(SvgDocumentIcon, null)))), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(AttachmentPreviewTitle, {
47074
+ fontSize: fileNameFontSize,
47075
+ lineHeight: fileNameLineHeight,
47076
+ color: filePreviewTitleColor || textPrimary
47077
+ }, _formatLargeText(file.name, nameMaxLength)), /*#__PURE__*/React__default.createElement(FileSizeAndDate, {
47078
+ fontSize: fileSizeFontSize,
47079
+ lineHeight: fileSizeLineHeight,
47080
+ color: filePreviewSizeColor || textSecondary
47081
+ }, file.size ? bytesToSize(file.size) + " \u2022 " + formatChannelDetailsDate(file.createdAt) : formatChannelDetailsDate(file.createdAt))), /*#__PURE__*/React__default.createElement(DownloadWrapper, {
47082
+ visible: !!downloadingFilesMap[file.id],
47083
+ iconColor: accentColor,
46714
47084
  onClick: function onClick() {
46715
- return onChangeFunction(role.name);
46716
- },
46717
- textColor: textPrimary
46718
- }, /*#__PURE__*/React__default.createElement(RoleSpan, null, role.name));
46719
- })))))), /*#__PURE__*/React__default.createElement(PopupFooter, {
46720
- backgroundColor: surface1
46721
- }, /*#__PURE__*/React__default.createElement(Button, {
46722
- type: 'button',
46723
- color: textPrimary,
46724
- backgroundColor: 'transparent',
46725
- onClick: function onClick() {
46726
- return handleClosePopup();
46727
- }
46728
- }, "Cancel"), /*#__PURE__*/React__default.createElement(Button, {
46729
- type: 'button',
46730
- color: textOnPrimary,
46731
- backgroundColor: accentColor,
46732
- borderRadius: '8px',
46733
- onClick: handleSave
46734
- }, "Save"))));
47085
+ return handleDownloadFile(file);
47086
+ }
47087
+ }, downloadingFilesMap[file.id] ? (/*#__PURE__*/React__default.createElement(ProgressWrapper$2, null, /*#__PURE__*/React__default.createElement(CircularProgressbar, {
47088
+ minValue: 0,
47089
+ maxValue: 100,
47090
+ value: downloadingFilesMap[file.id].uploadPercent || 0,
47091
+ backgroundPadding: 6,
47092
+ background: true,
47093
+ text: '',
47094
+ styles: {
47095
+ background: {
47096
+ fill: overlayBackground2 + "66"
47097
+ },
47098
+ path: {
47099
+ stroke: accentColor,
47100
+ strokeLinecap: 'butt',
47101
+ strokeWidth: '6px',
47102
+ transition: 'stroke-dashoffset 0.5s ease 0s',
47103
+ transform: 'rotate(0turn)',
47104
+ transformOrigin: 'center center'
47105
+ }
47106
+ }
47107
+ }))) : filePreviewDownloadIcon || /*#__PURE__*/React__default.createElement(SvgDownloadFile, null))));
47108
+ }));
46735
47109
  };
46736
- var RolesSelect = styled.div(_templateObject$W || (_templateObject$W = _taggedTemplateLiteralLoose(["\n margin-bottom: 32px;\n"])));
46737
- var RoleLabel = styled.div(_templateObject2$R || (_templateObject2$R = _taggedTemplateLiteralLoose(["\n font-style: normal;\n font-weight: 500;\n font-size: 14px;\n margin: 20px 0 8px;\n color: ", ";\n"])), function (_ref2) {
46738
- var color = _ref2.color;
46739
- return color;
47110
+ var Container$p = styled.ul(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
47111
+ var DownloadWrapper = styled.a(_templateObject2$S || (_templateObject2$S = _taggedTemplateLiteralLoose(["\n text-decoration: none;\n visibility: ", ";\n padding: 5px 6px;\n position: absolute;\n top: 25%;\n right: 16px;\n cursor: pointer;\n & > svg {\n & path {\n fill: ", ";\n }\n color: ", ";\n }\n"])), function (props) {
47112
+ return props.visible ? 'visible' : 'hidden';
47113
+ }, function (props) {
47114
+ return props.iconColor;
47115
+ }, function (props) {
47116
+ return props.iconColor;
47117
+ });
47118
+ var ProgressWrapper$2 = styled.span(_templateObject3$K || (_templateObject3$K = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: 20px;\n height: 20px;\n animation: preloader 1.5s linear infinite;\n\n @keyframes preloader {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])));
47119
+ var FileIconCont = styled.span(_templateObject4$D || (_templateObject4$D = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n & > svg {\n width: 40px;\n height: 40px;\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47120
+ return props.iconColor;
47121
+ }, function (props) {
47122
+ return props.fillColor;
47123
+ });
47124
+ var FileHoverIconCont = styled.span(_templateObject5$y || (_templateObject5$y = _taggedTemplateLiteralLoose(["\n display: none;\n & > svg {\n width: 40px;\n height: 40px;\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47125
+ return props.iconColor;
47126
+ }, function (props) {
47127
+ return props.fillColor;
47128
+ });
47129
+ var FileThumb = styled.img(_templateObject6$v || (_templateObject6$v = _taggedTemplateLiteralLoose(["\n width: 40px;\n height: 40px;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n object-fit: cover;\n"])));
47130
+ var FileItem = styled.div(_templateObject7$u || (_templateObject7$u = _taggedTemplateLiteralLoose(["\n position: relative;\n padding: 11px 16px;\n display: flex;\n align-items: center;\n font-size: 15px;\n transition: all 0.2s;\n div {\n margin-left: 7px;\n width: calc(100% - 48px);\n }\n &:hover {\n background-color: ", ";\n ", " {\n visibility: visible;\n }\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n /*&.isHover {\n\n }*/\n"])), function (props) {
47131
+ return props.hoverBackgroundColor;
47132
+ }, DownloadWrapper, FileIconCont, FileHoverIconCont);
47133
+ var FileSizeAndDate = styled.span(_templateObject8$q || (_templateObject8$q = _taggedTemplateLiteralLoose(["\n display: block;\n font-style: normal;\n font-weight: normal;\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n margin-top: 2px;\n"])), function (props) {
47134
+ return props.fontSize || '13px';
47135
+ }, function (props) {
47136
+ return props.lineHeight || '16px';
47137
+ }, function (props) {
47138
+ return props.color;
46740
47139
  });
46741
- var RoleSpan = styled.span(_templateObject3$K || (_templateObject3$K = _taggedTemplateLiteralLoose(["\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n text-transform: capitalize;\n"])));
46742
47140
 
46743
- function ResetLinkConfirmModal(_ref) {
46744
- var _getInviteLinkOptions;
46745
- var onCancel = _ref.onCancel,
46746
- onConfirm = _ref.onConfirm;
46747
- var options = ((_getInviteLinkOptions = getInviteLinkOptions()) === null || _getInviteLinkOptions === void 0 ? void 0 : _getInviteLinkOptions.ResetLinkConfirmModal) || {};
46748
- var titleText = options.titleText || 'Reset link';
46749
- var descriptionText = options.descriptionText || (/*#__PURE__*/React__default.createElement("span", null, "Are you sure you want to reset the group link? Anyone with the existing link will no longer be able to use it to join."));
46750
- var buttonText = options.buttonText || 'Reset';
46751
- var show = options.show !== false;
46752
- if (!show) return null;
46753
- var customRender = typeof options.render === 'function' ? options.render : null;
46754
- var customComponent = options.component || options.CustomComponent;
46755
- if (customRender) {
46756
- return customRender({
46757
- onCancel: onCancel,
46758
- onConfirm: onConfirm,
46759
- defaults: {
46760
- titleText: titleText,
46761
- descriptionText: descriptionText,
46762
- buttonText: buttonText
46763
- }
46764
- });
46765
- }
46766
- if (customComponent) {
46767
- return customComponent;
46768
- }
46769
- return /*#__PURE__*/React__default.createElement(ConfirmPopup, {
46770
- togglePopup: onCancel,
46771
- handleFunction: onConfirm,
46772
- title: titleText,
46773
- description: descriptionText,
46774
- buttonText: buttonText
46775
- });
47141
+ var _rect$3, _path$1y;
47142
+ function _extends$1C() {
47143
+ return _extends$1C = Object.assign ? Object.assign.bind() : function (n) {
47144
+ for (var e = 1; e < arguments.length; e++) {
47145
+ var t = arguments[e];
47146
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47147
+ }
47148
+ return n;
47149
+ }, _extends$1C.apply(null, arguments);
47150
+ }
47151
+ function SvgLinkIcon(props) {
47152
+ return /*#__PURE__*/createElement$1("svg", _extends$1C({
47153
+ width: 40,
47154
+ height: 40,
47155
+ fill: "none",
47156
+ xmlns: "http://www.w3.org/2000/svg",
47157
+ color: "#5159f6"
47158
+ }, props), _rect$3 || (_rect$3 = /*#__PURE__*/createElement$1("rect", {
47159
+ width: 40,
47160
+ height: 40,
47161
+ rx: 8,
47162
+ fill: "currentColor",
47163
+ fillOpacity: 0.2
47164
+ })), _path$1y || (_path$1y = /*#__PURE__*/createElement$1("path", {
47165
+ fillRule: "evenodd",
47166
+ clipRule: "evenodd",
47167
+ d: "M21.547 11.524a4.9 4.9 0 016.928 6.929l-.01.011-4 4a4.9 4.9 0 01-6.93 0 .9.9 0 011.273-1.273 3.1 3.1 0 004.384 0l3.994-3.994a3.1 3.1 0 00-4.384-4.383l-1.094 1.094a.9.9 0 01-1.272-1.273l1.1-1.1.01-.01zm-6.011 6.011a4.9 4.9 0 016.928 0 .9.9 0 11-1.272 1.273 3.1 3.1 0 00-4.384 0l-4 4-.01.011a3.1 3.1 0 104.383 4.384l.01-.012 1.103-1.1a.9.9 0 111.272 1.272l-1.097 1.096a4.9 4.9 0 11-6.928-6.929l3.995-3.995z",
47168
+ fill: "currentColor"
47169
+ })));
46776
47170
  }
46777
47171
 
46778
- var _templateObject$X, _templateObject2$S, _templateObject3$L, _templateObject4$D, _templateObject5$y, _templateObject6$v, _templateObject7$u, _templateObject8$q, _templateObject9$l, _templateObject0$j, _templateObject1$g, _templateObject10$a, _templateObject11$8, _templateObject12$7, _templateObject13$5;
46779
- function InviteLinkModal(_ref) {
46780
- var _getInviteLinkOptions, _tabs$link, _tabs$qr, _tabs$link2, _tabs$qr2;
46781
- var onClose = _ref.onClose,
46782
- SVGOrPNGLogoIcon = _ref.SVGOrPNGLogoIcon,
46783
- channelId = _ref.channelId;
47172
+ var _templateObject$Z, _templateObject2$T, _templateObject3$L, _templateObject4$E, _templateObject5$z;
47173
+ var LinkItem = function LinkItem(_ref) {
47174
+ var link = _ref.link,
47175
+ linkPreviewIcon = _ref.linkPreviewIcon,
47176
+ linkPreviewHoverIcon = _ref.linkPreviewHoverIcon,
47177
+ linkPreviewColor = _ref.linkPreviewColor,
47178
+ linkPreviewHoverBackgroundColor = _ref.linkPreviewHoverBackgroundColor;
46784
47179
  var _useColor = useColors(),
46785
47180
  accentColor = _useColor[THEME_COLORS.ACCENT],
46786
47181
  textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
46787
- textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
46788
- background = _useColor[THEME_COLORS.BACKGROUND],
46789
47182
  backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
46790
- surface1 = _useColor[THEME_COLORS.SURFACE_1],
46791
- textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
46792
- border = _useColor[THEME_COLORS.BORDER],
46793
- iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
46794
- tooltipBackground = _useColor[THEME_COLORS.TOOLTIP_BACKGROUND];
46795
- var theme = useSelector(themeSelector) || 'light';
46796
- var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
46797
- var channelsInviteKeys = useSelector(channelInviteKeysSelector, shallowEqual);
47183
+ surface1 = _useColor[THEME_COLORS.SURFACE_1];
47184
+ useEffect(function () {}, []);
47185
+ return /*#__PURE__*/React__default.createElement(FileItem$1, {
47186
+ draggable: false,
47187
+ hoverBackgroundColor: linkPreviewHoverBackgroundColor || backgroundHovered
47188
+ }, /*#__PURE__*/React__default.createElement("a", {
47189
+ draggable: false,
47190
+ href: link.startsWith('http') ? link : "https://" + link,
47191
+ target: '_blank',
47192
+ rel: 'noreferrer'
47193
+ }, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LinkIconCont, {
47194
+ iconColor: accentColor,
47195
+ fillColor: surface1
47196
+ }, linkPreviewIcon || /*#__PURE__*/React__default.createElement(SvgLinkIcon, null)), /*#__PURE__*/React__default.createElement(LinkHoverIconCont, {
47197
+ iconColor: accentColor,
47198
+ fillColor: surface1
47199
+ }, linkPreviewHoverIcon || /*#__PURE__*/React__default.createElement(SvgLinkIcon, null))), /*#__PURE__*/React__default.createElement(LinkInfoCont, null, /*#__PURE__*/React__default.createElement(LinkUrl, {
47200
+ color: linkPreviewColor || textPrimary
47201
+ }, link))));
47202
+ };
47203
+ var LinkIconCont = styled.span(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n > svg {\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47204
+ return props.iconColor;
47205
+ }, function (props) {
47206
+ return props.fillColor;
47207
+ });
47208
+ var LinkHoverIconCont = styled.span(_templateObject2$T || (_templateObject2$T = _taggedTemplateLiteralLoose(["\n display: none;\n > svg {\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47209
+ return props.iconColor;
47210
+ }, function (props) {
47211
+ return props.fillColor;
47212
+ });
47213
+ var LinkInfoCont = styled.div(_templateObject3$L || (_templateObject3$L = _taggedTemplateLiteralLoose(["\n margin-left: 12px;\n width: calc(100% - 40px);\n"])));
47214
+ var FileItem$1 = styled.li(_templateObject4$E || (_templateObject4$E = _taggedTemplateLiteralLoose(["\n padding: 9px 16px;\n a {\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n &:hover {\n background-color: ", ";\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n"])), function (props) {
47215
+ return props.hoverBackgroundColor;
47216
+ }, LinkIconCont, LinkHoverIconCont);
47217
+ var LinkUrl = styled.span(_templateObject5$z || (_templateObject5$z = _taggedTemplateLiteralLoose(["\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 52px);\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-decoration: underline;\n color: ", ";\n"])), function (props) {
47218
+ return props.color;
47219
+ });
47220
+
47221
+ var _templateObject$_;
47222
+ var Links = function Links(_ref) {
47223
+ var channelId = _ref.channelId,
47224
+ linkPreviewIcon = _ref.linkPreviewIcon,
47225
+ linkPreviewHoverIcon = _ref.linkPreviewHoverIcon,
47226
+ linkPreviewTitleColor = _ref.linkPreviewTitleColor,
47227
+ linkPreviewColor = _ref.linkPreviewColor,
47228
+ linkPreviewHoverBackgroundColor = _ref.linkPreviewHoverBackgroundColor;
46798
47229
  var dispatch = useDispatch();
46799
- var options = ((_getInviteLinkOptions = getInviteLinkOptions()) === null || _getInviteLinkOptions === void 0 ? void 0 : _getInviteLinkOptions.InviteLinkModal) || {};
46800
- var customRender = typeof options.render === 'function' ? options.render : null;
46801
- var customComponent = options.component || options.CustomComponent;
46802
- var titleText = options.titleText || 'Invite link';
46803
- var linkLabel = options.linkLabel || 'Link';
46804
- var linkDescription = options.linkDescription || 'You can invite anyone to the chat using this link';
46805
- var shareButtonText = options.shareButtonText || 'Share';
46806
- var cancelButtonText = options.cancelButtonText || 'Cancel';
46807
- var showHistorySection = options.showHistorySection !== false;
46808
- var showResetButton = options.showResetButton !== false;
46809
- var historyTitle = options.historyTitle || 'History';
46810
- var showPreviousMessagesLabel = options.showPreviousMessagesLabel || 'Show Previous Messages';
46811
- var tabs = options.tabs || {
46812
- link: {
46813
- show: true,
46814
- title: 'Group Link'
46815
- },
46816
- qr: {
46817
- show: true,
46818
- title: 'QR Code'
46819
- }
46820
- };
46821
- var showLinkTab = ((_tabs$link = tabs.link) === null || _tabs$link === void 0 ? void 0 : _tabs$link.show) !== false;
46822
- var showQrTab = ((_tabs$qr = tabs.qr) === null || _tabs$qr === void 0 ? void 0 : _tabs$qr.show) !== false;
46823
- var linkTabTitle = ((_tabs$link2 = tabs.link) === null || _tabs$link2 === void 0 ? void 0 : _tabs$link2.title) || 'Group Link';
46824
- var qrTabTitle = ((_tabs$qr2 = tabs.qr) === null || _tabs$qr2 === void 0 ? void 0 : _tabs$qr2.title) || 'QR Code';
46825
- var qrHintText = options.qrHintText || 'Show or send this to anyone who wants to join this channel';
46826
- var _useState = useState('link'),
46827
- activeTab = _useState[0],
46828
- setActiveTab = _useState[1];
46829
- var _useState2 = useState(false),
46830
- showResetConfirm = _useState2[0],
46831
- setShowResetConfirm = _useState2[1];
46832
- var _useState3 = useState(false),
46833
- openForwardPopup = _useState3[0],
46834
- setOpenForwardPopup = _useState3[1];
46835
- var _useState4 = useState('link'),
46836
- shareMode = _useState4[0],
46837
- setShareMode = _useState4[1];
46838
- var _useState5 = useState(false),
46839
- showCopiedToast = _useState5[0],
46840
- setShowCopiedToast = _useState5[1];
46841
- var logoRef = useRef(null);
47230
+ var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
47231
+ useEffect(function () {
47232
+ dispatch(getAttachmentsAC(channelId, channelDetailsTabs.link));
47233
+ }, [channelId]);
47234
+ return /*#__PURE__*/React__default.createElement(Container$q, null, attachments.map(function (file, index) {
47235
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
47236
+ key: file.id
47237
+ }, /*#__PURE__*/React__default.createElement(MonthHeader, {
47238
+ currentCreatedAt: file.createdAt,
47239
+ previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
47240
+ isFirst: index === 0,
47241
+ padding: '6px 14px 0'
47242
+ }), /*#__PURE__*/React__default.createElement(LinkItem, {
47243
+ link: file.url,
47244
+ linkPreviewColor: linkPreviewColor,
47245
+ linkPreviewHoverBackgroundColor: linkPreviewHoverBackgroundColor,
47246
+ linkPreviewHoverIcon: linkPreviewHoverIcon,
47247
+ linkPreviewTitleColor: linkPreviewTitleColor,
47248
+ linkPreviewIcon: linkPreviewIcon
47249
+ }));
47250
+ }));
47251
+ };
47252
+ var Container$q = styled.ul(_templateObject$_ || (_templateObject$_ = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 11px 0 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
47253
+
47254
+ var _rect$4, _path$1z;
47255
+ function _extends$1D() {
47256
+ return _extends$1D = Object.assign ? Object.assign.bind() : function (n) {
47257
+ for (var e = 1; e < arguments.length; e++) {
47258
+ var t = arguments[e];
47259
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47260
+ }
47261
+ return n;
47262
+ }, _extends$1D.apply(null, arguments);
47263
+ }
47264
+ function SvgVoicePreview(props) {
47265
+ return /*#__PURE__*/createElement$1("svg", _extends$1D({
47266
+ width: 40,
47267
+ height: 40,
47268
+ fill: "none",
47269
+ xmlns: "http://www.w3.org/2000/svg"
47270
+ }, props), _rect$4 || (_rect$4 = /*#__PURE__*/createElement$1("rect", {
47271
+ width: 40,
47272
+ height: 40,
47273
+ rx: 20,
47274
+ fill: "#5159F6"
47275
+ })), _path$1z || (_path$1z = /*#__PURE__*/createElement$1("path", {
47276
+ d: "M27.536 18.696c.952.576.952 2.03 0 2.605l-9.918 5.997c-.944.57-2.118-.151-2.118-1.303V14.002c0-1.151 1.174-1.873 2.118-1.303l9.918 5.997z",
47277
+ fill: "#fff"
47278
+ })));
47279
+ }
47280
+
47281
+ var _rect$5, _path$1A;
47282
+ function _extends$1E() {
47283
+ return _extends$1E = Object.assign ? Object.assign.bind() : function (n) {
47284
+ for (var e = 1; e < arguments.length; e++) {
47285
+ var t = arguments[e];
47286
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47287
+ }
47288
+ return n;
47289
+ }, _extends$1E.apply(null, arguments);
47290
+ }
47291
+ function SvgVoicePreviewPause(props) {
47292
+ return /*#__PURE__*/createElement$1("svg", _extends$1E({
47293
+ width: 40,
47294
+ height: 40,
47295
+ fill: "none",
47296
+ xmlns: "http://www.w3.org/2000/svg"
47297
+ }, props), _rect$5 || (_rect$5 = /*#__PURE__*/createElement$1("rect", {
47298
+ width: 40,
47299
+ height: 40,
47300
+ rx: 20,
47301
+ fill: "#5159F6"
47302
+ })), _path$1A || (_path$1A = /*#__PURE__*/createElement$1("path", {
47303
+ d: "M16.962 12.5c.535 0 .729.056.924.16.196.105.35.258.454.454.104.195.16.39.16.924v11.924c0 .535-.056.729-.16.924a1.09 1.09 0 01-.454.454c-.195.104-.39.16-.924.16h-1.424c-.535 0-.729-.056-.924-.16a1.09 1.09 0 01-.454-.454c-.104-.195-.16-.39-.16-.924V14.038c0-.535.056-.729.16-.924a1.09 1.09 0 01.454-.454c.195-.104.39-.16.924-.16h1.424zm7.5 0c.535 0 .729.056.924.16.196.105.35.258.454.454.104.195.16.39.16.924v11.924c0 .535-.056.729-.16.924a1.09 1.09 0 01-.454.454c-.195.104-.39.16-.924.16h-1.424c-.535 0-.729-.056-.924-.16a1.09 1.09 0 01-.454-.454c-.104-.195-.16-.39-.16-.924V14.038c0-.535.056-.729.16-.924a1.09 1.09 0 01.454-.454c.195-.104.39-.16.924-.16h1.424z",
47304
+ fill: "#fff"
47305
+ })));
47306
+ }
47307
+
47308
+ var _templateObject$$, _templateObject2$U, _templateObject3$M, _templateObject4$F, _templateObject5$A, _templateObject6$w, _templateObject7$v, _templateObject8$r;
47309
+ var VoiceItem = function VoiceItem(_ref) {
47310
+ var file = _ref.file,
47311
+ voicePreviewPlayIcon = _ref.voicePreviewPlayIcon,
47312
+ voicePreviewPlayHoverIcon = _ref.voicePreviewPlayHoverIcon,
47313
+ voicePreviewPauseIcon = _ref.voicePreviewPauseIcon,
47314
+ voicePreviewPauseHoverIcon = _ref.voicePreviewPauseHoverIcon,
47315
+ voicePreviewTitleColor = _ref.voicePreviewTitleColor,
47316
+ voicePreviewDateAndTimeColor = _ref.voicePreviewDateAndTimeColor,
47317
+ voicePreviewHoverBackgroundColor = _ref.voicePreviewHoverBackgroundColor,
47318
+ messageType = _ref.messageType;
47319
+ var _useColor = useColors(),
47320
+ textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
47321
+ textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
47322
+ backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
47323
+ accentColor = _useColor[THEME_COLORS.ACCENT];
47324
+ var dispatch = useDispatch();
47325
+ var playingAudioId = useSelector(playingAudioIdSelector);
47326
+ var getFromContacts = getShowOnlyContactUsers();
47327
+ var _useState = useState(''),
47328
+ fileUrl = _useState[0],
47329
+ setFileUrl = _useState[1];
47330
+ var _useState2 = useState(false),
47331
+ audioIsPlaying = _useState2[0],
47332
+ setAudioIsPlaying = _useState2[1];
47333
+ var _useState3 = useState(''),
47334
+ currentTime = _useState3[0],
47335
+ setCurrentTime = _useState3[1];
47336
+ var customDownloader = getCustomDownloader();
47337
+ var contactsMap = useSelector(contactsMapSelector);
47338
+ var user = useSelector(userSelector);
47339
+ var audioRef = useRef();
47340
+ var intervalRef = useRef(null);
47341
+ var handlePlayPause = function handlePlayPause() {
47342
+ if (audioRef && audioRef.current) {
47343
+ if (audioRef.current.paused) {
47344
+ var _audioRef$current, _audioRef$current5;
47345
+ var audioDuration = (_audioRef$current = audioRef.current) === null || _audioRef$current === void 0 ? void 0 : _audioRef$current.duration;
47346
+ dispatch(setPlayingAudioIdAC("voice_" + file.id));
47347
+ intervalRef.current = setInterval(function () {
47348
+ var _audioRef$current2;
47349
+ var audioCurrentTime = (_audioRef$current2 = audioRef.current) === null || _audioRef$current2 === void 0 ? void 0 : _audioRef$current2.currentTime;
47350
+ if (audioDuration) {
47351
+ if ((audioCurrentTime || audioCurrentTime === 0) && audioDuration - audioCurrentTime > 0) {
47352
+ setCurrentTime(formatAudioVideoTime(audioCurrentTime));
47353
+ } else {
47354
+ var _audioRef$current3;
47355
+ setCurrentTime(formatAudioVideoTime(audioCurrentTime || 0));
47356
+ setAudioIsPlaying(false);
47357
+ (_audioRef$current3 = audioRef.current) === null || _audioRef$current3 === void 0 ? void 0 : _audioRef$current3.pause();
47358
+ audioRef.current && (audioRef.current.currentTime = 0);
47359
+ clearInterval(intervalRef.current);
47360
+ }
47361
+ } else {
47362
+ var _audioRef$current4;
47363
+ audioDuration = (_audioRef$current4 = audioRef.current) === null || _audioRef$current4 === void 0 ? void 0 : _audioRef$current4.duration;
47364
+ }
47365
+ }, 100);
47366
+ setAudioIsPlaying(true);
47367
+ (_audioRef$current5 = audioRef.current) === null || _audioRef$current5 === void 0 ? void 0 : _audioRef$current5.play();
47368
+ } else {
47369
+ var _audioRef$current6;
47370
+ clearInterval(intervalRef.current);
47371
+ dispatch(setPlayingAudioIdAC(null));
47372
+ setAudioIsPlaying(false);
47373
+ (_audioRef$current6 = audioRef.current) === null || _audioRef$current6 === void 0 ? void 0 : _audioRef$current6.pause();
47374
+ }
47375
+ }
47376
+ };
47377
+ useDidUpdate(function () {
47378
+ if (audioIsPlaying && playingAudioId && playingAudioId !== "voice_" + file.id && audioRef.current) {
47379
+ setAudioIsPlaying(false);
47380
+ audioRef.current.pause();
47381
+ }
47382
+ }, [playingAudioId]);
47383
+ useEffect(function () {
47384
+ if (customDownloader) {
47385
+ customDownloader(file.url, false, function () {}, messageType).then(function (url) {
47386
+ setFileUrl(url);
47387
+ });
47388
+ } else {
47389
+ setFileUrl(file.url);
47390
+ }
47391
+ return function () {
47392
+ clearInterval(intervalRef.current);
47393
+ };
47394
+ }, []);
47395
+ return /*#__PURE__*/React__default.createElement(FileItem$2, {
47396
+ onMouseEnter: function onMouseEnter(e) {
47397
+ return e.currentTarget.classList.add('isHover');
47398
+ },
47399
+ onMouseLeave: function onMouseLeave(e) {
47400
+ return e.currentTarget.classList.remove('isHover');
47401
+ },
47402
+ hoverBackgroundColor: voicePreviewHoverBackgroundColor || backgroundHovered
47403
+ }, audioIsPlaying ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont$1, {
47404
+ onClick: handlePlayPause,
47405
+ fill: accentColor
47406
+ }, voicePreviewPauseIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreviewPause, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont$1, {
47407
+ onClick: handlePlayPause,
47408
+ fill: accentColor
47409
+ }, voicePreviewPauseHoverIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreviewPause, null)))) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont$1, {
47410
+ onClick: handlePlayPause,
47411
+ fill: accentColor
47412
+ }, voicePreviewPlayIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreview, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont$1, {
47413
+ onClick: handlePlayPause,
47414
+ fill: accentColor
47415
+ }, voicePreviewPlayHoverIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreview, null)))), /*#__PURE__*/React__default.createElement(AudioInfo, null, /*#__PURE__*/React__default.createElement(AudioTitle, {
47416
+ color: voicePreviewTitleColor || textPrimary
47417
+ }, file.user && (file.user.id === user.id ? 'You' : makeUsername(contactsMap[file.user.id], file.user, getFromContacts))), /*#__PURE__*/React__default.createElement(AudioDate, {
47418
+ color: voicePreviewDateAndTimeColor || textSecondary
47419
+ }, formatChannelDetailsDate(file.createdAt)), /*#__PURE__*/React__default.createElement(AudioSendTime, {
47420
+ color: textSecondary
47421
+ }, currentTime || (file.metadata.dur ? formatAudioVideoTime(file.metadata.dur) : ''))), /*#__PURE__*/React__default.createElement(Audio, {
47422
+ controls: true,
47423
+ ref: audioRef,
47424
+ src: fileUrl
47425
+ }, /*#__PURE__*/React__default.createElement("source", {
47426
+ src: fileUrl,
47427
+ type: 'audio/ogg'
47428
+ }), /*#__PURE__*/React__default.createElement("source", {
47429
+ src: fileUrl,
47430
+ type: 'audio/mpeg'
47431
+ })));
47432
+ };
47433
+ var FileIconCont$1 = styled.span(_templateObject$$ || (_templateObject$$ = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n display: inline-flex;\n fill: ", ";\n rect {\n fill: ", ";\n }\n"])), function (props) {
47434
+ return props.fill || 'transparent';
47435
+ }, function (props) {
47436
+ return props.fill || 'transparent';
47437
+ });
47438
+ var FileHoverIconCont$1 = styled.span(_templateObject2$U || (_templateObject2$U = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n display: none;\n fill: ", ";\n rect {\n fill: ", ";\n }\n"])), function (props) {
47439
+ return props.fill || 'transparent';
47440
+ }, function (props) {
47441
+ return props.fill || 'transparent';
47442
+ });
47443
+ var FileItem$2 = styled.li(_templateObject3$M || (_templateObject3$M = _taggedTemplateLiteralLoose(["\n padding: 9px 16px;\n display: flex;\n align-items: center;\n text-decoration: none;\n\n &:hover {\n background-color: ", ";\n }\n div {\n margin-left: 12px;\n width: 100%;\n }\n img {\n width: 42px;\n height: 42px;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n border-radius: 6px;\n }\n\n &.isHover {\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n"])), function (props) {
47444
+ return props.hoverBackgroundColor;
47445
+ }, FileIconCont$1, FileHoverIconCont$1);
47446
+ var AudioInfo = styled.div(_templateObject4$F || (_templateObject4$F = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
47447
+ var AudioTitle = styled.span(_templateObject5$A || (_templateObject5$A = _taggedTemplateLiteralLoose(["\n display: block;\n font-style: normal;\n font-weight: 500;\n font-size: 15px;\n line-height: 20px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 72px);\n color: ", ";\n"])), function (props) {
47448
+ return props.color;
47449
+ });
47450
+ var AudioDate = styled.span(_templateObject6$w || (_templateObject6$w = _taggedTemplateLiteralLoose(["\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 72px);\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n color: ", ";\n"])), function (props) {
47451
+ return props.color;
47452
+ });
47453
+ var AudioSendTime = styled.span(_templateObject7$v || (_templateObject7$v = _taggedTemplateLiteralLoose(["\n position: absolute;\n right: 0;\n top: 11px;\n color: ", ";\n font-size: 12px;\n line-height: 16px;\n"])), function (props) {
47454
+ return props.color;
47455
+ });
47456
+ var Audio = styled.audio(_templateObject8$r || (_templateObject8$r = _taggedTemplateLiteralLoose(["\n display: none;\n"])));
47457
+
47458
+ var _templateObject$10;
47459
+ var Voices = function Voices(_ref) {
47460
+ var channelId = _ref.channelId,
47461
+ voicePreviewPlayIcon = _ref.voicePreviewPlayIcon,
47462
+ voicePreviewPlayHoverIcon = _ref.voicePreviewPlayHoverIcon,
47463
+ voicePreviewPauseIcon = _ref.voicePreviewPauseIcon,
47464
+ voicePreviewPauseHoverIcon = _ref.voicePreviewPauseHoverIcon,
47465
+ voicePreviewTitleColor = _ref.voicePreviewTitleColor,
47466
+ voicePreviewDateAndTimeColor = _ref.voicePreviewDateAndTimeColor,
47467
+ voicePreviewHoverBackgroundColor = _ref.voicePreviewHoverBackgroundColor;
47468
+ var dispatch = useDispatch();
47469
+ var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
47470
+ useEffect(function () {
47471
+ dispatch(getAttachmentsAC(channelId, channelDetailsTabs.voice));
47472
+ }, [channelId]);
47473
+ return /*#__PURE__*/React__default.createElement(Container$r, null, attachments.map(function (file, index) {
47474
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
47475
+ key: file.id
47476
+ }, /*#__PURE__*/React__default.createElement(MonthHeader, {
47477
+ currentCreatedAt: file.createdAt,
47478
+ previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
47479
+ isFirst: index === 0,
47480
+ padding: '7px 14px 2px'
47481
+ }), /*#__PURE__*/React__default.createElement(VoiceItem, {
47482
+ file: _extends({}, file, {
47483
+ metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
47484
+ }),
47485
+ voicePreviewDateAndTimeColor: voicePreviewDateAndTimeColor,
47486
+ voicePreviewHoverBackgroundColor: voicePreviewHoverBackgroundColor,
47487
+ voicePreviewPlayHoverIcon: voicePreviewPlayIcon,
47488
+ voicePreviewPlayIcon: voicePreviewPlayHoverIcon,
47489
+ voicePreviewPauseIcon: voicePreviewPauseIcon,
47490
+ voicePreviewPauseHoverIcon: voicePreviewPauseHoverIcon,
47491
+ voicePreviewTitleColor: voicePreviewTitleColor
47492
+ }));
47493
+ }));
47494
+ };
47495
+ var Container$r = styled.ul(_templateObject$10 || (_templateObject$10 = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 11px 0 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
47496
+
47497
+ var _rect$6, _rect2, _path$1B;
47498
+ function _extends$1F() {
47499
+ return _extends$1F = Object.assign ? Object.assign.bind() : function (n) {
47500
+ for (var e = 1; e < arguments.length; e++) {
47501
+ var t = arguments[e];
47502
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47503
+ }
47504
+ return n;
47505
+ }, _extends$1F.apply(null, arguments);
47506
+ }
47507
+ function SvgAddMember(props) {
47508
+ return /*#__PURE__*/createElement$1("svg", _extends$1F({
47509
+ width: 40,
47510
+ height: 40,
47511
+ viewBox: "0 0 40.01 40.01",
47512
+ fill: "none",
47513
+ xmlns: "http://www.w3.org/2000/svg"
47514
+ }, props), _rect$6 || (_rect$6 = /*#__PURE__*/createElement$1("rect", {
47515
+ width: 40,
47516
+ height: 40,
47517
+ rx: 20,
47518
+ fill: "#F3F5F7"
47519
+ })), _rect2 || (_rect2 = /*#__PURE__*/createElement$1("rect", {
47520
+ x: 0.25,
47521
+ y: 0.25,
47522
+ width: 39.5,
47523
+ height: 39.5,
47524
+ rx: 19.75,
47525
+ stroke: "#000",
47526
+ strokeOpacity: 0.08,
47527
+ strokeWidth: 0.5
47528
+ })), _path$1B || (_path$1B = /*#__PURE__*/createElement$1("path", {
47529
+ d: "M20 12a1 1 0 011 1v6h6a1 1 0 110 2h-6v6a1 1 0 11-2 0l-.001-6H13a1 1 0 110-2h5.999L19 13a1 1 0 011-1z",
47530
+ fill: "CurrentColor"
47531
+ })));
47532
+ }
47533
+
47534
+ var _path$1C;
47535
+ function _extends$1G() {
47536
+ return _extends$1G = Object.assign ? Object.assign.bind() : function (n) {
47537
+ for (var e = 1; e < arguments.length; e++) {
47538
+ var t = arguments[e];
47539
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47540
+ }
47541
+ return n;
47542
+ }, _extends$1G.apply(null, arguments);
47543
+ }
47544
+ function SvgMoreVert(props) {
47545
+ return /*#__PURE__*/createElement$1("svg", _extends$1G({
47546
+ width: 4,
47547
+ height: 14,
47548
+ fill: "none",
47549
+ xmlns: "http://www.w3.org/2000/svg"
47550
+ }, props), _path$1C || (_path$1C = /*#__PURE__*/createElement$1("path", {
47551
+ d: "M.532 11.012c.355-.355.764-.533 1.228-.533.464 0 .874.178 1.228.533.355.354.532.764.532 1.228 0 .464-.177.873-.532 1.228-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 13.113 0 12.704 0 12.24c0-.464.177-.873.532-1.228zm0-5.24c.355-.355.764-.532 1.228-.532.464 0 .874.177 1.228.532.355.355.532.764.532 1.228 0 .464-.177.873-.532 1.228-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 7.873 0 7.464 0 7c0-.464.177-.873.532-1.228zm2.456-2.784c-.354.355-.764.532-1.228.532-.464 0-.873-.177-1.228-.532C.177 2.634 0 2.224 0 1.76 0 1.296.177.887.532.532.887.177 1.296 0 1.76 0c.464 0 .874.177 1.228.532.355.355.532.764.532 1.228 0 .464-.177.874-.532 1.228z",
47552
+ fill: "#9B9DA8"
47553
+ })));
47554
+ }
47555
+
47556
+ var _templateObject$11, _templateObject2$V, _templateObject3$N;
47557
+ var ChangeMemberRole = function ChangeMemberRole(_ref) {
47558
+ var theme = _ref.theme,
47559
+ channelId = _ref.channelId,
47560
+ member = _ref.member,
47561
+ handleClosePopup = _ref.handleClosePopup;
47562
+ var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
47563
+ var _useColor = useColors(),
47564
+ accentColor = _useColor[THEME_COLORS.ACCENT],
47565
+ textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
47566
+ textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
47567
+ textFootnote = _useColor[THEME_COLORS.TEXT_FOOTNOTE],
47568
+ warningColor = _useColor[THEME_COLORS.WARNING],
47569
+ backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
47570
+ textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
47571
+ background = _useColor[THEME_COLORS.BACKGROUND],
47572
+ surface1 = _useColor[THEME_COLORS.SURFACE_1],
47573
+ iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
47574
+ border = _useColor[THEME_COLORS.BORDER];
47575
+ var dispatch = useDispatch();
47576
+ var _useState = useState(false),
47577
+ isChanged = _useState[0],
47578
+ setIsChanged = _useState[1];
47579
+ var _useState2 = useState(),
47580
+ selectedRole = _useState2[0],
47581
+ setSelectedRole = _useState2[1];
47582
+ var roles = useSelector(rolesSelector, shallowEqual) || [];
47583
+ useEffect(function () {
47584
+ if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
47585
+ dispatch(getRolesAC());
47586
+ }
47587
+ }, [connectionStatus]);
47588
+ var handleSave = function handleSave() {
47589
+ if (isChanged && selectedRole) {
47590
+ var updateMember = _extends({}, member, {
47591
+ role: selectedRole
47592
+ });
47593
+ dispatch(changeMemberRoleAC(channelId, [updateMember]));
47594
+ }
47595
+ handleClosePopup();
47596
+ };
47597
+ function onChangeFunction(roleName) {
47598
+ if (member.role !== roleName) {
47599
+ setIsChanged(true);
47600
+ }
47601
+ setSelectedRole(roleName);
47602
+ }
47603
+ return /*#__PURE__*/React__default.createElement(PopupContainer, null, /*#__PURE__*/React__default.createElement(Popup, {
47604
+ backgroundColor: background,
47605
+ maxWidth: '400px',
47606
+ padding: '0'
47607
+ }, /*#__PURE__*/React__default.createElement(PopupBody, {
47608
+ paddingH: '24px',
47609
+ paddingV: '24px'
47610
+ }, /*#__PURE__*/React__default.createElement(CloseIcon, {
47611
+ color: iconPrimary,
47612
+ onClick: handleClosePopup
47613
+ }), /*#__PURE__*/React__default.createElement(PopupName, {
47614
+ color: textPrimary
47615
+ }, "Change member role"), /*#__PURE__*/React__default.createElement(RolesSelect, null, /*#__PURE__*/React__default.createElement(RoleLabel, {
47616
+ color: textSecondary
47617
+ }, "Roles"), /*#__PURE__*/React__default.createElement(CustomSelect, {
47618
+ backgroundColor: background,
47619
+ color: textPrimary,
47620
+ errorColor: warningColor,
47621
+ placeholderColor: textFootnote,
47622
+ borderColor: border,
47623
+ disabledColor: surface1
47624
+ }, /*#__PURE__*/React__default.createElement(DropDown, {
47625
+ withIcon: true,
47626
+ theme: theme,
47627
+ isSelect: true,
47628
+ trigger: /*#__PURE__*/React__default.createElement(CustomSelectTrigger, {
47629
+ color: textPrimary
47630
+ }, selectedRole || member.role || 'Select')
47631
+ }, /*#__PURE__*/React__default.createElement(DropdownOptionsUl, {
47632
+ theme: theme
47633
+ }, !!roles.length && roles.map(function (role) {
47634
+ return /*#__PURE__*/React__default.createElement(DropdownOptionLi, {
47635
+ hoverBackground: backgroundHovered,
47636
+ key: role.name,
47637
+ onClick: function onClick() {
47638
+ return onChangeFunction(role.name);
47639
+ },
47640
+ textColor: textPrimary
47641
+ }, /*#__PURE__*/React__default.createElement(RoleSpan, null, role.name));
47642
+ })))))), /*#__PURE__*/React__default.createElement(PopupFooter, {
47643
+ backgroundColor: surface1
47644
+ }, /*#__PURE__*/React__default.createElement(Button, {
47645
+ type: 'button',
47646
+ color: textPrimary,
47647
+ backgroundColor: 'transparent',
47648
+ onClick: function onClick() {
47649
+ return handleClosePopup();
47650
+ }
47651
+ }, "Cancel"), /*#__PURE__*/React__default.createElement(Button, {
47652
+ type: 'button',
47653
+ color: textOnPrimary,
47654
+ backgroundColor: accentColor,
47655
+ borderRadius: '8px',
47656
+ onClick: handleSave
47657
+ }, "Save"))));
47658
+ };
47659
+ var RolesSelect = styled.div(_templateObject$11 || (_templateObject$11 = _taggedTemplateLiteralLoose(["\n margin-bottom: 32px;\n"])));
47660
+ var RoleLabel = styled.div(_templateObject2$V || (_templateObject2$V = _taggedTemplateLiteralLoose(["\n font-style: normal;\n font-weight: 500;\n font-size: 14px;\n margin: 20px 0 8px;\n color: ", ";\n"])), function (_ref2) {
47661
+ var color = _ref2.color;
47662
+ return color;
47663
+ });
47664
+ var RoleSpan = styled.span(_templateObject3$N || (_templateObject3$N = _taggedTemplateLiteralLoose(["\n font-style: normal;\n font-weight: normal;\n font-size: 14px;\n text-transform: capitalize;\n"])));
47665
+
47666
+ function ResetLinkConfirmModal(_ref) {
47667
+ var _getInviteLinkOptions;
47668
+ var onCancel = _ref.onCancel,
47669
+ onConfirm = _ref.onConfirm;
47670
+ var options = ((_getInviteLinkOptions = getInviteLinkOptions()) === null || _getInviteLinkOptions === void 0 ? void 0 : _getInviteLinkOptions.ResetLinkConfirmModal) || {};
47671
+ var titleText = options.titleText || 'Reset link';
47672
+ var descriptionText = options.descriptionText || (/*#__PURE__*/React__default.createElement("span", null, "Are you sure you want to reset the group link? Anyone with the existing link will no longer be able to use it to join."));
47673
+ var buttonText = options.buttonText || 'Reset';
47674
+ var show = options.show !== false;
47675
+ if (!show) return null;
47676
+ var customRender = typeof options.render === 'function' ? options.render : null;
47677
+ var customComponent = options.component || options.CustomComponent;
47678
+ if (customRender) {
47679
+ return customRender({
47680
+ onCancel: onCancel,
47681
+ onConfirm: onConfirm,
47682
+ defaults: {
47683
+ titleText: titleText,
47684
+ descriptionText: descriptionText,
47685
+ buttonText: buttonText
47686
+ }
47687
+ });
47688
+ }
47689
+ if (customComponent) {
47690
+ return customComponent;
47691
+ }
47692
+ return /*#__PURE__*/React__default.createElement(ConfirmPopup, {
47693
+ togglePopup: onCancel,
47694
+ handleFunction: onConfirm,
47695
+ title: titleText,
47696
+ description: descriptionText,
47697
+ buttonText: buttonText
47698
+ });
47699
+ }
47700
+
47701
+ var _templateObject$12, _templateObject2$W, _templateObject3$O, _templateObject4$G, _templateObject5$B, _templateObject6$x, _templateObject7$w, _templateObject8$s, _templateObject9$l, _templateObject0$j, _templateObject1$g, _templateObject10$a, _templateObject11$8, _templateObject12$7, _templateObject13$5;
47702
+ function InviteLinkModal(_ref) {
47703
+ var _getInviteLinkOptions, _tabs$link, _tabs$qr, _tabs$link2, _tabs$qr2;
47704
+ var onClose = _ref.onClose,
47705
+ SVGOrPNGLogoIcon = _ref.SVGOrPNGLogoIcon,
47706
+ channelId = _ref.channelId;
47707
+ var _useColor = useColors(),
47708
+ accentColor = _useColor[THEME_COLORS.ACCENT],
47709
+ textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
47710
+ textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
47711
+ background = _useColor[THEME_COLORS.BACKGROUND],
47712
+ backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
47713
+ surface1 = _useColor[THEME_COLORS.SURFACE_1],
47714
+ textOnPrimary = _useColor[THEME_COLORS.TEXT_ON_PRIMARY],
47715
+ border = _useColor[THEME_COLORS.BORDER],
47716
+ iconPrimary = _useColor[THEME_COLORS.ICON_PRIMARY],
47717
+ tooltipBackground = _useColor[THEME_COLORS.TOOLTIP_BACKGROUND];
47718
+ var theme = useSelector(themeSelector) || 'light';
47719
+ var connectionStatus = useSelector(connectionStatusSelector, shallowEqual);
47720
+ var channelsInviteKeys = useSelector(channelInviteKeysSelector, shallowEqual);
47721
+ var dispatch = useDispatch();
47722
+ var options = ((_getInviteLinkOptions = getInviteLinkOptions()) === null || _getInviteLinkOptions === void 0 ? void 0 : _getInviteLinkOptions.InviteLinkModal) || {};
47723
+ var customRender = typeof options.render === 'function' ? options.render : null;
47724
+ var customComponent = options.component || options.CustomComponent;
47725
+ var titleText = options.titleText || 'Invite link';
47726
+ var linkLabel = options.linkLabel || 'Link';
47727
+ var linkDescription = options.linkDescription || 'You can invite anyone to the chat using this link';
47728
+ var shareButtonText = options.shareButtonText || 'Share';
47729
+ var cancelButtonText = options.cancelButtonText || 'Cancel';
47730
+ var showHistorySection = options.showHistorySection !== false;
47731
+ var showResetButton = options.showResetButton !== false;
47732
+ var historyTitle = options.historyTitle || 'History';
47733
+ var showPreviousMessagesLabel = options.showPreviousMessagesLabel || 'Show Previous Messages';
47734
+ var tabs = options.tabs || {
47735
+ link: {
47736
+ show: true,
47737
+ title: 'Group Link'
47738
+ },
47739
+ qr: {
47740
+ show: true,
47741
+ title: 'QR Code'
47742
+ }
47743
+ };
47744
+ var showLinkTab = ((_tabs$link = tabs.link) === null || _tabs$link === void 0 ? void 0 : _tabs$link.show) !== false;
47745
+ var showQrTab = ((_tabs$qr = tabs.qr) === null || _tabs$qr === void 0 ? void 0 : _tabs$qr.show) !== false;
47746
+ var linkTabTitle = ((_tabs$link2 = tabs.link) === null || _tabs$link2 === void 0 ? void 0 : _tabs$link2.title) || 'Group Link';
47747
+ var qrTabTitle = ((_tabs$qr2 = tabs.qr) === null || _tabs$qr2 === void 0 ? void 0 : _tabs$qr2.title) || 'QR Code';
47748
+ var qrHintText = options.qrHintText || 'Show or send this to anyone who wants to join this channel';
47749
+ var _useState = useState('link'),
47750
+ activeTab = _useState[0],
47751
+ setActiveTab = _useState[1];
47752
+ var _useState2 = useState(false),
47753
+ showResetConfirm = _useState2[0],
47754
+ setShowResetConfirm = _useState2[1];
47755
+ var _useState3 = useState(false),
47756
+ openForwardPopup = _useState3[0],
47757
+ setOpenForwardPopup = _useState3[1];
47758
+ var _useState4 = useState('link'),
47759
+ shareMode = _useState4[0],
47760
+ setShareMode = _useState4[1];
47761
+ var _useState5 = useState(false),
47762
+ showCopiedToast = _useState5[0],
47763
+ setShowCopiedToast = _useState5[1];
47764
+ var logoRef = useRef(null);
46842
47765
  var toastTimeoutRef = useRef(null);
46843
47766
  var handleCopy = function handleCopy() {
46844
47767
  try {
@@ -47259,34 +48182,34 @@ function InviteLinkModal(_ref) {
47259
48182
  handleForward: handleForwardChannels
47260
48183
  })));
47261
48184
  }
47262
- var LogoIconCont = styled.div(_templateObject$X || (_templateObject$X = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(50% - 11%);\n left: calc(50% - 11%);\n width: 22%;\n height: 22%;\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 10px;\n }\n svg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 10px;\n }\n"])));
47263
- var Tabs$1 = styled.div(_templateObject2$S || (_templateObject2$S = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n border-radius: 10px;\n background-color: ", ";\n padding: 2px;\n margin: 4px 0 16px;\n border: 1px solid ", ";\n"])), function (p) {
48185
+ var LogoIconCont = styled.div(_templateObject$12 || (_templateObject$12 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: calc(50% - 11%);\n left: calc(50% - 11%);\n width: 22%;\n height: 22%;\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 10px;\n }\n svg {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 10px;\n }\n"])));
48186
+ var Tabs$1 = styled.div(_templateObject2$W || (_templateObject2$W = _taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n border-radius: 10px;\n background-color: ", ";\n padding: 2px;\n margin: 4px 0 16px;\n border: 1px solid ", ";\n"])), function (p) {
47264
48187
  return p.backgroundColor;
47265
48188
  }, function (p) {
47266
48189
  return p.borderColor;
47267
48190
  });
47268
- var TabButton = styled.button(_templateObject3$L || (_templateObject3$L = _taggedTemplateLiteralLoose(["\n height: 36px;\n border: none;\n border-radius: 10px;\n cursor: pointer;\n background-color: ", ";\n ", "\n color: ", ";\n"])), function (p) {
48191
+ var TabButton = styled.button(_templateObject3$O || (_templateObject3$O = _taggedTemplateLiteralLoose(["\n height: 36px;\n border: none;\n border-radius: 10px;\n cursor: pointer;\n background-color: ", ";\n ", "\n color: ", ";\n"])), function (p) {
47269
48192
  return p.active ? p.activeBackgroundColor : p.backgroundColor;
47270
48193
  }, function (p) {
47271
48194
  return p.active && "\n box-shadow: 0px 3px 6px -4px #0000001F;\n ";
47272
48195
  }, function (p) {
47273
48196
  return p.active ? p.activeColor : p.inactiveColor;
47274
48197
  });
47275
- var Description = styled.p(_templateObject4$D || (_templateObject4$D = _taggedTemplateLiteralLoose(["\n margin: 8px 0 16px;\n font-size: 14px;\n line-height: 16px;\n color: ", ";\n"])), function (p) {
48198
+ var Description = styled.p(_templateObject4$G || (_templateObject4$G = _taggedTemplateLiteralLoose(["\n margin: 8px 0 16px;\n font-size: 14px;\n line-height: 16px;\n color: ", ";\n"])), function (p) {
47276
48199
  return p.color;
47277
48200
  });
47278
- var FieldLabel = styled.span(_templateObject5$y || (_templateObject5$y = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n line-height: 16px;\n color: ", ";\n"])), function (p) {
48201
+ var FieldLabel = styled.span(_templateObject5$B || (_templateObject5$B = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n line-height: 16px;\n color: ", ";\n"])), function (p) {
47279
48202
  return p.color;
47280
48203
  });
47281
- var LinkField = styled.div(_templateObject6$v || (_templateObject6$v = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-top: 8px;\n padding-left: 12px;\n background-color: ", ";\n"])), function (p) {
48204
+ var LinkField = styled.div(_templateObject6$x || (_templateObject6$x = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n border: 1px solid ", ";\n border-radius: 8px;\n margin-top: 8px;\n padding-left: 12px;\n background-color: ", ";\n"])), function (p) {
47282
48205
  return p.borderColor;
47283
48206
  }, function (p) {
47284
48207
  return p.backgroundColor;
47285
48208
  });
47286
- var LinkInput = styled.input(_templateObject7$u || (_templateObject7$u = _taggedTemplateLiteralLoose(["\n flex: 1;\n border: none;\n outline: none;\n height: 40px;\n background: transparent;\n color: ", ";\n font-size: 14px;\n"])), function (p) {
48209
+ var LinkInput = styled.input(_templateObject7$w || (_templateObject7$w = _taggedTemplateLiteralLoose(["\n flex: 1;\n border: none;\n outline: none;\n height: 40px;\n background: transparent;\n color: ", ";\n font-size: 14px;\n"])), function (p) {
47287
48210
  return p.color;
47288
48211
  });
47289
- var CopyButton = styled.button(_templateObject8$q || (_templateObject8$q = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border: none;\n background: transparent;\n cursor: pointer;\n"])));
48212
+ var CopyButton = styled.button(_templateObject8$s || (_templateObject8$s = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border: none;\n background: transparent;\n cursor: pointer;\n"])));
47290
48213
  var CopyButtonWrapper = styled.div(_templateObject9$l || (_templateObject9$l = _taggedTemplateLiteralLoose(["\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n"])));
47291
48214
  var SectionTitle = styled.h4(_templateObject0$j || (_templateObject0$j = _taggedTemplateLiteralLoose(["\n margin: 16px 0 8px;\n font-weight: 500;\n font-size: 15px;\n line-height: 16px;\n color: ", ";\n"])), function (p) {
47292
48215
  return p.color;
@@ -47307,10 +48230,11 @@ var QrHint = styled.p(_templateObject13$5 || (_templateObject13$5 = _taggedTempl
47307
48230
  return p.color;
47308
48231
  });
47309
48232
 
47310
- var _templateObject$Y, _templateObject2$T, _templateObject3$M, _templateObject4$E, _templateObject5$z, _templateObject6$w, _templateObject7$v, _templateObject8$r, _templateObject9$m;
48233
+ var _templateObject$13, _templateObject2$X, _templateObject3$P, _templateObject4$H, _templateObject5$C, _templateObject6$y, _templateObject7$x, _templateObject8$t, _templateObject9$m;
47311
48234
  var Members = function Members(_ref) {
47312
48235
  var _members$find;
47313
48236
  var channel = _ref.channel,
48237
+ members = _ref.members,
47314
48238
  theme = _ref.theme,
47315
48239
  checkActionPermission = _ref.checkActionPermission,
47316
48240
  _ref$showChangeMember = _ref.showChangeMemberRole,
@@ -47363,9 +48287,16 @@ var Members = function Members(_ref) {
47363
48287
  var _useState8 = useState(),
47364
48288
  closeMenu = _useState8[0],
47365
48289
  setCloseMenu = _useState8[1];
47366
- var members = useSelector(activeChannelMembersSelector) || [];
47367
48290
  var contactsMap = useSelector(contactsMapSelector) || {};
47368
48291
  var openInviteModal = useSelector(openInviteModalSelector);
48292
+ var channelsMembersHasNext = useSelector(channelsMembersHasNextMapSelector, shallowEqual);
48293
+ var membersHasNext = useMemo(function () {
48294
+ return channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channel.id];
48295
+ }, [channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channel.id]]);
48296
+ var channelsMembersLoadingState = useSelector(channelsMembersLoadingStateSelector, shallowEqual);
48297
+ var membersLoading = useMemo(function () {
48298
+ return channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[channel.id];
48299
+ }, [channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[channel.id]]);
47369
48300
  var user = getClient().user;
47370
48301
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
47371
48302
  var channelTypeRoleMap = getDefaultRolesByChannelTypesMap();
@@ -47468,14 +48399,14 @@ var Members = function Members(_ref) {
47468
48399
  if (getFromContacts) {
47469
48400
  dispatch(getContactsAC());
47470
48401
  }
47471
- if (channel !== null && channel !== void 0 && channel.id) {
48402
+ if (channel !== null && channel !== void 0 && channel.id && membersHasNext === undefined && membersLoading !== LOADING_STATE.LOADING) {
47472
48403
  dispatch(getMembersAC(channel.id));
47473
48404
  }
47474
48405
  }, [channel === null || channel === void 0 ? void 0 : channel.id]);
47475
48406
  var currentUserRole = (_members$find = members.find(function (member) {
47476
48407
  return member.id === user.id;
47477
48408
  })) === null || _members$find === void 0 ? void 0 : _members$find.role;
47478
- return /*#__PURE__*/React__default.createElement(Container$o, {
48409
+ return /*#__PURE__*/React__default.createElement(Container$s, {
47479
48410
  theme: theme
47480
48411
  }, /*#__PURE__*/React__default.createElement(ActionsMenu$1, null, /*#__PURE__*/React__default.createElement(MembersList, null, checkActionPermission('addMember') && (currentUserRole === 'owner' || currentUserRole === 'admin') && (/*#__PURE__*/React__default.createElement(MemberItem$1, {
47481
48412
  key: 1,
@@ -47619,18 +48550,18 @@ var Members = function Members(_ref) {
47619
48550
  channelId: channel.id
47620
48551
  })));
47621
48552
  };
47622
- var Container$o = styled.div(_templateObject$Y || (_templateObject$Y = _taggedTemplateLiteralLoose([""])));
47623
- var ActionsMenu$1 = styled.div(_templateObject2$T || (_templateObject2$T = _taggedTemplateLiteralLoose(["\n position: relative;\n transition: all 0.2s;\n"])));
47624
- var MemberNamePresence = styled.div(_templateObject3$M || (_templateObject3$M = _taggedTemplateLiteralLoose(["\n margin-left: 12px;\n max-width: calc(100% - 84px);\n\n & > ", " {\n display: block;\n }\n"])), SubTitle);
47625
- var MemberNameWrapper = styled.div(_templateObject4$E || (_templateObject4$E = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n"])));
47626
- var MemberName$3 = styled.h4(_templateObject5$z || (_templateObject5$z = _taggedTemplateLiteralLoose(["\n margin: 0;\n font-weight: 400;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n color: ", ";\n"])), function (props) {
48553
+ var Container$s = styled.div(_templateObject$13 || (_templateObject$13 = _taggedTemplateLiteralLoose([""])));
48554
+ var ActionsMenu$1 = styled.div(_templateObject2$X || (_templateObject2$X = _taggedTemplateLiteralLoose(["\n position: relative;\n transition: all 0.2s;\n"])));
48555
+ var MemberNamePresence = styled.div(_templateObject3$P || (_templateObject3$P = _taggedTemplateLiteralLoose(["\n margin-left: 12px;\n max-width: calc(100% - 84px);\n\n & > ", " {\n display: block;\n }\n"])), SubTitle);
48556
+ var MemberNameWrapper = styled.div(_templateObject4$H || (_templateObject4$H = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n"])));
48557
+ var MemberName$3 = styled.h4(_templateObject5$C || (_templateObject5$C = _taggedTemplateLiteralLoose(["\n margin: 0;\n font-weight: 400;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n color: ", ";\n"])), function (props) {
47627
48558
  return props.color;
47628
48559
  });
47629
- var EditMemberIcon = styled.span(_templateObject6$w || (_templateObject6$w = _taggedTemplateLiteralLoose(["\n margin-left: auto;\n cursor: pointer;\n padding: 15px;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s;\n\n & svg {\n color: ", ";\n }\n"])), function (props) {
48560
+ var EditMemberIcon = styled.span(_templateObject6$y || (_templateObject6$y = _taggedTemplateLiteralLoose(["\n margin-left: auto;\n cursor: pointer;\n padding: 15px;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s;\n\n & svg {\n color: ", ";\n }\n"])), function (props) {
47630
48561
  return props.color;
47631
48562
  });
47632
- var MembersList = styled.ul(_templateObject7$v || (_templateObject7$v = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 0;\n list-style: none;\n transition: all 0.2s;\n"])));
47633
- var MemberItem$1 = styled.li(_templateObject8$r || (_templateObject8$r = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n font-size: ", ";\n font-weight: 500;\n padding: 6px 16px;\n transition: all 0.2s;\n color: ", ";\n cursor: pointer;\n\n & > svg {\n rect {\n fill: transparent;\n }\n }\n\n &:first-child {\n cursor: pointer;\n\n > svg {\n color: ", ";\n margin-right: 12px;\n & > rect {\n fill: ", " !important;\n }\n }\n }\n\n &:hover {\n background-color: ", ";\n }\n\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n\n & .dropdown-wrapper {\n margin-left: auto;\n }\n\n & ", " {\n width: 12px;\n height: 12px;\n right: -1px;\n bottom: -1px;\n }\n"])), function (props) {
48563
+ var MembersList = styled.ul(_templateObject7$x || (_templateObject7$x = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 0;\n list-style: none;\n transition: all 0.2s;\n"])));
48564
+ var MemberItem$1 = styled.li(_templateObject8$t || (_templateObject8$t = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n font-size: ", ";\n font-weight: 500;\n padding: 6px 16px;\n transition: all 0.2s;\n color: ", ";\n cursor: pointer;\n\n & > svg {\n rect {\n fill: transparent;\n }\n }\n\n &:first-child {\n cursor: pointer;\n\n > svg {\n color: ", ";\n margin-right: 12px;\n & > rect {\n fill: ", " !important;\n }\n }\n }\n\n &:hover {\n background-color: ", ";\n }\n\n &:hover ", " {\n opacity: 1;\n visibility: visible;\n }\n\n & .dropdown-wrapper {\n margin-left: auto;\n }\n\n & ", " {\n width: 12px;\n height: 12px;\n right: -1px;\n bottom: -1px;\n }\n"])), function (props) {
47634
48565
  return props.fontSize || '15px';
47635
48566
  }, function (props) {
47636
48567
  return props.color;
@@ -47647,656 +48578,6 @@ var RoleBadge = styled.span(_templateObject9$m || (_templateObject9$m = _taggedT
47647
48578
  return props.backgroundColor;
47648
48579
  });
47649
48580
 
47650
- var _templateObject$Z;
47651
- var MonthHeader = function MonthHeader(_ref) {
47652
- var currentCreatedAt = _ref.currentCreatedAt,
47653
- previousCreatedAt = _ref.previousCreatedAt,
47654
- isFirst = _ref.isFirst,
47655
- padding = _ref.padding,
47656
- fullWidth = _ref.fullWidth;
47657
- var _useColor = useColors(),
47658
- textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY];
47659
- var monthComponent = useMemo(function () {
47660
- var shouldShowHeader = isFirst || previousCreatedAt && new Date(currentCreatedAt).getMonth() !== new Date(previousCreatedAt).getMonth();
47661
- if (!shouldShowHeader) {
47662
- return null;
47663
- }
47664
- return /*#__PURE__*/React__default.createElement(MonthHeaderContainer, {
47665
- color: textSecondary,
47666
- padding: padding,
47667
- fullWidth: fullWidth
47668
- }, new Date(currentCreatedAt).toLocaleDateString('en-US', {
47669
- month: 'long',
47670
- year: 'numeric'
47671
- }));
47672
- }, [currentCreatedAt, previousCreatedAt, isFirst, textSecondary, padding, fullWidth]);
47673
- return monthComponent;
47674
- };
47675
- var MonthHeaderContainer = styled.div(_templateObject$Z || (_templateObject$Z = _taggedTemplateLiteralLoose(["\n padding: ", ";\n width: ", ";\n font-style: normal;\n font-weight: 500;\n font-size: 13px;\n line-height: 16px;\n color: ", ";\n text-transform: uppercase;\n"])), function (props) {
47676
- return props.padding || '9px 12px';
47677
- }, function (props) {
47678
- return props.fullWidth ? '100%' : 'auto';
47679
- }, function (props) {
47680
- return props.color;
47681
- });
47682
-
47683
- var _templateObject$_, _templateObject2$U;
47684
- var Media = function Media(_ref) {
47685
- var channel = _ref.channel;
47686
- var _useColor = useColors(),
47687
- background = _useColor[THEME_COLORS.BACKGROUND];
47688
- var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
47689
- var _useState = useState(null),
47690
- mediaFile = _useState[0],
47691
- setMediaFile = _useState[1];
47692
- var dispatch = useDispatch();
47693
- var handleMediaItemClick = function handleMediaItemClick(file) {
47694
- setMediaFile(file);
47695
- };
47696
- useEffect(function () {
47697
- dispatch(setAttachmentsAC([]));
47698
- dispatch(getAttachmentsAC(channel.id, channelDetailsTabs.media));
47699
- }, [channel.id]);
47700
- return /*#__PURE__*/React__default.createElement(Container$p, null, attachments.map(function (file, index) {
47701
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
47702
- key: file.id
47703
- }, /*#__PURE__*/React__default.createElement(MonthHeader, {
47704
- currentCreatedAt: file.createdAt,
47705
- previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
47706
- isFirst: index === 0,
47707
- padding: '9px 6px',
47708
- fullWidth: true
47709
- }), /*#__PURE__*/React__default.createElement(MediaItem, null, file.type === 'image' ? (/*#__PURE__*/React__default.createElement(Attachment$1, {
47710
- attachment: _extends({}, file, {
47711
- metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
47712
- }),
47713
- handleMediaItemClick: handleMediaItemClick,
47714
- backgroundColor: background,
47715
- borderRadius: '8px',
47716
- isDetailsView: true
47717
- })) : (
47718
- /*#__PURE__*/
47719
- React__default.createElement(Attachment$1, {
47720
- attachment: _extends({}, file, {
47721
- metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
47722
- }),
47723
- handleMediaItemClick: handleMediaItemClick,
47724
- backgroundColor: background,
47725
- borderRadius: '8px',
47726
- isDetailsView: true
47727
- }))));
47728
- }), mediaFile && (/*#__PURE__*/React__default.createElement(SliderPopup, {
47729
- channel: channel,
47730
- setIsSliderOpen: setMediaFile,
47731
- mediaFiles: attachments,
47732
- currentMediaFile: mediaFile
47733
- })));
47734
- };
47735
- var Container$p = styled.div(_templateObject$_ || (_templateObject$_ = _taggedTemplateLiteralLoose(["\n padding: 6px 4px;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n"])));
47736
- var MediaItem = styled.div(_templateObject2$U || (_templateObject2$U = _taggedTemplateLiteralLoose(["\n width: calc(33.3333% - 4px);\n aspect-ratio: 1/1;\n box-sizing: border-box;\n //border: 1px solid #ccc;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n overflow: hidden;\n margin: 2px;\n"])));
47737
-
47738
- var _rect$3, _path$1y;
47739
- function _extends$1C() {
47740
- return _extends$1C = Object.assign ? Object.assign.bind() : function (n) {
47741
- for (var e = 1; e < arguments.length; e++) {
47742
- var t = arguments[e];
47743
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47744
- }
47745
- return n;
47746
- }, _extends$1C.apply(null, arguments);
47747
- }
47748
- function SvgDocumentIcon(props) {
47749
- return /*#__PURE__*/createElement$1("svg", _extends$1C({
47750
- width: 40,
47751
- height: 40,
47752
- fill: "none",
47753
- xmlns: "http://www.w3.org/2000/svg"
47754
- }, props), _rect$3 || (_rect$3 = /*#__PURE__*/createElement$1("rect", {
47755
- width: 40,
47756
- height: 40,
47757
- rx: 8,
47758
- fill: "currentColor",
47759
- fillOpacity: 0.2
47760
- })), _path$1y || (_path$1y = /*#__PURE__*/createElement$1("path", {
47761
- fillRule: "evenodd",
47762
- clipRule: "evenodd",
47763
- d: "M17.593 9.5c-2.098 0-3.023.185-3.962.687a4.685 4.685 0 00-1.944 1.944c-.502.939-.687 1.864-.687 3.962v7.386c0 2.098.185 3.023.687 3.962a4.685 4.685 0 001.944 1.944c.939.502 1.864.686 3.962.686h3.957c2.098 0 3.023-.184 3.962-.687a4.685 4.685 0 001.944-1.944c.502-.938.687-1.863.687-3.961v-5.1c0-.683-.024-.99-.105-1.34a3.094 3.094 0 00-.399-.964c-.19-.305-.39-.54-.874-1.022l-4.175-4.175c-.483-.483-.717-.684-1.022-.874a3.096 3.096 0 00-.963-.4c-.294-.067-.556-.095-1.034-.102V9.5h-1.978zm0 1.714c-2.002 0-2.587.182-3.154.485a2.971 2.971 0 00-1.24 1.24c-.303.567-.485 1.152-.485 3.154v7.386c0 2.001.182 2.587.485 3.153a2.97 2.97 0 001.24 1.24c.567.304 1.152.485 3.154.485h3.957c2.001 0 2.587-.181 3.153-.484a2.97 2.97 0 001.241-1.241c.303-.566.485-1.152.485-3.153v-5.1c0-.118-.001-.22-.003-.308h-4.712a2.143 2.143 0 01-2.143-2.142l.002-4.713-.15-.001h-1.83zm3.785.876l-.092-.091v3.93c0 .21.151.385.351.421l.077.007 3.932.002-.093-.094-4.175-4.175zm-6.092 12.839c0-.474.383-.858.857-.858h3.428a.857.857 0 010 1.715h-3.428a.857.857 0 01-.857-.857zm.857-4.286a.857.857 0 100 1.714h6a.857.857 0 000-1.714h-6z",
47764
- fill: "currentColor"
47765
- })));
47766
- }
47767
-
47768
- var _path$1z;
47769
- function _extends$1D() {
47770
- return _extends$1D = Object.assign ? Object.assign.bind() : function (n) {
47771
- for (var e = 1; e < arguments.length; e++) {
47772
- var t = arguments[e];
47773
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47774
- }
47775
- return n;
47776
- }, _extends$1D.apply(null, arguments);
47777
- }
47778
- function SvgDownloadFile(props) {
47779
- return /*#__PURE__*/createElement$1("svg", _extends$1D({
47780
- width: 24,
47781
- height: 24,
47782
- xmlns: "http://www.w3.org/2000/svg",
47783
- fill: "currentColor"
47784
- }, props), _path$1z || (_path$1z = /*#__PURE__*/createElement$1("path", {
47785
- fillRule: "evenodd",
47786
- clipRule: "evenodd",
47787
- d: "M12 2a.91.91 0 01.91.91v11.44l2.993-2.993a.91.91 0 011.285 1.286l-4.545 4.545a.91.91 0 01-1.286 0l-4.545-4.545a.909.909 0 111.285-1.286l2.994 2.994V2.909A.91.91 0 0112 2zM2.91 15.636a.91.91 0 01.908.91v1.136a2.5 2.5 0 002.5 2.5h11.364a2.5 2.5 0 002.5-2.5v-1.136a.91.91 0 111.818 0v1.136A4.318 4.318 0 0117.682 22H6.318A4.318 4.318 0 012 17.682v-1.136a.91.91 0 01.91-.91z"
47788
- })));
47789
- }
47790
-
47791
- var _templateObject$$, _templateObject2$V, _templateObject3$N, _templateObject4$F, _templateObject5$A, _templateObject6$x, _templateObject7$w, _templateObject8$s;
47792
- var Files = function Files(_ref) {
47793
- var channelId = _ref.channelId,
47794
- filePreviewIcon = _ref.filePreviewIcon,
47795
- filePreviewHoverIcon = _ref.filePreviewHoverIcon,
47796
- filePreviewTitleColor = _ref.filePreviewTitleColor,
47797
- filePreviewSizeColor = _ref.filePreviewSizeColor,
47798
- filePreviewHoverBackgroundColor = _ref.filePreviewHoverBackgroundColor,
47799
- filePreviewDownloadIcon = _ref.filePreviewDownloadIcon,
47800
- fileNameFontSize = _ref.fileNameFontSize,
47801
- fileNameLineHeight = _ref.fileNameLineHeight,
47802
- fileSizeFontSize = _ref.fileSizeFontSize,
47803
- fileSizeLineHeight = _ref.fileSizeLineHeight;
47804
- var _useColor = useColors(),
47805
- accentColor = _useColor[THEME_COLORS.ACCENT],
47806
- textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
47807
- textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
47808
- backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
47809
- surface1 = _useColor[THEME_COLORS.SURFACE_1],
47810
- overlayBackground2 = _useColor[THEME_COLORS.OVERLAY_BACKGROUND_2];
47811
- var dispatch = useDispatch();
47812
- var _useState = useState({}),
47813
- downloadingFilesMap = _useState[0],
47814
- setDownloadingFilesMap = _useState[1];
47815
- var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
47816
- var nameSizeNum = fileNameFontSize && Number(fileNameFontSize.slice(0, -2));
47817
- var nameMaxLength = nameSizeNum ? 32 - (nameSizeNum - 15) * (nameSizeNum < 20 ? 2 : 1) : 32;
47818
- var handleCompleteDownload = function handleCompleteDownload(attachmentId) {
47819
- var stateCopy = _extends({}, downloadingFilesMap);
47820
- delete stateCopy[attachmentId];
47821
- setDownloadingFilesMap(stateCopy);
47822
- };
47823
- var handleDownloadFile = function handleDownloadFile(attachment) {
47824
- if (attachment.id) {
47825
- setDownloadingFilesMap(function (prevState) {
47826
- var _extends2;
47827
- return _extends({}, prevState, (_extends2 = {}, _extends2[attachment.id] = {
47828
- uploadPercent: 1
47829
- }, _extends2));
47830
- });
47831
- }
47832
- downloadFile(attachment, true, handleCompleteDownload, function (progress) {
47833
- var loadedRes = progress.loaded && progress.loaded / progress.total;
47834
- var uploadPercent = loadedRes && loadedRes * 100;
47835
- setDownloadingFilesMap(function (prevState) {
47836
- var _extends3;
47837
- return _extends({}, prevState, (_extends3 = {}, _extends3[attachment.id] = {
47838
- uploadPercent: uploadPercent
47839
- }, _extends3));
47840
- });
47841
- });
47842
- };
47843
- useEffect(function () {
47844
- dispatch(getAttachmentsAC(channelId, channelDetailsTabs.file));
47845
- }, [channelId]);
47846
- return /*#__PURE__*/React__default.createElement(Container$q, null, attachments.map(function (file, index) {
47847
- var metas = file.metadata && isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata;
47848
- var withPrefix = true;
47849
- var attachmentThumb = '';
47850
- if (metas && metas.tmb) {
47851
- if (metas.tmb.length < 70) {
47852
- attachmentThumb = base64ToDataURL(metas.tmb);
47853
- withPrefix = false;
47854
- } else {
47855
- attachmentThumb = metas.tmb;
47856
- }
47857
- }
47858
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
47859
- key: file.id
47860
- }, /*#__PURE__*/React__default.createElement(MonthHeader, {
47861
- currentCreatedAt: file.createdAt,
47862
- previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
47863
- isFirst: index === 0,
47864
- padding: '14px 14px 0'
47865
- }), /*#__PURE__*/React__default.createElement(FileItem, {
47866
- hoverBackgroundColor: filePreviewHoverBackgroundColor || backgroundHovered
47867
- }, metas && metas.tmb ? (/*#__PURE__*/React__default.createElement(FileThumb, {
47868
- draggable: false,
47869
- src: "" + (withPrefix ? 'data:image/jpeg;base64,' : '') + attachmentThumb
47870
- })) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont, {
47871
- iconColor: accentColor,
47872
- fillColor: surface1
47873
- }, filePreviewIcon || /*#__PURE__*/React__default.createElement(SvgDocumentIcon, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont, {
47874
- iconColor: accentColor,
47875
- fillColor: surface1
47876
- }, filePreviewHoverIcon || /*#__PURE__*/React__default.createElement(SvgDocumentIcon, null)))), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(AttachmentPreviewTitle, {
47877
- fontSize: fileNameFontSize,
47878
- lineHeight: fileNameLineHeight,
47879
- color: filePreviewTitleColor || textPrimary
47880
- }, _formatLargeText(file.name, nameMaxLength)), /*#__PURE__*/React__default.createElement(FileSizeAndDate, {
47881
- fontSize: fileSizeFontSize,
47882
- lineHeight: fileSizeLineHeight,
47883
- color: filePreviewSizeColor || textSecondary
47884
- }, file.size ? bytesToSize(file.size) + " \u2022 " + formatChannelDetailsDate(file.createdAt) : formatChannelDetailsDate(file.createdAt))), /*#__PURE__*/React__default.createElement(DownloadWrapper, {
47885
- visible: !!downloadingFilesMap[file.id],
47886
- iconColor: accentColor,
47887
- onClick: function onClick() {
47888
- return handleDownloadFile(file);
47889
- }
47890
- }, downloadingFilesMap[file.id] ? (/*#__PURE__*/React__default.createElement(ProgressWrapper$2, null, /*#__PURE__*/React__default.createElement(CircularProgressbar, {
47891
- minValue: 0,
47892
- maxValue: 100,
47893
- value: downloadingFilesMap[file.id].uploadPercent || 0,
47894
- backgroundPadding: 6,
47895
- background: true,
47896
- text: '',
47897
- styles: {
47898
- background: {
47899
- fill: overlayBackground2 + "66"
47900
- },
47901
- path: {
47902
- stroke: accentColor,
47903
- strokeLinecap: 'butt',
47904
- strokeWidth: '6px',
47905
- transition: 'stroke-dashoffset 0.5s ease 0s',
47906
- transform: 'rotate(0turn)',
47907
- transformOrigin: 'center center'
47908
- }
47909
- }
47910
- }))) : filePreviewDownloadIcon || /*#__PURE__*/React__default.createElement(SvgDownloadFile, null))));
47911
- }));
47912
- };
47913
- var Container$q = styled.ul(_templateObject$$ || (_templateObject$$ = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
47914
- var DownloadWrapper = styled.a(_templateObject2$V || (_templateObject2$V = _taggedTemplateLiteralLoose(["\n text-decoration: none;\n visibility: ", ";\n padding: 5px 6px;\n position: absolute;\n top: 25%;\n right: 16px;\n cursor: pointer;\n & > svg {\n & path {\n fill: ", ";\n }\n color: ", ";\n }\n"])), function (props) {
47915
- return props.visible ? 'visible' : 'hidden';
47916
- }, function (props) {
47917
- return props.iconColor;
47918
- }, function (props) {
47919
- return props.iconColor;
47920
- });
47921
- var ProgressWrapper$2 = styled.span(_templateObject3$N || (_templateObject3$N = _taggedTemplateLiteralLoose(["\n display: inline-block;\n width: 20px;\n height: 20px;\n animation: preloader 1.5s linear infinite;\n\n @keyframes preloader {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n"])));
47922
- var FileIconCont = styled.span(_templateObject4$F || (_templateObject4$F = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n & > svg {\n width: 40px;\n height: 40px;\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47923
- return props.iconColor;
47924
- }, function (props) {
47925
- return props.fillColor;
47926
- });
47927
- var FileHoverIconCont = styled.span(_templateObject5$A || (_templateObject5$A = _taggedTemplateLiteralLoose(["\n display: none;\n & > svg {\n width: 40px;\n height: 40px;\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
47928
- return props.iconColor;
47929
- }, function (props) {
47930
- return props.fillColor;
47931
- });
47932
- var FileThumb = styled.img(_templateObject6$x || (_templateObject6$x = _taggedTemplateLiteralLoose(["\n width: 40px;\n height: 40px;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-radius: 8px;\n object-fit: cover;\n"])));
47933
- var FileItem = styled.div(_templateObject7$w || (_templateObject7$w = _taggedTemplateLiteralLoose(["\n position: relative;\n padding: 11px 16px;\n display: flex;\n align-items: center;\n font-size: 15px;\n transition: all 0.2s;\n div {\n margin-left: 7px;\n width: calc(100% - 48px);\n }\n &:hover {\n background-color: ", ";\n ", " {\n visibility: visible;\n }\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n /*&.isHover {\n\n }*/\n"])), function (props) {
47934
- return props.hoverBackgroundColor;
47935
- }, DownloadWrapper, FileIconCont, FileHoverIconCont);
47936
- var FileSizeAndDate = styled.span(_templateObject8$s || (_templateObject8$s = _taggedTemplateLiteralLoose(["\n display: block;\n font-style: normal;\n font-weight: normal;\n font-size: ", ";\n line-height: ", ";\n color: ", ";\n margin-top: 2px;\n"])), function (props) {
47937
- return props.fontSize || '13px';
47938
- }, function (props) {
47939
- return props.lineHeight || '16px';
47940
- }, function (props) {
47941
- return props.color;
47942
- });
47943
-
47944
- var _rect$4, _path$1A;
47945
- function _extends$1E() {
47946
- return _extends$1E = Object.assign ? Object.assign.bind() : function (n) {
47947
- for (var e = 1; e < arguments.length; e++) {
47948
- var t = arguments[e];
47949
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
47950
- }
47951
- return n;
47952
- }, _extends$1E.apply(null, arguments);
47953
- }
47954
- function SvgLinkIcon(props) {
47955
- return /*#__PURE__*/createElement$1("svg", _extends$1E({
47956
- width: 40,
47957
- height: 40,
47958
- fill: "none",
47959
- xmlns: "http://www.w3.org/2000/svg",
47960
- color: "#5159f6"
47961
- }, props), _rect$4 || (_rect$4 = /*#__PURE__*/createElement$1("rect", {
47962
- width: 40,
47963
- height: 40,
47964
- rx: 8,
47965
- fill: "currentColor",
47966
- fillOpacity: 0.2
47967
- })), _path$1A || (_path$1A = /*#__PURE__*/createElement$1("path", {
47968
- fillRule: "evenodd",
47969
- clipRule: "evenodd",
47970
- d: "M21.547 11.524a4.9 4.9 0 016.928 6.929l-.01.011-4 4a4.9 4.9 0 01-6.93 0 .9.9 0 011.273-1.273 3.1 3.1 0 004.384 0l3.994-3.994a3.1 3.1 0 00-4.384-4.383l-1.094 1.094a.9.9 0 01-1.272-1.273l1.1-1.1.01-.01zm-6.011 6.011a4.9 4.9 0 016.928 0 .9.9 0 11-1.272 1.273 3.1 3.1 0 00-4.384 0l-4 4-.01.011a3.1 3.1 0 104.383 4.384l.01-.012 1.103-1.1a.9.9 0 111.272 1.272l-1.097 1.096a4.9 4.9 0 11-6.928-6.929l3.995-3.995z",
47971
- fill: "currentColor"
47972
- })));
47973
- }
47974
-
47975
- var _templateObject$10, _templateObject2$W, _templateObject3$O, _templateObject4$G, _templateObject5$B;
47976
- var LinkItem = function LinkItem(_ref) {
47977
- var link = _ref.link,
47978
- linkPreviewIcon = _ref.linkPreviewIcon,
47979
- linkPreviewHoverIcon = _ref.linkPreviewHoverIcon,
47980
- linkPreviewColor = _ref.linkPreviewColor,
47981
- linkPreviewHoverBackgroundColor = _ref.linkPreviewHoverBackgroundColor;
47982
- var _useColor = useColors(),
47983
- accentColor = _useColor[THEME_COLORS.ACCENT],
47984
- textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
47985
- backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
47986
- surface1 = _useColor[THEME_COLORS.SURFACE_1];
47987
- useEffect(function () {}, []);
47988
- return /*#__PURE__*/React__default.createElement(FileItem$1, {
47989
- draggable: false,
47990
- hoverBackgroundColor: linkPreviewHoverBackgroundColor || backgroundHovered
47991
- }, /*#__PURE__*/React__default.createElement("a", {
47992
- draggable: false,
47993
- href: link.startsWith('http') ? link : "https://" + link,
47994
- target: '_blank',
47995
- rel: 'noreferrer'
47996
- }, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(LinkIconCont, {
47997
- iconColor: accentColor,
47998
- fillColor: surface1
47999
- }, linkPreviewIcon || /*#__PURE__*/React__default.createElement(SvgLinkIcon, null)), /*#__PURE__*/React__default.createElement(LinkHoverIconCont, {
48000
- iconColor: accentColor,
48001
- fillColor: surface1
48002
- }, linkPreviewHoverIcon || /*#__PURE__*/React__default.createElement(SvgLinkIcon, null))), /*#__PURE__*/React__default.createElement(LinkInfoCont, null, /*#__PURE__*/React__default.createElement(LinkUrl, {
48003
- color: linkPreviewColor || textPrimary
48004
- }, link))));
48005
- };
48006
- var LinkIconCont = styled.span(_templateObject$10 || (_templateObject$10 = _taggedTemplateLiteralLoose(["\n display: inline-flex;\n > svg {\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
48007
- return props.iconColor;
48008
- }, function (props) {
48009
- return props.fillColor;
48010
- });
48011
- var LinkHoverIconCont = styled.span(_templateObject2$W || (_templateObject2$W = _taggedTemplateLiteralLoose(["\n display: none;\n > svg {\n color: ", ";\n rect {\n fill: ", ";\n }\n }\n"])), function (props) {
48012
- return props.iconColor;
48013
- }, function (props) {
48014
- return props.fillColor;
48015
- });
48016
- var LinkInfoCont = styled.div(_templateObject3$O || (_templateObject3$O = _taggedTemplateLiteralLoose(["\n margin-left: 12px;\n width: calc(100% - 40px);\n"])));
48017
- var FileItem$1 = styled.li(_templateObject4$G || (_templateObject4$G = _taggedTemplateLiteralLoose(["\n padding: 9px 16px;\n a {\n display: flex;\n align-items: center;\n text-decoration: none;\n }\n &:hover {\n background-color: ", ";\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n"])), function (props) {
48018
- return props.hoverBackgroundColor;
48019
- }, LinkIconCont, LinkHoverIconCont);
48020
- var LinkUrl = styled.span(_templateObject5$B || (_templateObject5$B = _taggedTemplateLiteralLoose(["\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 52px);\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n text-decoration: underline;\n color: ", ";\n"])), function (props) {
48021
- return props.color;
48022
- });
48023
-
48024
- var _templateObject$11;
48025
- var Links = function Links(_ref) {
48026
- var channelId = _ref.channelId,
48027
- linkPreviewIcon = _ref.linkPreviewIcon,
48028
- linkPreviewHoverIcon = _ref.linkPreviewHoverIcon,
48029
- linkPreviewTitleColor = _ref.linkPreviewTitleColor,
48030
- linkPreviewColor = _ref.linkPreviewColor,
48031
- linkPreviewHoverBackgroundColor = _ref.linkPreviewHoverBackgroundColor;
48032
- var dispatch = useDispatch();
48033
- var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
48034
- useEffect(function () {
48035
- dispatch(getAttachmentsAC(channelId, channelDetailsTabs.link));
48036
- }, [channelId]);
48037
- return /*#__PURE__*/React__default.createElement(Container$r, null, attachments.map(function (file, index) {
48038
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
48039
- key: file.id
48040
- }, /*#__PURE__*/React__default.createElement(MonthHeader, {
48041
- currentCreatedAt: file.createdAt,
48042
- previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
48043
- isFirst: index === 0,
48044
- padding: '6px 14px 0'
48045
- }), /*#__PURE__*/React__default.createElement(LinkItem, {
48046
- link: file.url,
48047
- linkPreviewColor: linkPreviewColor,
48048
- linkPreviewHoverBackgroundColor: linkPreviewHoverBackgroundColor,
48049
- linkPreviewHoverIcon: linkPreviewHoverIcon,
48050
- linkPreviewTitleColor: linkPreviewTitleColor,
48051
- linkPreviewIcon: linkPreviewIcon
48052
- }));
48053
- }));
48054
- };
48055
- var Container$r = styled.ul(_templateObject$11 || (_templateObject$11 = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 11px 0 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
48056
-
48057
- var _rect$5, _path$1B;
48058
- function _extends$1F() {
48059
- return _extends$1F = Object.assign ? Object.assign.bind() : function (n) {
48060
- for (var e = 1; e < arguments.length; e++) {
48061
- var t = arguments[e];
48062
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
48063
- }
48064
- return n;
48065
- }, _extends$1F.apply(null, arguments);
48066
- }
48067
- function SvgVoicePreview(props) {
48068
- return /*#__PURE__*/createElement$1("svg", _extends$1F({
48069
- width: 40,
48070
- height: 40,
48071
- fill: "none",
48072
- xmlns: "http://www.w3.org/2000/svg"
48073
- }, props), _rect$5 || (_rect$5 = /*#__PURE__*/createElement$1("rect", {
48074
- width: 40,
48075
- height: 40,
48076
- rx: 20,
48077
- fill: "#5159F6"
48078
- })), _path$1B || (_path$1B = /*#__PURE__*/createElement$1("path", {
48079
- d: "M27.536 18.696c.952.576.952 2.03 0 2.605l-9.918 5.997c-.944.57-2.118-.151-2.118-1.303V14.002c0-1.151 1.174-1.873 2.118-1.303l9.918 5.997z",
48080
- fill: "#fff"
48081
- })));
48082
- }
48083
-
48084
- var _rect$6, _path$1C;
48085
- function _extends$1G() {
48086
- return _extends$1G = Object.assign ? Object.assign.bind() : function (n) {
48087
- for (var e = 1; e < arguments.length; e++) {
48088
- var t = arguments[e];
48089
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
48090
- }
48091
- return n;
48092
- }, _extends$1G.apply(null, arguments);
48093
- }
48094
- function SvgVoicePreviewPause(props) {
48095
- return /*#__PURE__*/createElement$1("svg", _extends$1G({
48096
- width: 40,
48097
- height: 40,
48098
- fill: "none",
48099
- xmlns: "http://www.w3.org/2000/svg"
48100
- }, props), _rect$6 || (_rect$6 = /*#__PURE__*/createElement$1("rect", {
48101
- width: 40,
48102
- height: 40,
48103
- rx: 20,
48104
- fill: "#5159F6"
48105
- })), _path$1C || (_path$1C = /*#__PURE__*/createElement$1("path", {
48106
- d: "M16.962 12.5c.535 0 .729.056.924.16.196.105.35.258.454.454.104.195.16.39.16.924v11.924c0 .535-.056.729-.16.924a1.09 1.09 0 01-.454.454c-.195.104-.39.16-.924.16h-1.424c-.535 0-.729-.056-.924-.16a1.09 1.09 0 01-.454-.454c-.104-.195-.16-.39-.16-.924V14.038c0-.535.056-.729.16-.924a1.09 1.09 0 01.454-.454c.195-.104.39-.16.924-.16h1.424zm7.5 0c.535 0 .729.056.924.16.196.105.35.258.454.454.104.195.16.39.16.924v11.924c0 .535-.056.729-.16.924a1.09 1.09 0 01-.454.454c-.195.104-.39.16-.924.16h-1.424c-.535 0-.729-.056-.924-.16a1.09 1.09 0 01-.454-.454c-.104-.195-.16-.39-.16-.924V14.038c0-.535.056-.729.16-.924a1.09 1.09 0 01.454-.454c.195-.104.39-.16.924-.16h1.424z",
48107
- fill: "#fff"
48108
- })));
48109
- }
48110
-
48111
- var _templateObject$12, _templateObject2$X, _templateObject3$P, _templateObject4$H, _templateObject5$C, _templateObject6$y, _templateObject7$x, _templateObject8$t;
48112
- var VoiceItem = function VoiceItem(_ref) {
48113
- var file = _ref.file,
48114
- voicePreviewPlayIcon = _ref.voicePreviewPlayIcon,
48115
- voicePreviewPlayHoverIcon = _ref.voicePreviewPlayHoverIcon,
48116
- voicePreviewPauseIcon = _ref.voicePreviewPauseIcon,
48117
- voicePreviewPauseHoverIcon = _ref.voicePreviewPauseHoverIcon,
48118
- voicePreviewTitleColor = _ref.voicePreviewTitleColor,
48119
- voicePreviewDateAndTimeColor = _ref.voicePreviewDateAndTimeColor,
48120
- voicePreviewHoverBackgroundColor = _ref.voicePreviewHoverBackgroundColor,
48121
- messageType = _ref.messageType;
48122
- var _useColor = useColors(),
48123
- textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
48124
- textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
48125
- backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
48126
- accentColor = _useColor[THEME_COLORS.ACCENT];
48127
- var dispatch = useDispatch();
48128
- var playingAudioId = useSelector(playingAudioIdSelector);
48129
- var getFromContacts = getShowOnlyContactUsers();
48130
- var _useState = useState(''),
48131
- fileUrl = _useState[0],
48132
- setFileUrl = _useState[1];
48133
- var _useState2 = useState(false),
48134
- audioIsPlaying = _useState2[0],
48135
- setAudioIsPlaying = _useState2[1];
48136
- var _useState3 = useState(''),
48137
- currentTime = _useState3[0],
48138
- setCurrentTime = _useState3[1];
48139
- var customDownloader = getCustomDownloader();
48140
- var contactsMap = useSelector(contactsMapSelector);
48141
- var user = useSelector(userSelector);
48142
- var audioRef = useRef();
48143
- var intervalRef = useRef(null);
48144
- var handlePlayPause = function handlePlayPause() {
48145
- if (audioRef && audioRef.current) {
48146
- if (audioRef.current.paused) {
48147
- var _audioRef$current, _audioRef$current5;
48148
- var audioDuration = (_audioRef$current = audioRef.current) === null || _audioRef$current === void 0 ? void 0 : _audioRef$current.duration;
48149
- dispatch(setPlayingAudioIdAC("voice_" + file.id));
48150
- intervalRef.current = setInterval(function () {
48151
- var _audioRef$current2;
48152
- var audioCurrentTime = (_audioRef$current2 = audioRef.current) === null || _audioRef$current2 === void 0 ? void 0 : _audioRef$current2.currentTime;
48153
- if (audioDuration) {
48154
- if ((audioCurrentTime || audioCurrentTime === 0) && audioDuration - audioCurrentTime > 0) {
48155
- setCurrentTime(formatAudioVideoTime(audioCurrentTime));
48156
- } else {
48157
- var _audioRef$current3;
48158
- setCurrentTime(formatAudioVideoTime(audioCurrentTime || 0));
48159
- setAudioIsPlaying(false);
48160
- (_audioRef$current3 = audioRef.current) === null || _audioRef$current3 === void 0 ? void 0 : _audioRef$current3.pause();
48161
- audioRef.current && (audioRef.current.currentTime = 0);
48162
- clearInterval(intervalRef.current);
48163
- }
48164
- } else {
48165
- var _audioRef$current4;
48166
- audioDuration = (_audioRef$current4 = audioRef.current) === null || _audioRef$current4 === void 0 ? void 0 : _audioRef$current4.duration;
48167
- }
48168
- }, 100);
48169
- setAudioIsPlaying(true);
48170
- (_audioRef$current5 = audioRef.current) === null || _audioRef$current5 === void 0 ? void 0 : _audioRef$current5.play();
48171
- } else {
48172
- var _audioRef$current6;
48173
- clearInterval(intervalRef.current);
48174
- dispatch(setPlayingAudioIdAC(null));
48175
- setAudioIsPlaying(false);
48176
- (_audioRef$current6 = audioRef.current) === null || _audioRef$current6 === void 0 ? void 0 : _audioRef$current6.pause();
48177
- }
48178
- }
48179
- };
48180
- useDidUpdate(function () {
48181
- if (audioIsPlaying && playingAudioId && playingAudioId !== "voice_" + file.id && audioRef.current) {
48182
- setAudioIsPlaying(false);
48183
- audioRef.current.pause();
48184
- }
48185
- }, [playingAudioId]);
48186
- useEffect(function () {
48187
- if (customDownloader) {
48188
- customDownloader(file.url, false, function () {}, messageType).then(function (url) {
48189
- setFileUrl(url);
48190
- });
48191
- } else {
48192
- setFileUrl(file.url);
48193
- }
48194
- return function () {
48195
- clearInterval(intervalRef.current);
48196
- };
48197
- }, []);
48198
- return /*#__PURE__*/React__default.createElement(FileItem$2, {
48199
- onMouseEnter: function onMouseEnter(e) {
48200
- return e.currentTarget.classList.add('isHover');
48201
- },
48202
- onMouseLeave: function onMouseLeave(e) {
48203
- return e.currentTarget.classList.remove('isHover');
48204
- },
48205
- hoverBackgroundColor: voicePreviewHoverBackgroundColor || backgroundHovered
48206
- }, audioIsPlaying ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont$1, {
48207
- onClick: handlePlayPause,
48208
- fill: accentColor
48209
- }, voicePreviewPauseIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreviewPause, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont$1, {
48210
- onClick: handlePlayPause,
48211
- fill: accentColor
48212
- }, voicePreviewPauseHoverIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreviewPause, null)))) : (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(FileIconCont$1, {
48213
- onClick: handlePlayPause,
48214
- fill: accentColor
48215
- }, voicePreviewPlayIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreview, null)), /*#__PURE__*/React__default.createElement(FileHoverIconCont$1, {
48216
- onClick: handlePlayPause,
48217
- fill: accentColor
48218
- }, voicePreviewPlayHoverIcon || /*#__PURE__*/React__default.createElement(SvgVoicePreview, null)))), /*#__PURE__*/React__default.createElement(AudioInfo, null, /*#__PURE__*/React__default.createElement(AudioTitle, {
48219
- color: voicePreviewTitleColor || textPrimary
48220
- }, file.user && (file.user.id === user.id ? 'You' : makeUsername(contactsMap[file.user.id], file.user, getFromContacts))), /*#__PURE__*/React__default.createElement(AudioDate, {
48221
- color: voicePreviewDateAndTimeColor || textSecondary
48222
- }, formatChannelDetailsDate(file.createdAt)), /*#__PURE__*/React__default.createElement(AudioSendTime, {
48223
- color: textSecondary
48224
- }, currentTime || (file.metadata.dur ? formatAudioVideoTime(file.metadata.dur) : ''))), /*#__PURE__*/React__default.createElement(Audio, {
48225
- controls: true,
48226
- ref: audioRef,
48227
- src: fileUrl
48228
- }, /*#__PURE__*/React__default.createElement("source", {
48229
- src: fileUrl,
48230
- type: 'audio/ogg'
48231
- }), /*#__PURE__*/React__default.createElement("source", {
48232
- src: fileUrl,
48233
- type: 'audio/mpeg'
48234
- })));
48235
- };
48236
- var FileIconCont$1 = styled.span(_templateObject$12 || (_templateObject$12 = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n display: inline-flex;\n fill: ", ";\n rect {\n fill: ", ";\n }\n"])), function (props) {
48237
- return props.fill || 'transparent';
48238
- }, function (props) {
48239
- return props.fill || 'transparent';
48240
- });
48241
- var FileHoverIconCont$1 = styled.span(_templateObject2$X || (_templateObject2$X = _taggedTemplateLiteralLoose(["\n cursor: pointer;\n display: none;\n fill: ", ";\n rect {\n fill: ", ";\n }\n"])), function (props) {
48242
- return props.fill || 'transparent';
48243
- }, function (props) {
48244
- return props.fill || 'transparent';
48245
- });
48246
- var FileItem$2 = styled.li(_templateObject3$P || (_templateObject3$P = _taggedTemplateLiteralLoose(["\n padding: 9px 16px;\n display: flex;\n align-items: center;\n text-decoration: none;\n\n &:hover {\n background-color: ", ";\n }\n div {\n margin-left: 12px;\n width: 100%;\n }\n img {\n width: 42px;\n height: 42px;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n border-radius: 6px;\n }\n\n &.isHover {\n & ", " {\n display: none;\n }\n & ", " {\n display: inline-flex;\n }\n }\n"])), function (props) {
48247
- return props.hoverBackgroundColor;
48248
- }, FileIconCont$1, FileHoverIconCont$1);
48249
- var AudioInfo = styled.div(_templateObject4$H || (_templateObject4$H = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
48250
- var AudioTitle = styled.span(_templateObject5$C || (_templateObject5$C = _taggedTemplateLiteralLoose(["\n display: block;\n font-style: normal;\n font-weight: 500;\n font-size: 15px;\n line-height: 20px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 72px);\n color: ", ";\n"])), function (props) {
48251
- return props.color;
48252
- });
48253
- var AudioDate = styled.span(_templateObject6$y || (_templateObject6$y = _taggedTemplateLiteralLoose(["\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: calc(100% - 72px);\n font-style: normal;\n font-weight: normal;\n font-size: 13px;\n line-height: 16px;\n color: ", ";\n"])), function (props) {
48254
- return props.color;
48255
- });
48256
- var AudioSendTime = styled.span(_templateObject7$x || (_templateObject7$x = _taggedTemplateLiteralLoose(["\n position: absolute;\n right: 0;\n top: 11px;\n color: ", ";\n font-size: 12px;\n line-height: 16px;\n"])), function (props) {
48257
- return props.color;
48258
- });
48259
- var Audio = styled.audio(_templateObject8$t || (_templateObject8$t = _taggedTemplateLiteralLoose(["\n display: none;\n"])));
48260
-
48261
- var _templateObject$13;
48262
- var Voices = function Voices(_ref) {
48263
- var channelId = _ref.channelId,
48264
- voicePreviewPlayIcon = _ref.voicePreviewPlayIcon,
48265
- voicePreviewPlayHoverIcon = _ref.voicePreviewPlayHoverIcon,
48266
- voicePreviewPauseIcon = _ref.voicePreviewPauseIcon,
48267
- voicePreviewPauseHoverIcon = _ref.voicePreviewPauseHoverIcon,
48268
- voicePreviewTitleColor = _ref.voicePreviewTitleColor,
48269
- voicePreviewDateAndTimeColor = _ref.voicePreviewDateAndTimeColor,
48270
- voicePreviewHoverBackgroundColor = _ref.voicePreviewHoverBackgroundColor;
48271
- var dispatch = useDispatch();
48272
- var attachments = useSelector(activeTabAttachmentsSelector, shallowEqual) || [];
48273
- useEffect(function () {
48274
- dispatch(getAttachmentsAC(channelId, channelDetailsTabs.voice));
48275
- }, [channelId]);
48276
- return /*#__PURE__*/React__default.createElement(Container$s, null, attachments.map(function (file, index) {
48277
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
48278
- key: file.id
48279
- }, /*#__PURE__*/React__default.createElement(MonthHeader, {
48280
- currentCreatedAt: file.createdAt,
48281
- previousCreatedAt: index > 0 ? attachments[index - 1].createdAt : undefined,
48282
- isFirst: index === 0,
48283
- padding: '7px 14px 2px'
48284
- }), /*#__PURE__*/React__default.createElement(VoiceItem, {
48285
- file: _extends({}, file, {
48286
- metadata: isJSON(file.metadata) ? JSON.parse(file.metadata) : file.metadata
48287
- }),
48288
- voicePreviewDateAndTimeColor: voicePreviewDateAndTimeColor,
48289
- voicePreviewHoverBackgroundColor: voicePreviewHoverBackgroundColor,
48290
- voicePreviewPlayHoverIcon: voicePreviewPlayIcon,
48291
- voicePreviewPlayIcon: voicePreviewPlayHoverIcon,
48292
- voicePreviewPauseIcon: voicePreviewPauseIcon,
48293
- voicePreviewPauseHoverIcon: voicePreviewPauseHoverIcon,
48294
- voicePreviewTitleColor: voicePreviewTitleColor
48295
- }));
48296
- }));
48297
- };
48298
- var Container$s = styled.ul(_templateObject$13 || (_templateObject$13 = _taggedTemplateLiteralLoose(["\n margin: 0;\n padding: 11px 0 0;\n overflow-x: hidden;\n overflow-y: auto;\n list-style: none;\n transition: all 0.2s;\n"])));
48299
-
48300
48581
  var _templateObject$14, _templateObject2$Y;
48301
48582
  var DetailsTab = function DetailsTab(_ref) {
48302
48583
  var channel = _ref.channel,
@@ -48348,6 +48629,10 @@ var DetailsTab = function DetailsTab(_ref) {
48348
48629
  border = _useColor[THEME_COLORS.BORDER],
48349
48630
  background = _useColor[THEME_COLORS.BACKGROUND];
48350
48631
  var dispatch = useDispatch();
48632
+ var activeChannelMembersMap = useSelector(activeChannelMembersMapSelector, shallowEqual);
48633
+ var members = useMemo(function () {
48634
+ return (activeChannelMembersMap === null || activeChannelMembersMap === void 0 ? void 0 : activeChannelMembersMap[channel.id]) || [];
48635
+ }, [activeChannelMembersMap === null || activeChannelMembersMap === void 0 ? void 0 : activeChannelMembersMap[channel.id]]);
48351
48636
  var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
48352
48637
  var showMembers = !isDirectChannel && checkActionPermission('getMembers');
48353
48638
  var memberDisplayText = getChannelTypesMemberDisplayTextMap();
@@ -48402,6 +48687,7 @@ var DetailsTab = function DetailsTab(_ref) {
48402
48687
  }, /*#__PURE__*/React__default.createElement("span", null, channelDetailsTabs[tabKey]));
48403
48688
  })), showMembers && activeTab === channelDetailsTabs.member && (/*#__PURE__*/React__default.createElement(Members, {
48404
48689
  theme: theme,
48690
+ members: members,
48405
48691
  channel: channel,
48406
48692
  checkActionPermission: checkActionPermission,
48407
48693
  showChangeMemberRole: showChangeMemberRole,
@@ -48886,8 +49172,14 @@ var Details = function Details(_ref) {
48886
49172
  var activeChannel = useSelector(activeChannelSelector, shallowEqual);
48887
49173
  var _usePermissions = usePermissions(activeChannel ? activeChannel.userRole : ''),
48888
49174
  checkActionPermission = _usePermissions[0];
48889
- var membersLoading = useSelector(membersLoadingStateSelector);
48890
- var membersHasNext = useSelector(membersHasNextSelector);
49175
+ var channelsMembersLoadingState = useSelector(channelsMembersLoadingStateSelector, shallowEqual);
49176
+ var membersLoading = useMemo(function () {
49177
+ return channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id];
49178
+ }, [channelsMembersLoadingState === null || channelsMembersLoadingState === void 0 ? void 0 : channelsMembersLoadingState[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id]]);
49179
+ var channelsMembersHasNext = useSelector(channelsMembersHasNextMapSelector, shallowEqual);
49180
+ var membersHasNext = useMemo(function () {
49181
+ return channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id];
49182
+ }, [channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.id]]);
48891
49183
  var messagesLoading = useSelector(messagesLoadingState);
48892
49184
  var attachmentsHasNex = useSelector(activeTabAttachmentsHasNextSelector);
48893
49185
  var contactsMap = useSelector(contactsMapSelector);