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