sceyt-chat-react-uikit 1.9.1-beta.13 → 1.9.1-beta.15
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/components/SendMessageInput/MentionsPlugin/index.d.ts +10 -0
- package/index.js +689 -281
- package/index.modern.js +689 -281
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -2713,26 +2713,6 @@ var getClient = function getClient() {
|
|
|
2713
2713
|
return SceytChatClient;
|
|
2714
2714
|
};
|
|
2715
2715
|
|
|
2716
|
-
var hideUserPresence;
|
|
2717
|
-
var setHideUserPresence = function setHideUserPresence(callback) {
|
|
2718
|
-
hideUserPresence = callback;
|
|
2719
|
-
};
|
|
2720
|
-
var usersMap = {};
|
|
2721
|
-
var updateUserOnMap = function updateUserOnMap(user) {
|
|
2722
|
-
usersMap[user.id] = user;
|
|
2723
|
-
};
|
|
2724
|
-
var setUserToMap = function setUserToMap(user) {
|
|
2725
|
-
usersMap[user.id] = user;
|
|
2726
|
-
};
|
|
2727
|
-
var deleteUserFromMap = function deleteUserFromMap(userId) {
|
|
2728
|
-
delete usersMap[userId];
|
|
2729
|
-
};
|
|
2730
|
-
var clearUsersMap = function clearUsersMap() {
|
|
2731
|
-
Object.keys(usersMap).forEach(function (userId) {
|
|
2732
|
-
return delete usersMap[userId];
|
|
2733
|
-
});
|
|
2734
|
-
};
|
|
2735
|
-
|
|
2736
2716
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
2737
2717
|
|
|
2738
2718
|
function createCommonjsModule(fn, module) {
|
|
@@ -8425,6 +8405,11 @@ var moment = createCommonjsModule(function (module, exports) {
|
|
|
8425
8405
|
})));
|
|
8426
8406
|
});
|
|
8427
8407
|
|
|
8408
|
+
var hideUserPresence;
|
|
8409
|
+
var setHideUserPresence = function setHideUserPresence(callback) {
|
|
8410
|
+
hideUserPresence = callback;
|
|
8411
|
+
};
|
|
8412
|
+
|
|
8428
8413
|
var HiddenMessageProperty;
|
|
8429
8414
|
(function (HiddenMessageProperty) {
|
|
8430
8415
|
HiddenMessageProperty["hideAfterChannelChange"] = "hideAfterChannelChange";
|
|
@@ -14906,16 +14891,6 @@ var channelSlice = createSlice({
|
|
|
14906
14891
|
}
|
|
14907
14892
|
state.activeChannel = nextChannel;
|
|
14908
14893
|
state.messageSearchIsOpen = false;
|
|
14909
|
-
if (action.payload.channel.type === DEFAULT_CHANNEL_TYPE.DIRECT) {
|
|
14910
|
-
var ChatClient = getClient();
|
|
14911
|
-
var user = ChatClient.user;
|
|
14912
|
-
var directChannelUser = action.payload.channel.members.find(function (member) {
|
|
14913
|
-
return member.id !== user.id;
|
|
14914
|
-
});
|
|
14915
|
-
if (directChannelUser) {
|
|
14916
|
-
setUserToMap(directChannelUser);
|
|
14917
|
-
}
|
|
14918
|
-
}
|
|
14919
14894
|
},
|
|
14920
14895
|
updateChannelData: function updateChannelData(state, action) {
|
|
14921
14896
|
var _action$payload3 = action.payload,
|
|
@@ -15294,7 +15269,9 @@ var memberSlice = createSlice({
|
|
|
15294
15269
|
if (!state.channelsMembersMap[channelId]) {
|
|
15295
15270
|
state.channelsMembersMap[channelId] = [];
|
|
15296
15271
|
}
|
|
15297
|
-
state.channelsMembersMap[channelId] = Array.from(new
|
|
15272
|
+
state.channelsMembersMap[channelId] = Array.from(new Map(members.map(function (member) {
|
|
15273
|
+
return [member.id, member];
|
|
15274
|
+
})).values());
|
|
15298
15275
|
},
|
|
15299
15276
|
addMembersToList: function addMembersToList(state, action) {
|
|
15300
15277
|
var _action$payload2 = action.payload,
|
|
@@ -15303,7 +15280,13 @@ var memberSlice = createSlice({
|
|
|
15303
15280
|
if (!state.channelsMembersMap[channelId]) {
|
|
15304
15281
|
state.channelsMembersMap[channelId] = [];
|
|
15305
15282
|
}
|
|
15306
|
-
|
|
15283
|
+
var byId = new Map(state.channelsMembersMap[channelId].map(function (member) {
|
|
15284
|
+
return [member.id, member];
|
|
15285
|
+
}));
|
|
15286
|
+
members.forEach(function (member) {
|
|
15287
|
+
if (!byId.has(member.id)) byId.set(member.id, member);
|
|
15288
|
+
});
|
|
15289
|
+
state.channelsMembersMap[channelId] = Array.from(byId.values());
|
|
15307
15290
|
},
|
|
15308
15291
|
updateMembers: function updateMembers(state, action) {
|
|
15309
15292
|
var _action$payload3 = action.payload,
|
|
@@ -15325,11 +15308,12 @@ var memberSlice = createSlice({
|
|
|
15325
15308
|
},
|
|
15326
15309
|
updateMembersPresence: function updateMembersPresence(state, action) {
|
|
15327
15310
|
var usersMap = action.payload.usersMap;
|
|
15328
|
-
for (var channelId in
|
|
15329
|
-
var
|
|
15330
|
-
if (
|
|
15331
|
-
|
|
15332
|
-
|
|
15311
|
+
for (var channelId in state.channelsMembersMap) {
|
|
15312
|
+
var members = state.channelsMembersMap[channelId];
|
|
15313
|
+
if (members !== null && members !== void 0 && members.some(function (member) {
|
|
15314
|
+
return usersMap[member.id];
|
|
15315
|
+
})) {
|
|
15316
|
+
state.channelsMembersMap[channelId] = members.map(function (member) {
|
|
15333
15317
|
if (usersMap[member.id]) {
|
|
15334
15318
|
return _extends({}, member, usersMap[member.id]);
|
|
15335
15319
|
}
|
|
@@ -15349,12 +15333,12 @@ var memberSlice = createSlice({
|
|
|
15349
15333
|
channelId = _action$payload4.channelId,
|
|
15350
15334
|
members = _action$payload4.members;
|
|
15351
15335
|
if (members.length && state.channelsMembersMap[channelId]) {
|
|
15352
|
-
var _state$
|
|
15336
|
+
var _state$channelsMember2;
|
|
15353
15337
|
var removedMembersMap = {};
|
|
15354
15338
|
for (var i = 0; i < members.length; i++) {
|
|
15355
15339
|
removedMembersMap[members[i].id] = members[i];
|
|
15356
15340
|
}
|
|
15357
|
-
state.channelsMembersMap[channelId] = (_state$
|
|
15341
|
+
state.channelsMembersMap[channelId] = (_state$channelsMember2 = state.channelsMembersMap[channelId]) === null || _state$channelsMember2 === void 0 ? void 0 : _state$channelsMember2.filter(function (member) {
|
|
15358
15342
|
return !removedMembersMap[member.id];
|
|
15359
15343
|
});
|
|
15360
15344
|
}
|
|
@@ -15439,7 +15423,6 @@ var LOAD_MORE_USERS = 'LOAD_MORE_USERS';
|
|
|
15439
15423
|
var BLOCK_USERS = 'BLOCK_USERS';
|
|
15440
15424
|
var UNBLOCK_USERS = 'UNBLOCK_USERS';
|
|
15441
15425
|
var UPDATE_PROFILE = 'UPDATE_PROFILE';
|
|
15442
|
-
var CHECK_USER_STATUS = 'CHECK_USER_STATUS';
|
|
15443
15426
|
var CONNECTION_EVENT_TYPES = {
|
|
15444
15427
|
TOKEN_WILL_EXPIRE: 'TOKEN_WILL_EXPIRE',
|
|
15445
15428
|
CONNECTION_STATUS_CHANGED: 'CONNECTION_STATUS_CHANGED',
|
|
@@ -15494,6 +15477,9 @@ var userSlice = createSlice({
|
|
|
15494
15477
|
updateUserMap: function updateUserMap(state, action) {
|
|
15495
15478
|
state.updatedUserMap = _extends({}, state.updatedUserMap, action.payload.usersMap);
|
|
15496
15479
|
},
|
|
15480
|
+
resetUpdatedUserMap: function resetUpdatedUserMap(state) {
|
|
15481
|
+
state.updatedUserMap = {};
|
|
15482
|
+
},
|
|
15497
15483
|
addUserInMapIfNotExists: function addUserInMapIfNotExists(state, action) {
|
|
15498
15484
|
var _state$updatedUserMap;
|
|
15499
15485
|
var user = action.payload.user;
|
|
@@ -15534,6 +15520,7 @@ var _userSlice$actions = userSlice.actions,
|
|
|
15534
15520
|
addUsers = _userSlice$actions.addUsers,
|
|
15535
15521
|
setUsersLoadingState = _userSlice$actions.setUsersLoadingState,
|
|
15536
15522
|
updateUserMap = _userSlice$actions.updateUserMap,
|
|
15523
|
+
resetUpdatedUserMap = _userSlice$actions.resetUpdatedUserMap,
|
|
15537
15524
|
addUserInMapIfNotExists = _userSlice$actions.addUserInMapIfNotExists,
|
|
15538
15525
|
setContacts = _userSlice$actions.setContacts,
|
|
15539
15526
|
updateUserProfile = _userSlice$actions.updateUserProfile,
|
|
@@ -16641,12 +16628,6 @@ var unblockUserAC = function unblockUserAC(userIds, callback) {
|
|
|
16641
16628
|
}
|
|
16642
16629
|
};
|
|
16643
16630
|
};
|
|
16644
|
-
var checkUserStatusAC = function checkUserStatusAC() {
|
|
16645
|
-
return {
|
|
16646
|
-
type: CHECK_USER_STATUS,
|
|
16647
|
-
payload: {}
|
|
16648
|
-
};
|
|
16649
|
-
};
|
|
16650
16631
|
var updateProfileAC = function updateProfileAC(user, firstName, lastName, avatarUrl, metadata, avatarFile, presence) {
|
|
16651
16632
|
return {
|
|
16652
16633
|
type: UPDATE_PROFILE,
|
|
@@ -16706,6 +16687,9 @@ var updateUserStatusOnMapAC = function updateUserStatusOnMapAC(usersMap) {
|
|
|
16706
16687
|
usersMap: usersMap
|
|
16707
16688
|
});
|
|
16708
16689
|
};
|
|
16690
|
+
var resetUpdatedUserMapAC = function resetUpdatedUserMapAC() {
|
|
16691
|
+
return resetUpdatedUserMap();
|
|
16692
|
+
};
|
|
16709
16693
|
var addUserInMapIfNotExistsAC = function addUserInMapIfNotExistsAC(user) {
|
|
16710
16694
|
return addUserInMapIfNotExists({
|
|
16711
16695
|
user: user
|
|
@@ -17058,9 +17042,6 @@ var usersLoadingStateSelector = function usersLoadingStateSelector(store) {
|
|
|
17058
17042
|
var browserTabIsActiveSelector = function browserTabIsActiveSelector(store) {
|
|
17059
17043
|
return store.UserReducer.browserTabIsActive;
|
|
17060
17044
|
};
|
|
17061
|
-
var usersMapSelector = function usersMapSelector(store) {
|
|
17062
|
-
return store.UserReducer.updatedUserMap;
|
|
17063
|
-
};
|
|
17064
17045
|
|
|
17065
17046
|
var jumpFn = null;
|
|
17066
17047
|
function registerMessageListNavigator(fn) {
|
|
@@ -27535,6 +27516,194 @@ function watchForEvents() {
|
|
|
27535
27516
|
}, _marked11$1);
|
|
27536
27517
|
}
|
|
27537
27518
|
|
|
27519
|
+
var APPLY_PRESENCE_USERS = 'APPLY_PRESENCE_USERS';
|
|
27520
|
+
var POLL_INTERVAL = 4000;
|
|
27521
|
+
var BATCH_DELAY = 150;
|
|
27522
|
+
var PresenceRegistry = /*#__PURE__*/function () {
|
|
27523
|
+
function PresenceRegistry() {
|
|
27524
|
+
_classCallCheck(this, PresenceRegistry);
|
|
27525
|
+
this.counts = new Map();
|
|
27526
|
+
this.pending = new Set();
|
|
27527
|
+
this.dispatch = null;
|
|
27528
|
+
this.client = null;
|
|
27529
|
+
this.connected = false;
|
|
27530
|
+
this.tabActive = true;
|
|
27531
|
+
this.session = 0;
|
|
27532
|
+
this.inFlight = false;
|
|
27533
|
+
this.fullRefreshPending = false;
|
|
27534
|
+
this.lastRequestAt = 0;
|
|
27535
|
+
this.pollTimer = null;
|
|
27536
|
+
this.batchTimer = null;
|
|
27537
|
+
}
|
|
27538
|
+
return _createClass(PresenceRegistry, [{
|
|
27539
|
+
key: "subscribe",
|
|
27540
|
+
value: function subscribe(ids) {
|
|
27541
|
+
var _this = this;
|
|
27542
|
+
var uniqueIds = Array.from(new Set(ids.filter(Boolean)));
|
|
27543
|
+
uniqueIds.forEach(function (id) {
|
|
27544
|
+
var count = _this.counts.get(id) || 0;
|
|
27545
|
+
_this.counts.set(id, count + 1);
|
|
27546
|
+
if (count === 0) _this.pending.add(id);
|
|
27547
|
+
});
|
|
27548
|
+
this.syncTimer();
|
|
27549
|
+
if (this.pending.size) this.scheduleBatch();
|
|
27550
|
+
var removed = false;
|
|
27551
|
+
return function () {
|
|
27552
|
+
if (removed) return;
|
|
27553
|
+
removed = true;
|
|
27554
|
+
uniqueIds.forEach(function (id) {
|
|
27555
|
+
var count = _this.counts.get(id) || 0;
|
|
27556
|
+
if (count <= 1) {
|
|
27557
|
+
_this.counts["delete"](id);
|
|
27558
|
+
_this.pending["delete"](id);
|
|
27559
|
+
} else {
|
|
27560
|
+
_this.counts.set(id, count - 1);
|
|
27561
|
+
}
|
|
27562
|
+
});
|
|
27563
|
+
_this.syncTimer();
|
|
27564
|
+
};
|
|
27565
|
+
}
|
|
27566
|
+
}, {
|
|
27567
|
+
key: "configure",
|
|
27568
|
+
value: function configure(dispatch, client) {
|
|
27569
|
+
this.dispatch = dispatch;
|
|
27570
|
+
this.connected = (client === null || client === void 0 ? void 0 : client.connectionState) === CONNECTION_STATUS.CONNECTED;
|
|
27571
|
+
this.resetSession(client);
|
|
27572
|
+
}
|
|
27573
|
+
}, {
|
|
27574
|
+
key: "resetSession",
|
|
27575
|
+
value: function resetSession(client) {
|
|
27576
|
+
this.session++;
|
|
27577
|
+
this.client = client;
|
|
27578
|
+
this.inFlight = false;
|
|
27579
|
+
this.lastRequestAt = 0;
|
|
27580
|
+
this.pending.clear();
|
|
27581
|
+
this.fullRefreshPending = false;
|
|
27582
|
+
this.clearBatch();
|
|
27583
|
+
this.syncTimer();
|
|
27584
|
+
if (this.canPoll()) this.requestRefresh();
|
|
27585
|
+
}
|
|
27586
|
+
}, {
|
|
27587
|
+
key: "setAvailability",
|
|
27588
|
+
value: function setAvailability(connected, tabActive) {
|
|
27589
|
+
var wasAvailable = this.canPoll();
|
|
27590
|
+
this.connected = connected;
|
|
27591
|
+
this.tabActive = tabActive;
|
|
27592
|
+
this.syncTimer();
|
|
27593
|
+
if (!wasAvailable && this.canPoll() && Date.now() - this.lastRequestAt >= POLL_INTERVAL) {
|
|
27594
|
+
this.requestRefresh();
|
|
27595
|
+
}
|
|
27596
|
+
}
|
|
27597
|
+
}, {
|
|
27598
|
+
key: "dispose",
|
|
27599
|
+
value: function dispose() {
|
|
27600
|
+
this.session++;
|
|
27601
|
+
this.client = null;
|
|
27602
|
+
this.dispatch = null;
|
|
27603
|
+
this.connected = false;
|
|
27604
|
+
this.counts.clear();
|
|
27605
|
+
this.pending.clear();
|
|
27606
|
+
this.fullRefreshPending = false;
|
|
27607
|
+
this.inFlight = false;
|
|
27608
|
+
this.clearBatch();
|
|
27609
|
+
this.syncTimer();
|
|
27610
|
+
}
|
|
27611
|
+
}, {
|
|
27612
|
+
key: "canPoll",
|
|
27613
|
+
value: function canPoll() {
|
|
27614
|
+
return !!this.client && !!this.dispatch && this.connected && this.tabActive && this.counts.size > 0;
|
|
27615
|
+
}
|
|
27616
|
+
}, {
|
|
27617
|
+
key: "clearBatch",
|
|
27618
|
+
value: function clearBatch() {
|
|
27619
|
+
if (this.batchTimer) clearTimeout(this.batchTimer);
|
|
27620
|
+
this.batchTimer = null;
|
|
27621
|
+
}
|
|
27622
|
+
}, {
|
|
27623
|
+
key: "syncTimer",
|
|
27624
|
+
value: function syncTimer() {
|
|
27625
|
+
var _this2 = this;
|
|
27626
|
+
if (this.canPoll()) {
|
|
27627
|
+
if (!this.pollTimer) this.pollTimer = setInterval(function () {
|
|
27628
|
+
return _this2.requestRefresh();
|
|
27629
|
+
}, POLL_INTERVAL);
|
|
27630
|
+
} else {
|
|
27631
|
+
if (this.pollTimer) clearInterval(this.pollTimer);
|
|
27632
|
+
this.pollTimer = null;
|
|
27633
|
+
this.clearBatch();
|
|
27634
|
+
if (!this.connected || !this.tabActive) {
|
|
27635
|
+
this.pending.clear();
|
|
27636
|
+
this.fullRefreshPending = false;
|
|
27637
|
+
}
|
|
27638
|
+
}
|
|
27639
|
+
}
|
|
27640
|
+
}, {
|
|
27641
|
+
key: "scheduleBatch",
|
|
27642
|
+
value: function scheduleBatch() {
|
|
27643
|
+
var _this3 = this;
|
|
27644
|
+
if (!this.canPoll() || this.batchTimer) return;
|
|
27645
|
+
this.batchTimer = setTimeout(function () {
|
|
27646
|
+
_this3.batchTimer = null;
|
|
27647
|
+
_this3.flush();
|
|
27648
|
+
}, BATCH_DELAY);
|
|
27649
|
+
}
|
|
27650
|
+
}, {
|
|
27651
|
+
key: "requestRefresh",
|
|
27652
|
+
value: function requestRefresh() {
|
|
27653
|
+
if (!this.canPoll()) return;
|
|
27654
|
+
this.fullRefreshPending = true;
|
|
27655
|
+
this.clearBatch();
|
|
27656
|
+
this.flush();
|
|
27657
|
+
}
|
|
27658
|
+
}, {
|
|
27659
|
+
key: "flush",
|
|
27660
|
+
value: function flush() {
|
|
27661
|
+
var _this4 = this;
|
|
27662
|
+
if (!this.canPoll() || this.inFlight) return;
|
|
27663
|
+
var ids = this.fullRefreshPending ? Array.from(this.counts.keys()) : Array.from(this.pending).filter(function (id) {
|
|
27664
|
+
return _this4.counts.has(id);
|
|
27665
|
+
});
|
|
27666
|
+
this.fullRefreshPending = false;
|
|
27667
|
+
ids.forEach(function (id) {
|
|
27668
|
+
return _this4.pending["delete"](id);
|
|
27669
|
+
});
|
|
27670
|
+
if (!ids.length) return;
|
|
27671
|
+
var session = this.session;
|
|
27672
|
+
var client = this.client;
|
|
27673
|
+
this.inFlight = true;
|
|
27674
|
+
this.lastRequestAt = Date.now();
|
|
27675
|
+
var failed = false;
|
|
27676
|
+
Promise.resolve().then(function () {
|
|
27677
|
+
return client.getUsers(ids);
|
|
27678
|
+
}).then(function (users) {
|
|
27679
|
+
var _this4$dispatch;
|
|
27680
|
+
if (session !== _this4.session || !_this4.canPoll()) return;
|
|
27681
|
+
var activeUsers = (users || []).filter(function (user) {
|
|
27682
|
+
return (user === null || user === void 0 ? void 0 : user.id) && _this4.counts.has(user.id);
|
|
27683
|
+
});
|
|
27684
|
+
if (activeUsers.length) (_this4$dispatch = _this4.dispatch) === null || _this4$dispatch === void 0 ? void 0 : _this4$dispatch.call(_this4, {
|
|
27685
|
+
type: APPLY_PRESENCE_USERS,
|
|
27686
|
+
payload: {
|
|
27687
|
+
users: activeUsers
|
|
27688
|
+
}
|
|
27689
|
+
});
|
|
27690
|
+
})["catch"](function () {
|
|
27691
|
+
failed = true;
|
|
27692
|
+
if (session === _this4.session) _this4.fullRefreshPending = false;
|
|
27693
|
+
})["finally"](function () {
|
|
27694
|
+
if (session !== _this4.session) return;
|
|
27695
|
+
_this4.inFlight = false;
|
|
27696
|
+
if (failed) {
|
|
27697
|
+
_this4.clearBatch();
|
|
27698
|
+
return;
|
|
27699
|
+
}
|
|
27700
|
+
if (_this4.fullRefreshPending) _this4.flush();else if (_this4.pending.size) _this4.scheduleBatch();
|
|
27701
|
+
});
|
|
27702
|
+
}
|
|
27703
|
+
}]);
|
|
27704
|
+
}();
|
|
27705
|
+
var presenceRegistry = new PresenceRegistry();
|
|
27706
|
+
|
|
27538
27707
|
var _marked$3 = /*#__PURE__*/_regenerator().m(applyChannelReadProgress),
|
|
27539
27708
|
_marked2$3 = /*#__PURE__*/_regenerator().m(confirmDisplayedRead),
|
|
27540
27709
|
_marked3$2 = /*#__PURE__*/_regenerator().m(createChannel),
|
|
@@ -27564,7 +27733,7 @@ var _marked$3 = /*#__PURE__*/_regenerator().m(applyChannelReadProgress),
|
|
|
27564
27733
|
_marked25$1 = /*#__PURE__*/_regenerator().m(deleteChannel),
|
|
27565
27734
|
_marked26$1 = /*#__PURE__*/_regenerator().m(blockChannel),
|
|
27566
27735
|
_marked27$1 = /*#__PURE__*/_regenerator().m(updateChannel),
|
|
27567
|
-
_marked28$1 = /*#__PURE__*/_regenerator().m(
|
|
27736
|
+
_marked28$1 = /*#__PURE__*/_regenerator().m(applyPresenceUsers),
|
|
27568
27737
|
_marked29$1 = /*#__PURE__*/_regenerator().m(sendTyping),
|
|
27569
27738
|
_marked30$1 = /*#__PURE__*/_regenerator().m(sendRecording),
|
|
27570
27739
|
_marked31$1 = /*#__PURE__*/_regenerator().m(clearHistory),
|
|
@@ -30018,52 +30187,54 @@ function updateChannel(action) {
|
|
|
30018
30187
|
}
|
|
30019
30188
|
}, _marked27$1, null, [[0, 9]]);
|
|
30020
30189
|
}
|
|
30021
|
-
function
|
|
30022
|
-
var
|
|
30190
|
+
function applyPresenceUsers(action) {
|
|
30191
|
+
var current, changed, lastActive, _t27;
|
|
30023
30192
|
return _regenerator().w(function (_context29) {
|
|
30024
30193
|
while (1) switch (_context29.p = _context29.n) {
|
|
30025
30194
|
case 0:
|
|
30026
30195
|
_context29.p = 0;
|
|
30027
|
-
_SceytChatClient7 = getClient();
|
|
30028
|
-
usersForUpdate = Object.keys(usersMap);
|
|
30029
30196
|
_context29.n = 1;
|
|
30030
|
-
return effects.
|
|
30197
|
+
return effects.select(function (state) {
|
|
30198
|
+
return state.UserReducer.updatedUserMap;
|
|
30199
|
+
});
|
|
30031
30200
|
case 1:
|
|
30032
|
-
|
|
30033
|
-
|
|
30034
|
-
|
|
30035
|
-
|
|
30036
|
-
|
|
30037
|
-
|
|
30038
|
-
|
|
30039
|
-
|
|
30040
|
-
|
|
30201
|
+
current = _context29.v;
|
|
30202
|
+
changed = {};
|
|
30203
|
+
lastActive = function lastActive(user) {
|
|
30204
|
+
var _user$presence;
|
|
30205
|
+
return new Date((user === null || user === void 0 ? void 0 : (_user$presence = user.presence) === null || _user$presence === void 0 ? void 0 : _user$presence.lastActiveAt) || 0).getTime();
|
|
30206
|
+
};
|
|
30207
|
+
action.payload.users.forEach(function (user) {
|
|
30208
|
+
var _user$presence2, _previous$presence, _user$presence3, _previous$presence2;
|
|
30209
|
+
var previous = current[user.id];
|
|
30210
|
+
if (!previous || ((_user$presence2 = user.presence) === null || _user$presence2 === void 0 ? void 0 : _user$presence2.state) !== ((_previous$presence = previous.presence) === null || _previous$presence === void 0 ? void 0 : _previous$presence.state) || ((_user$presence3 = user.presence) === null || _user$presence3 === void 0 ? void 0 : _user$presence3.status) !== ((_previous$presence2 = previous.presence) === null || _previous$presence2 === void 0 ? void 0 : _previous$presence2.status) || lastActive(user) !== lastActive(previous) || user.avatarUrl !== previous.avatarUrl || user.firstName !== previous.firstName || user.lastName !== previous.lastName || !!user.blocked !== !!previous.blocked) {
|
|
30211
|
+
changed[user.id] = _extends({}, user, {
|
|
30212
|
+
blocked: !!user.blocked
|
|
30041
30213
|
});
|
|
30042
|
-
update = true;
|
|
30043
30214
|
}
|
|
30044
30215
|
});
|
|
30045
|
-
if (
|
|
30046
|
-
_context29.n =
|
|
30216
|
+
if (Object.keys(changed).length) {
|
|
30217
|
+
_context29.n = 2;
|
|
30047
30218
|
break;
|
|
30048
30219
|
}
|
|
30049
|
-
|
|
30050
|
-
_context29.n = 2;
|
|
30051
|
-
return effects.put(updateMembersPresenceAC(updateData));
|
|
30220
|
+
return _context29.a(2);
|
|
30052
30221
|
case 2:
|
|
30053
30222
|
_context29.n = 3;
|
|
30054
|
-
return effects.put(updateUserStatusOnMapAC(
|
|
30223
|
+
return effects.put(updateUserStatusOnMapAC(changed));
|
|
30055
30224
|
case 3:
|
|
30056
30225
|
_context29.n = 4;
|
|
30057
|
-
return effects.put(
|
|
30226
|
+
return effects.put(updateMembersPresenceAC(changed));
|
|
30058
30227
|
case 4:
|
|
30059
|
-
|
|
30228
|
+
_context29.n = 5;
|
|
30229
|
+
return effects.put(updateUserStatusOnChannelAC(changed));
|
|
30060
30230
|
case 5:
|
|
30231
|
+
updateChannelMemberInAllChannels(Object.values(changed));
|
|
30061
30232
|
_context29.n = 7;
|
|
30062
30233
|
break;
|
|
30063
30234
|
case 6:
|
|
30064
30235
|
_context29.p = 6;
|
|
30065
30236
|
_t27 = _context29.v;
|
|
30066
|
-
log.error('ERROR in
|
|
30237
|
+
log.error('ERROR in apply presence users : ', _t27.message);
|
|
30067
30238
|
case 7:
|
|
30068
30239
|
return _context29.a(2);
|
|
30069
30240
|
}
|
|
@@ -30305,14 +30476,14 @@ function deleteAllMessages(action) {
|
|
|
30305
30476
|
}, _marked32$1, null, [[0, 11]]);
|
|
30306
30477
|
}
|
|
30307
30478
|
function joinChannel(action) {
|
|
30308
|
-
var payload, channelId,
|
|
30479
|
+
var payload, channelId, _SceytChatClient7, channel, joinedChannel, _t32;
|
|
30309
30480
|
return _regenerator().w(function (_context34) {
|
|
30310
30481
|
while (1) switch (_context34.p = _context34.n) {
|
|
30311
30482
|
case 0:
|
|
30312
30483
|
_context34.p = 0;
|
|
30313
30484
|
payload = action.payload;
|
|
30314
30485
|
channelId = payload.channelId;
|
|
30315
|
-
|
|
30486
|
+
_SceytChatClient7 = getClient();
|
|
30316
30487
|
_context34.n = 1;
|
|
30317
30488
|
return effects.call(getChannelFromMap, channelId);
|
|
30318
30489
|
case 1:
|
|
@@ -30325,7 +30496,7 @@ function joinChannel(action) {
|
|
|
30325
30496
|
break;
|
|
30326
30497
|
}
|
|
30327
30498
|
_context34.n = 2;
|
|
30328
|
-
return effects.call(
|
|
30499
|
+
return effects.call(_SceytChatClient7.getChannel, channelId);
|
|
30329
30500
|
case 2:
|
|
30330
30501
|
channel = _context34.v;
|
|
30331
30502
|
case 3:
|
|
@@ -30369,14 +30540,14 @@ function watchForChannelEvents() {
|
|
|
30369
30540
|
}, _marked34$1);
|
|
30370
30541
|
}
|
|
30371
30542
|
function createChannelInviteKey(action) {
|
|
30372
|
-
var payload, channelId,
|
|
30543
|
+
var payload, channelId, _SceytChatClient8, channel, inviteKey, _t33;
|
|
30373
30544
|
return _regenerator().w(function (_context36) {
|
|
30374
30545
|
while (1) switch (_context36.p = _context36.n) {
|
|
30375
30546
|
case 0:
|
|
30376
30547
|
_context36.p = 0;
|
|
30377
30548
|
payload = action.payload;
|
|
30378
30549
|
channelId = payload.channelId;
|
|
30379
|
-
|
|
30550
|
+
_SceytChatClient8 = getClient();
|
|
30380
30551
|
_context36.n = 1;
|
|
30381
30552
|
return effects.call(getChannelFromMap, channelId);
|
|
30382
30553
|
case 1:
|
|
@@ -30389,7 +30560,7 @@ function createChannelInviteKey(action) {
|
|
|
30389
30560
|
break;
|
|
30390
30561
|
}
|
|
30391
30562
|
_context36.n = 2;
|
|
30392
|
-
return effects.call(
|
|
30563
|
+
return effects.call(_SceytChatClient8.createInviteKey, {
|
|
30393
30564
|
maxUses: 0,
|
|
30394
30565
|
expiresAt: 0,
|
|
30395
30566
|
accessPriorHistory: true
|
|
@@ -30549,16 +30720,16 @@ function updateChannelInviteKey(action) {
|
|
|
30549
30720
|
}, _marked38$1, null, [[1, 5]]);
|
|
30550
30721
|
}
|
|
30551
30722
|
function getChannelByInviteKey(action) {
|
|
30552
|
-
var _channel$, _channel$2, payload, key,
|
|
30723
|
+
var _channel$, _channel$2, payload, key, _SceytChatClient9, channel, _t37;
|
|
30553
30724
|
return _regenerator().w(function (_context40) {
|
|
30554
30725
|
while (1) switch (_context40.p = _context40.n) {
|
|
30555
30726
|
case 0:
|
|
30556
30727
|
_context40.p = 0;
|
|
30557
30728
|
payload = action.payload;
|
|
30558
30729
|
key = payload.key;
|
|
30559
|
-
|
|
30730
|
+
_SceytChatClient9 = getClient();
|
|
30560
30731
|
_context40.n = 1;
|
|
30561
|
-
return effects.call(
|
|
30732
|
+
return effects.call(_SceytChatClient9.Channel.getChannelByInviteKey, key);
|
|
30562
30733
|
case 1:
|
|
30563
30734
|
channel = _context40.v;
|
|
30564
30735
|
if (!(channel && channel.length > 0 && !((_channel$ = channel[0]) !== null && _channel$ !== void 0 && _channel$.role))) {
|
|
@@ -30600,17 +30771,17 @@ function getChannelByInviteKey(action) {
|
|
|
30600
30771
|
}, _marked39$1, null, [[0, 6]]);
|
|
30601
30772
|
}
|
|
30602
30773
|
function joinChannelWithInviteKey(action) {
|
|
30603
|
-
var payload, key,
|
|
30774
|
+
var payload, key, _SceytChatClient0, user, channel, messageToSend, _t38;
|
|
30604
30775
|
return _regenerator().w(function (_context41) {
|
|
30605
30776
|
while (1) switch (_context41.p = _context41.n) {
|
|
30606
30777
|
case 0:
|
|
30607
30778
|
_context41.p = 0;
|
|
30608
30779
|
payload = action.payload;
|
|
30609
30780
|
key = payload.key;
|
|
30610
|
-
|
|
30611
|
-
user =
|
|
30781
|
+
_SceytChatClient0 = getClient();
|
|
30782
|
+
user = _SceytChatClient0.user;
|
|
30612
30783
|
_context41.n = 1;
|
|
30613
|
-
return effects.call(
|
|
30784
|
+
return effects.call(_SceytChatClient0.Channel.joinChannelByInviteKey, key);
|
|
30614
30785
|
case 1:
|
|
30615
30786
|
channel = _context41.v;
|
|
30616
30787
|
_context41.n = 2;
|
|
@@ -30697,7 +30868,7 @@ function setMessageRetentionPeriod(action) {
|
|
|
30697
30868
|
}, _marked41$1, null, [[0, 5]]);
|
|
30698
30869
|
}
|
|
30699
30870
|
function getChannelsWithUser(action) {
|
|
30700
|
-
var payload, userId,
|
|
30871
|
+
var payload, userId, _SceytChatClient1, channelsQueryBuilder, channelsQuery, channelsData, channels, _t40;
|
|
30701
30872
|
return _regenerator().w(function (_context43) {
|
|
30702
30873
|
while (1) switch (_context43.p = _context43.n) {
|
|
30703
30874
|
case 0:
|
|
@@ -30710,8 +30881,8 @@ function getChannelsWithUser(action) {
|
|
|
30710
30881
|
_context43.p = 2;
|
|
30711
30882
|
payload = action.payload;
|
|
30712
30883
|
userId = payload.userId;
|
|
30713
|
-
|
|
30714
|
-
channelsQueryBuilder = new
|
|
30884
|
+
_SceytChatClient1 = getClient();
|
|
30885
|
+
channelsQueryBuilder = new _SceytChatClient1.ChannelListQueryBuilder();
|
|
30715
30886
|
channelsQueryBuilder.memberCount(0);
|
|
30716
30887
|
channelsQueryBuilder.setMutualWithUserId(userId);
|
|
30717
30888
|
channelsQueryBuilder.types([DEFAULT_CHANNEL_TYPE.PRIVATE]);
|
|
@@ -30897,7 +31068,7 @@ function ChannelsSaga() {
|
|
|
30897
31068
|
return effects.takeLatest(MARK_CHANNEL_AS_UNREAD, markChannelAsUnRead);
|
|
30898
31069
|
case 25:
|
|
30899
31070
|
_context45.n = 26;
|
|
30900
|
-
return effects.
|
|
31071
|
+
return effects.takeEvery(APPLY_PRESENCE_USERS, applyPresenceUsers);
|
|
30901
31072
|
case 26:
|
|
30902
31073
|
_context45.n = 27;
|
|
30903
31074
|
return effects.takeLatest(SEND_TYPING, sendTyping);
|
|
@@ -31558,9 +31729,6 @@ function blockUser(action) {
|
|
|
31558
31729
|
break;
|
|
31559
31730
|
}
|
|
31560
31731
|
user = _step.value;
|
|
31561
|
-
updateUserOnMap(_extends({}, user, {
|
|
31562
|
-
blocked: true
|
|
31563
|
-
}));
|
|
31564
31732
|
_context.n = 7;
|
|
31565
31733
|
return effects.put(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = _extends({}, user, {
|
|
31566
31734
|
blocked: true
|
|
@@ -31665,9 +31833,6 @@ function unblockUser(action) {
|
|
|
31665
31833
|
}
|
|
31666
31834
|
user = _step2.value;
|
|
31667
31835
|
updateData = JSON.parse(JSON.stringify(user));
|
|
31668
|
-
updateUserOnMap(_extends({}, updateData, {
|
|
31669
|
-
blocked: false
|
|
31670
|
-
}));
|
|
31671
31836
|
_context2.n = 7;
|
|
31672
31837
|
return effects.put(updateUserStatusOnMapAC((_updateUserStatusOnMa2 = {}, _updateUserStatusOnMa2[user.id] = _extends({}, updateData, {
|
|
31673
31838
|
blocked: false
|
|
@@ -32967,22 +33132,12 @@ var useColors = function useColors() {
|
|
|
32967
33132
|
};
|
|
32968
33133
|
|
|
32969
33134
|
function useUpdatedUser(user) {
|
|
32970
|
-
var
|
|
32971
|
-
|
|
32972
|
-
|
|
32973
|
-
if (user !== null && user !== void 0 && user.id && !usersMap[user.id]) {
|
|
32974
|
-
var _updateUserStatusOnMa;
|
|
32975
|
-
setUserToMap(user);
|
|
32976
|
-
dispatch(updateUserStatusOnMapAC((_updateUserStatusOnMa = {}, _updateUserStatusOnMa[user.id] = user, _updateUserStatusOnMa)));
|
|
32977
|
-
updateChannelMemberInAllChannels([user]);
|
|
32978
|
-
}
|
|
32979
|
-
}, [user === null || user === void 0 ? void 0 : user.id]);
|
|
33135
|
+
var latest = useSelector(function (state) {
|
|
33136
|
+
return user !== null && user !== void 0 && user.id ? state.UserReducer.updatedUserMap[user.id] : undefined;
|
|
33137
|
+
});
|
|
32980
33138
|
return React.useMemo(function () {
|
|
32981
|
-
|
|
32982
|
-
|
|
32983
|
-
}
|
|
32984
|
-
return usersMap[user.id] || user;
|
|
32985
|
-
}, [user, usersMap]);
|
|
33139
|
+
return latest ? _extends({}, user, latest) : user;
|
|
33140
|
+
}, [user, latest]);
|
|
32986
33141
|
}
|
|
32987
33142
|
|
|
32988
33143
|
function setThemeAC(theme) {
|
|
@@ -33691,6 +33846,12 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33691
33846
|
hidden = 'webkitHidden';
|
|
33692
33847
|
visibilityChange = 'webkitvisibilitychange';
|
|
33693
33848
|
}
|
|
33849
|
+
var isDocumentVisible = function isDocumentVisible() {
|
|
33850
|
+
return hidden ? !document[hidden] : document.visibilityState !== 'hidden';
|
|
33851
|
+
};
|
|
33852
|
+
var _useState2 = React.useState(isDocumentVisible),
|
|
33853
|
+
documentVisible = _useState2[0],
|
|
33854
|
+
setDocumentVisible = _useState2[1];
|
|
33694
33855
|
var handleDropFile = function handleDropFile(e) {
|
|
33695
33856
|
e.preventDefault();
|
|
33696
33857
|
e.stopPropagation();
|
|
@@ -33712,12 +33873,15 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33712
33873
|
requestPermissionOnUserInteraction();
|
|
33713
33874
|
};
|
|
33714
33875
|
var syncBrowserTabIsActive = function syncBrowserTabIsActive() {
|
|
33715
|
-
var isVisible =
|
|
33876
|
+
var isVisible = isDocumentVisible();
|
|
33716
33877
|
var isFocused = typeof document.hasFocus === 'function' ? document.hasFocus() : true;
|
|
33878
|
+
setDocumentVisible(isVisible);
|
|
33717
33879
|
dispatch(browserTabIsActiveAC(isVisible && isFocused));
|
|
33718
33880
|
};
|
|
33719
33881
|
React.useEffect(function () {
|
|
33720
33882
|
log.info('client is changed.... ', client);
|
|
33883
|
+
dispatch(resetUpdatedUserMapAC());
|
|
33884
|
+
presenceRegistry.configure(dispatch, client || null);
|
|
33721
33885
|
if (client) {
|
|
33722
33886
|
cleanupOldAttachmentCache();
|
|
33723
33887
|
if (client.user && client.user.id) {
|
|
@@ -33733,7 +33897,6 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33733
33897
|
clearMessagesMap();
|
|
33734
33898
|
setActiveChannelId('');
|
|
33735
33899
|
destroyChannelsMap();
|
|
33736
|
-
clearUsersMap();
|
|
33737
33900
|
clearDraftMessagesMap();
|
|
33738
33901
|
clearPersistedDrafts();
|
|
33739
33902
|
releaseAllBlobUrls();
|
|
@@ -33741,8 +33904,11 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33741
33904
|
}
|
|
33742
33905
|
}, [client]);
|
|
33743
33906
|
React.useEffect(function () {
|
|
33744
|
-
dispatch(setConnectionStatusAC(client.connectionState));
|
|
33907
|
+
dispatch(setConnectionStatusAC((client === null || client === void 0 ? void 0 : client.connectionState) || ''));
|
|
33745
33908
|
}, [client === null || client === void 0 ? void 0 : client.connectionState]);
|
|
33909
|
+
React.useEffect(function () {
|
|
33910
|
+
presenceRegistry.setAvailability(connectionStatus === CONNECTION_STATUS.CONNECTED, documentVisible);
|
|
33911
|
+
}, [connectionStatus, documentVisible]);
|
|
33746
33912
|
React.useEffect(function () {
|
|
33747
33913
|
if (connectionStatus === CONNECTION_STATUS.CONNECTED) {
|
|
33748
33914
|
dispatch(getRolesAC());
|
|
@@ -33817,7 +33983,7 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33817
33983
|
clearMessagesMap();
|
|
33818
33984
|
setActiveChannelId('');
|
|
33819
33985
|
destroyChannelsMap();
|
|
33820
|
-
|
|
33986
|
+
presenceRegistry.dispose();
|
|
33821
33987
|
releaseAllBlobUrls();
|
|
33822
33988
|
setBlobUrlEvictListener(null);
|
|
33823
33989
|
dispatch(destroySession());
|
|
@@ -33869,7 +34035,6 @@ var SceytChat = function SceytChat(_ref) {
|
|
|
33869
34035
|
var user = _extends({}, contact === null || contact === void 0 ? void 0 : contact.user);
|
|
33870
34036
|
dispatch(addUserInMapIfNotExistsAC(user));
|
|
33871
34037
|
}
|
|
33872
|
-
dispatch(checkUserStatusAC());
|
|
33873
34038
|
}
|
|
33874
34039
|
}, [contactsMap]);
|
|
33875
34040
|
React.useEffect(function () {
|
|
@@ -34054,68 +34219,124 @@ var SceytChatContainer = function SceytChatContainer(_ref) {
|
|
|
34054
34219
|
}));
|
|
34055
34220
|
};
|
|
34056
34221
|
|
|
34057
|
-
var
|
|
34058
|
-
var
|
|
34059
|
-
var
|
|
34060
|
-
|
|
34061
|
-
|
|
34062
|
-
|
|
34222
|
+
var PRESENCE_ENTER_DELAY = 300;
|
|
34223
|
+
var PRESENCE_LEAVE_GRACE = 2000;
|
|
34224
|
+
var callbacks = new Map();
|
|
34225
|
+
var observer = null;
|
|
34226
|
+
var getObserver = function getObserver() {
|
|
34227
|
+
if (typeof IntersectionObserver === 'undefined') return null;
|
|
34228
|
+
if (!observer) {
|
|
34229
|
+
observer = new IntersectionObserver(function (entries) {
|
|
34230
|
+
entries.forEach(function (entry) {
|
|
34231
|
+
var _callbacks$get;
|
|
34232
|
+
(_callbacks$get = callbacks.get(entry.target)) === null || _callbacks$get === void 0 ? void 0 : _callbacks$get.forEach(function (callback) {
|
|
34233
|
+
return callback(entry.isIntersecting);
|
|
34234
|
+
});
|
|
34235
|
+
});
|
|
34236
|
+
});
|
|
34063
34237
|
}
|
|
34238
|
+
return observer;
|
|
34064
34239
|
};
|
|
34065
|
-
var
|
|
34066
|
-
var
|
|
34067
|
-
if (
|
|
34068
|
-
|
|
34069
|
-
|
|
34070
|
-
|
|
34071
|
-
|
|
34072
|
-
stopPresenceInterval();
|
|
34240
|
+
var observePresenceRow = function observePresenceRow(element, callback) {
|
|
34241
|
+
var sharedObserver = getObserver();
|
|
34242
|
+
if (!sharedObserver) {
|
|
34243
|
+
callback(true);
|
|
34244
|
+
return function () {
|
|
34245
|
+
return undefined;
|
|
34246
|
+
};
|
|
34073
34247
|
}
|
|
34248
|
+
var listeners = callbacks.get(element);
|
|
34249
|
+
if (!listeners) {
|
|
34250
|
+
listeners = new Set();
|
|
34251
|
+
callbacks.set(element, listeners);
|
|
34252
|
+
sharedObserver.observe(element);
|
|
34253
|
+
}
|
|
34254
|
+
listeners.add(callback);
|
|
34255
|
+
return function () {
|
|
34256
|
+
var _listeners, _listeners2;
|
|
34257
|
+
(_listeners = listeners) === null || _listeners === void 0 ? void 0 : _listeners["delete"](callback);
|
|
34258
|
+
if (!((_listeners2 = listeners) !== null && _listeners2 !== void 0 && _listeners2.size)) {
|
|
34259
|
+
callbacks["delete"](element);
|
|
34260
|
+
sharedObserver.unobserve(element);
|
|
34261
|
+
if (!callbacks.size) {
|
|
34262
|
+
sharedObserver.disconnect();
|
|
34263
|
+
observer = null;
|
|
34264
|
+
}
|
|
34265
|
+
}
|
|
34266
|
+
};
|
|
34074
34267
|
};
|
|
34075
|
-
function
|
|
34076
|
-
|
|
34077
|
-
|
|
34078
|
-
var ChatClient = getClient();
|
|
34079
|
-
var user = ChatClient.user;
|
|
34080
|
-
var isDirectChannel = channel.type === DEFAULT_CHANNEL_TYPE.DIRECT;
|
|
34081
|
-
var directChannelUser = isDirectChannel && channel.members.find(function (member) {
|
|
34082
|
-
return member.id !== user.id;
|
|
34083
|
-
});
|
|
34084
|
-
var userId = directChannelUser && directChannelUser.id;
|
|
34085
|
-
if (userId && usersMap[userId] && !isVisible) {
|
|
34086
|
-
deleteUserFromMap(userId);
|
|
34268
|
+
function useIsOnScreen(ref, enabled) {
|
|
34269
|
+
if (enabled === void 0) {
|
|
34270
|
+
enabled = true;
|
|
34087
34271
|
}
|
|
34272
|
+
var _useState = React.useState(false),
|
|
34273
|
+
visible = _useState[0],
|
|
34274
|
+
setVisible = _useState[1];
|
|
34088
34275
|
React.useEffect(function () {
|
|
34089
|
-
|
|
34090
|
-
|
|
34091
|
-
|
|
34092
|
-
|
|
34093
|
-
|
|
34276
|
+
if (!enabled || !ref.current) {
|
|
34277
|
+
setVisible(false);
|
|
34278
|
+
return;
|
|
34279
|
+
}
|
|
34280
|
+
var enterTimer = null;
|
|
34281
|
+
var leaveTimer = null;
|
|
34282
|
+
var shown = false;
|
|
34283
|
+
var unobserve = observePresenceRow(ref.current, function (onScreen) {
|
|
34284
|
+
if (onScreen) {
|
|
34285
|
+
if (leaveTimer) clearTimeout(leaveTimer);
|
|
34286
|
+
leaveTimer = null;
|
|
34287
|
+
if (shown || enterTimer) return;
|
|
34288
|
+
enterTimer = setTimeout(function () {
|
|
34289
|
+
enterTimer = null;
|
|
34290
|
+
shown = true;
|
|
34291
|
+
setVisible(true);
|
|
34292
|
+
}, PRESENCE_ENTER_DELAY);
|
|
34293
|
+
} else {
|
|
34294
|
+
if (enterTimer) clearTimeout(enterTimer);
|
|
34295
|
+
enterTimer = null;
|
|
34296
|
+
if (!shown || leaveTimer) return;
|
|
34297
|
+
leaveTimer = setTimeout(function () {
|
|
34298
|
+
leaveTimer = null;
|
|
34299
|
+
shown = false;
|
|
34300
|
+
setVisible(false);
|
|
34301
|
+
}, PRESENCE_LEAVE_GRACE);
|
|
34094
34302
|
}
|
|
34303
|
+
});
|
|
34304
|
+
return function () {
|
|
34305
|
+
if (enterTimer) clearTimeout(enterTimer);
|
|
34306
|
+
if (leaveTimer) clearTimeout(leaveTimer);
|
|
34307
|
+
unobserve();
|
|
34095
34308
|
};
|
|
34096
|
-
}, []);
|
|
34309
|
+
}, [ref, enabled]);
|
|
34310
|
+
return enabled && visible;
|
|
34311
|
+
}
|
|
34312
|
+
|
|
34313
|
+
function usePresenceSubscription(ids, _temp) {
|
|
34314
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
34315
|
+
_ref$enabled = _ref.enabled,
|
|
34316
|
+
enabled = _ref$enabled === void 0 ? true : _ref$enabled;
|
|
34317
|
+
var subscriptions = React.useRef(new Map());
|
|
34318
|
+
var idsKey = Array.from(new Set(ids.filter(Boolean))).sort().join("\0");
|
|
34097
34319
|
React.useEffect(function () {
|
|
34098
|
-
|
|
34099
|
-
|
|
34100
|
-
if (!
|
|
34101
|
-
|
|
34102
|
-
|
|
34103
|
-
var _updateUserStatusOnCh;
|
|
34104
|
-
updateUserOnMap(directChannelUser);
|
|
34105
|
-
dispatch(updateUserStatusOnChannelAC((_updateUserStatusOnCh = {}, _updateUserStatusOnCh[directChannelUser.id] = directChannelUser, _updateUserStatusOnCh)));
|
|
34320
|
+
var desired = new Set(enabled ? idsKey.split("\0").filter(Boolean) : []);
|
|
34321
|
+
subscriptions.current.forEach(function (unsubscribe, id) {
|
|
34322
|
+
if (!desired.has(id)) {
|
|
34323
|
+
unsubscribe();
|
|
34324
|
+
subscriptions.current["delete"](id);
|
|
34106
34325
|
}
|
|
34107
|
-
}
|
|
34108
|
-
|
|
34109
|
-
|
|
34110
|
-
|
|
34111
|
-
|
|
34326
|
+
});
|
|
34327
|
+
desired.forEach(function (id) {
|
|
34328
|
+
if (!subscriptions.current.has(id)) {
|
|
34329
|
+
subscriptions.current.set(id, presenceRegistry.subscribe([id]));
|
|
34330
|
+
}
|
|
34331
|
+
});
|
|
34332
|
+
}, [idsKey, enabled]);
|
|
34112
34333
|
React.useEffect(function () {
|
|
34113
|
-
|
|
34114
|
-
|
|
34115
|
-
|
|
34116
|
-
|
|
34117
|
-
|
|
34118
|
-
}
|
|
34334
|
+
return function () {
|
|
34335
|
+
subscriptions.current.forEach(function (unsubscribe) {
|
|
34336
|
+
return unsubscribe();
|
|
34337
|
+
});
|
|
34338
|
+
subscriptions.current.clear();
|
|
34339
|
+
};
|
|
34119
34340
|
}, []);
|
|
34120
34341
|
}
|
|
34121
34342
|
|
|
@@ -34508,6 +34729,7 @@ var Channel = function Channel(_ref3) {
|
|
|
34508
34729
|
var directChannelUser = isDirectChannel && channel.members.find(function (member) {
|
|
34509
34730
|
return member.id !== user.id;
|
|
34510
34731
|
});
|
|
34732
|
+
var currentDirectUser = useUpdatedUser(directChannelUser || null);
|
|
34511
34733
|
var typingOrRecordingIndicator = useSelector(typingOrRecordingIndicatorArraySelector(channel.id));
|
|
34512
34734
|
var _useState = React.useState(),
|
|
34513
34735
|
draftMessageText = _useState[0],
|
|
@@ -34535,7 +34757,11 @@ var Channel = function Channel(_ref3) {
|
|
|
34535
34757
|
var avatarName = channel.subject || (isDirectChannel && directChannelUser ? directChannelUser.firstName || directChannelUser.id : isSelfChannel ? showPhoneNumber ? "+" + user.id + " (You)" : 'Me' : '');
|
|
34536
34758
|
var messageAuthorRef = React.useRef(null);
|
|
34537
34759
|
var messageTimeAndStatusRef = React.useRef(null);
|
|
34538
|
-
|
|
34760
|
+
var presenceRowRef = React.useRef(null);
|
|
34761
|
+
var rowIsOnScreen = useIsOnScreen(presenceRowRef, !!directChannelUser);
|
|
34762
|
+
usePresenceSubscription(directChannelUser ? [directChannelUser.id] : [], {
|
|
34763
|
+
enabled: rowIsOnScreen
|
|
34764
|
+
});
|
|
34539
34765
|
React.useEffect(function () {
|
|
34540
34766
|
if (messageTimeAndStatusRef.current) {
|
|
34541
34767
|
setStatusWidth(messageTimeAndStatusRef.current.offsetWidth);
|
|
@@ -34688,6 +34914,7 @@ var Channel = function Channel(_ref3) {
|
|
|
34688
34914
|
}
|
|
34689
34915
|
}, [channel, activeChannel.id, setSelectedChannel]);
|
|
34690
34916
|
return /*#__PURE__*/React__default.createElement(Container$3, {
|
|
34917
|
+
ref: presenceRowRef,
|
|
34691
34918
|
backgroundColor: background,
|
|
34692
34919
|
selectedChannel: channel.id === activeChannel.id,
|
|
34693
34920
|
selectedChannelLeftBorder: selectedChannelLeftBorder,
|
|
@@ -34711,7 +34938,7 @@ var Channel = function Channel(_ref3) {
|
|
|
34711
34938
|
}), !!(channel !== null && channel !== void 0 && channel.messageRetentionPeriod) && (/*#__PURE__*/React__default.createElement(DisappearingMessagesBadge, {
|
|
34712
34939
|
color: accentColor,
|
|
34713
34940
|
className: 'disappearing-messages-badge'
|
|
34714
|
-
})), isDirectChannel && directChannelUser && hideUserPresence && (hideUserPresence(directChannelUser) ? '' :
|
|
34941
|
+
})), isDirectChannel && directChannelUser && hideUserPresence && (hideUserPresence(directChannelUser) ? '' : (currentDirectUser === null || currentDirectUser === void 0 ? void 0 : currentDirectUser.presence) && currentDirectUser.presence.state === USER_PRESENCE_STATUS.ONLINE) && (/*#__PURE__*/React__default.createElement(UserStatus, {
|
|
34715
34942
|
backgroundColor: onlineStatus,
|
|
34716
34943
|
borderColor: background
|
|
34717
34944
|
})))), getCustomIconOnAvatar ? getCustomIconOnAvatar({
|
|
@@ -35045,8 +35272,15 @@ var ContactItem = function ContactItem(_ref) {
|
|
|
35045
35272
|
backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED],
|
|
35046
35273
|
background = _useColor[THEME_COLORS.BACKGROUND];
|
|
35047
35274
|
var getFromContacts = getShowOnlyContactUsers();
|
|
35275
|
+
var presenceRowRef = React.useRef(null);
|
|
35276
|
+
var rowIsOnScreen = useIsOnScreen(presenceRowRef);
|
|
35277
|
+
usePresenceSubscription([contact.user.id], {
|
|
35278
|
+
enabled: rowIsOnScreen
|
|
35279
|
+
});
|
|
35280
|
+
var currentUser = useUpdatedUser(contact.user);
|
|
35048
35281
|
var contactUserName = makeUsername(contact, undefined, getFromContacts);
|
|
35049
35282
|
return /*#__PURE__*/React__default.createElement(Container$4, {
|
|
35283
|
+
ref: presenceRowRef,
|
|
35050
35284
|
channelsPaddings: channelsPaddings,
|
|
35051
35285
|
channelsMargin: channelsMargin,
|
|
35052
35286
|
onClick: function onClick() {
|
|
@@ -35056,11 +35290,11 @@ var ContactItem = function ContactItem(_ref) {
|
|
|
35056
35290
|
}, showAvatar && (/*#__PURE__*/React__default.createElement(AvatarWrapper$1, null, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
35057
35291
|
name: contactUserName,
|
|
35058
35292
|
borderRadius: avatarBorderRadius,
|
|
35059
|
-
image:
|
|
35293
|
+
image: currentUser.avatarUrl,
|
|
35060
35294
|
size: channelAvatarSize || 50,
|
|
35061
35295
|
textSize: channelAvatarTextSize || 16,
|
|
35062
35296
|
setDefaultAvatar: true
|
|
35063
|
-
}), hideUserPresence && (hideUserPresence(
|
|
35297
|
+
}), hideUserPresence && (hideUserPresence(currentUser) ? '' : currentUser.presence && currentUser.presence.state === USER_PRESENCE_STATUS.ONLINE) && (/*#__PURE__*/React__default.createElement(UserStatus$1, {
|
|
35064
35298
|
backgroundColor: online,
|
|
35065
35299
|
borderColor: background
|
|
35066
35300
|
})))), channelListWidth === undefined || channelListWidth >= 280 ? (/*#__PURE__*/React__default.createElement(ChannelInfo$1, {
|
|
@@ -35305,6 +35539,109 @@ var CustomLabel = styled__default.label(_templateObject$9 || (_templateObject$9
|
|
|
35305
35539
|
});
|
|
35306
35540
|
var Checkbox = styled__default.input(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteralLoose(["\n display: none;\n"])));
|
|
35307
35541
|
|
|
35542
|
+
function useOnScreenUserIds(ref, rowIds, enabled) {
|
|
35543
|
+
if (enabled === void 0) {
|
|
35544
|
+
enabled = true;
|
|
35545
|
+
}
|
|
35546
|
+
var _useState = React.useState([]),
|
|
35547
|
+
visibleIds = _useState[0],
|
|
35548
|
+
setVisibleIds = _useState[1];
|
|
35549
|
+
var activeIds = React.useRef(new Set());
|
|
35550
|
+
var observed = React.useRef(new Map());
|
|
35551
|
+
var visibleCounts = React.useRef(new Map());
|
|
35552
|
+
var removeTimers = React.useRef(new Map());
|
|
35553
|
+
var idsKey = Array.from(new Set(rowIds.filter(Boolean))).join("\0");
|
|
35554
|
+
usePresenceSubscription(visibleIds, {
|
|
35555
|
+
enabled: enabled
|
|
35556
|
+
});
|
|
35557
|
+
var publish = function publish() {
|
|
35558
|
+
return setVisibleIds(Array.from(activeIds.current));
|
|
35559
|
+
};
|
|
35560
|
+
var showRow = function showRow(id) {
|
|
35561
|
+
visibleCounts.current.set(id, (visibleCounts.current.get(id) || 0) + 1);
|
|
35562
|
+
var timer = removeTimers.current.get(id);
|
|
35563
|
+
if (timer) clearTimeout(timer);
|
|
35564
|
+
removeTimers.current["delete"](id);
|
|
35565
|
+
if (!activeIds.current.has(id)) {
|
|
35566
|
+
activeIds.current.add(id);
|
|
35567
|
+
publish();
|
|
35568
|
+
}
|
|
35569
|
+
};
|
|
35570
|
+
var hideRow = function hideRow(id) {
|
|
35571
|
+
var count = (visibleCounts.current.get(id) || 0) - 1;
|
|
35572
|
+
if (count > 0) {
|
|
35573
|
+
visibleCounts.current.set(id, count);
|
|
35574
|
+
return;
|
|
35575
|
+
}
|
|
35576
|
+
visibleCounts.current["delete"](id);
|
|
35577
|
+
if (removeTimers.current.has(id)) return;
|
|
35578
|
+
removeTimers.current.set(id, setTimeout(function () {
|
|
35579
|
+
removeTimers.current["delete"](id);
|
|
35580
|
+
if (!visibleCounts.current.get(id) && activeIds.current["delete"](id)) publish();
|
|
35581
|
+
}, PRESENCE_LEAVE_GRACE));
|
|
35582
|
+
};
|
|
35583
|
+
var releaseRow = function releaseRow(row) {
|
|
35584
|
+
if (row.enterTimer) clearTimeout(row.enterTimer);
|
|
35585
|
+
row.enterTimer = null;
|
|
35586
|
+
if (row.visible) {
|
|
35587
|
+
row.visible = false;
|
|
35588
|
+
hideRow(row.id);
|
|
35589
|
+
}
|
|
35590
|
+
};
|
|
35591
|
+
React.useEffect(function () {
|
|
35592
|
+
var elements = enabled && ref.current ? Array.from(ref.current.querySelectorAll('[data-presence-user-id]')) : [];
|
|
35593
|
+
var currentElements = new Set(elements);
|
|
35594
|
+
observed.current.forEach(function (row, element) {
|
|
35595
|
+
if (!currentElements.has(element)) {
|
|
35596
|
+
row.stop();
|
|
35597
|
+
observed.current["delete"](element);
|
|
35598
|
+
releaseRow(row);
|
|
35599
|
+
}
|
|
35600
|
+
});
|
|
35601
|
+
elements.forEach(function (element) {
|
|
35602
|
+
if (observed.current.has(element)) return;
|
|
35603
|
+
var id = element.dataset.presenceUserId;
|
|
35604
|
+
if (!id) return;
|
|
35605
|
+
var row = {
|
|
35606
|
+
id: id,
|
|
35607
|
+
stop: function stop() {
|
|
35608
|
+
return undefined;
|
|
35609
|
+
},
|
|
35610
|
+
enterTimer: null,
|
|
35611
|
+
visible: false
|
|
35612
|
+
};
|
|
35613
|
+
observed.current.set(element, row);
|
|
35614
|
+
row.stop = observePresenceRow(element, function (onScreen) {
|
|
35615
|
+
if (!onScreen) {
|
|
35616
|
+
releaseRow(row);
|
|
35617
|
+
return;
|
|
35618
|
+
}
|
|
35619
|
+
if (row.visible || row.enterTimer) return;
|
|
35620
|
+
row.enterTimer = setTimeout(function () {
|
|
35621
|
+
row.enterTimer = null;
|
|
35622
|
+
row.visible = true;
|
|
35623
|
+
showRow(id);
|
|
35624
|
+
}, PRESENCE_ENTER_DELAY);
|
|
35625
|
+
});
|
|
35626
|
+
});
|
|
35627
|
+
}, [ref, idsKey, enabled]);
|
|
35628
|
+
React.useEffect(function () {
|
|
35629
|
+
return function () {
|
|
35630
|
+
observed.current.forEach(function (row) {
|
|
35631
|
+
row.stop();
|
|
35632
|
+
if (row.enterTimer) clearTimeout(row.enterTimer);
|
|
35633
|
+
});
|
|
35634
|
+
observed.current.clear();
|
|
35635
|
+
removeTimers.current.forEach(function (timer) {
|
|
35636
|
+
return clearTimeout(timer);
|
|
35637
|
+
});
|
|
35638
|
+
removeTimers.current.clear();
|
|
35639
|
+
visibleCounts.current.clear();
|
|
35640
|
+
activeIds.current.clear();
|
|
35641
|
+
};
|
|
35642
|
+
}, []);
|
|
35643
|
+
}
|
|
35644
|
+
|
|
35308
35645
|
var _path$o;
|
|
35309
35646
|
function _extends$p() {
|
|
35310
35647
|
return _extends$p = Object.assign ? Object.assign.bind() : function (n) {
|
|
@@ -35504,6 +35841,12 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35504
35841
|
var _useState4 = React.useState([]),
|
|
35505
35842
|
filteredUsers = _useState4[0],
|
|
35506
35843
|
setFilteredUsers = _useState4[1];
|
|
35844
|
+
var usersListRef = React.useRef(null);
|
|
35845
|
+
useOnScreenUserIds(usersListRef, filteredUsers.filter(function (user) {
|
|
35846
|
+
return !(actionType === 'addMembers' && memberIds !== null && memberIds !== void 0 && memberIds.includes(user.id));
|
|
35847
|
+
}).map(function (user) {
|
|
35848
|
+
return user.id;
|
|
35849
|
+
}));
|
|
35507
35850
|
var memberDisplayText = getChannelTypesMemberDisplayTextMap();
|
|
35508
35851
|
var channelTypeRoleMap = getDefaultRolesByChannelTypesMap();
|
|
35509
35852
|
var _useState5 = React.useState(false),
|
|
@@ -35512,7 +35855,20 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35512
35855
|
var _useState6 = React.useState(false),
|
|
35513
35856
|
isSelectedMembersScrolling = _useState6[0],
|
|
35514
35857
|
setIsSelectedMembersScrolling = _useState6[1];
|
|
35515
|
-
var
|
|
35858
|
+
var blockedFlags = useSelector(function (state) {
|
|
35859
|
+
var updatedUserMap = state.UserReducer.updatedUserMap || {};
|
|
35860
|
+
var flags = {};
|
|
35861
|
+
var collect = function collect(id) {
|
|
35862
|
+
if (id && updatedUserMap[id]) flags[id] = !!updatedUserMap[id].blocked;
|
|
35863
|
+
};
|
|
35864
|
+
contactList.forEach(function (contact) {
|
|
35865
|
+
return collect(contact.id);
|
|
35866
|
+
});
|
|
35867
|
+
usersList.forEach(function (user) {
|
|
35868
|
+
return collect(user.id);
|
|
35869
|
+
});
|
|
35870
|
+
return flags;
|
|
35871
|
+
}, reactRedux.shallowEqual);
|
|
35516
35872
|
var popupTitleText = channel && (memberDisplayText && memberDisplayText[channel.type] ? "Add " + memberDisplayText[channel.type] + "s" : channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? 'Subscribers' : 'Members');
|
|
35517
35873
|
var handleMembersListScroll = function handleMembersListScroll(event) {
|
|
35518
35874
|
if (!userSearchValue && event.target.scrollHeight - event.target.scrollTop <= event.target.offsetHeight + 300) {
|
|
@@ -35597,9 +35953,8 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35597
35953
|
if (getFromContacts) {
|
|
35598
35954
|
if (!userSearchValue) {
|
|
35599
35955
|
var userList = contactList.map(function (cont) {
|
|
35600
|
-
var _usersMap$cont$id;
|
|
35601
35956
|
return _extends({}, cont.user, {
|
|
35602
|
-
blocked: !!
|
|
35957
|
+
blocked: !!blockedFlags[cont.id]
|
|
35603
35958
|
});
|
|
35604
35959
|
});
|
|
35605
35960
|
if (actionType === 'createChat') {
|
|
@@ -35608,13 +35963,17 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35608
35963
|
setFilteredUsers(userList);
|
|
35609
35964
|
}
|
|
35610
35965
|
} else {
|
|
35611
|
-
var _userList =
|
|
35966
|
+
var _userList = usersList.map(function (user) {
|
|
35967
|
+
return blockedFlags[user.id] === undefined ? user : _extends({}, user, {
|
|
35968
|
+
blocked: blockedFlags[user.id]
|
|
35969
|
+
});
|
|
35970
|
+
});
|
|
35612
35971
|
if (actionType === 'createChat') {
|
|
35613
35972
|
_userList.unshift(selfUser);
|
|
35614
35973
|
}
|
|
35615
35974
|
setFilteredUsers(_userList);
|
|
35616
35975
|
}
|
|
35617
|
-
}, [contactList, usersList,
|
|
35976
|
+
}, [contactList, usersList, blockedFlags]);
|
|
35618
35977
|
useDidUpdate(function () {
|
|
35619
35978
|
if (getFromContacts) {
|
|
35620
35979
|
if (userSearchValue) {
|
|
@@ -35627,16 +35986,14 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35627
35986
|
});
|
|
35628
35987
|
}
|
|
35629
35988
|
setFilteredUsers(filteredContacts.map(function (cont) {
|
|
35630
|
-
var _usersMap$cont$id2;
|
|
35631
35989
|
return _extends({}, cont.user, {
|
|
35632
|
-
blocked: !!
|
|
35990
|
+
blocked: !!blockedFlags[cont.id]
|
|
35633
35991
|
});
|
|
35634
35992
|
}));
|
|
35635
35993
|
} else {
|
|
35636
35994
|
var userList = contactList.map(function (cont) {
|
|
35637
|
-
var _usersMap$cont$id3;
|
|
35638
35995
|
return _extends({}, cont.user, {
|
|
35639
|
-
blocked: !!
|
|
35996
|
+
blocked: !!blockedFlags[cont.id]
|
|
35640
35997
|
});
|
|
35641
35998
|
});
|
|
35642
35999
|
if (actionType === 'createChat') {
|
|
@@ -35644,14 +36001,17 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35644
36001
|
}
|
|
35645
36002
|
setFilteredUsers(userList);
|
|
35646
36003
|
}
|
|
35647
|
-
}
|
|
36004
|
+
}
|
|
36005
|
+
}, [userSearchValue, blockedFlags]);
|
|
36006
|
+
useDidUpdate(function () {
|
|
36007
|
+
if (!getFromContacts) {
|
|
35648
36008
|
dispatch(getUsersAC({
|
|
35649
36009
|
query: userSearchValue,
|
|
35650
36010
|
filter: 'all',
|
|
35651
36011
|
limit: 50
|
|
35652
36012
|
}));
|
|
35653
36013
|
}
|
|
35654
|
-
}, [userSearchValue
|
|
36014
|
+
}, [userSearchValue]);
|
|
35655
36015
|
React.useEffect(function () {
|
|
35656
36016
|
if (selectedMembersCont.current) {
|
|
35657
36017
|
setUsersContHeight(selectedMembersCont.current.offsetHeight);
|
|
@@ -35735,6 +36095,7 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35735
36095
|
}
|
|
35736
36096
|
}));
|
|
35737
36097
|
}))), /*#__PURE__*/React__default.createElement(MembersContainer, {
|
|
36098
|
+
ref: usersListRef,
|
|
35738
36099
|
className: isScrolling ? 'show-scrollbar' : '',
|
|
35739
36100
|
isAdd: actionType !== 'createChat',
|
|
35740
36101
|
selectedMembersHeight: usersContHeight,
|
|
@@ -35757,6 +36118,7 @@ var UsersPopup = function UsersPopup(_ref2) {
|
|
|
35757
36118
|
}) >= 0;
|
|
35758
36119
|
var memberDisplayName = selfUser.id === user.id ? 'Me' : makeUsername(contactsMap[user.id], user, selfUser.id !== user.id && getFromContacts);
|
|
35759
36120
|
return /*#__PURE__*/React__default.createElement(ListRow, {
|
|
36121
|
+
"data-presence-user-id": user.id,
|
|
35760
36122
|
hoverBackground: backgroundHovered,
|
|
35761
36123
|
key: user.id,
|
|
35762
36124
|
onClick: function onClick() {
|
|
@@ -38159,6 +38521,8 @@ function ChatHeader(_ref) {
|
|
|
38159
38521
|
var directChannelUser = isDirectChannel && activeChannel.members.find(function (member) {
|
|
38160
38522
|
return member.id !== user.id;
|
|
38161
38523
|
});
|
|
38524
|
+
var currentDirectUser = useUpdatedUser(directChannelUser || null);
|
|
38525
|
+
usePresenceSubscription(directChannelUser ? [directChannelUser.id] : []);
|
|
38162
38526
|
var contactsMap = useSelector(contactsMapSelector);
|
|
38163
38527
|
var memberDisplayText = getChannelTypesMemberDisplayTextMap();
|
|
38164
38528
|
var displayMemberText = memberDisplayText && memberDisplayText[activeChannel.type] ? activeChannel.memberCount > 1 ? memberDisplayText[activeChannel.type] + "s" : memberDisplayText[activeChannel.type] : activeChannel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || activeChannel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? activeChannel.memberCount > 1 ? 'subscribers' : 'subscriber' : activeChannel.memberCount > 1 ? 'members' : 'member';
|
|
@@ -38242,7 +38606,7 @@ function ChatHeader(_ref) {
|
|
|
38242
38606
|
fontSize: memberInfoFontSize,
|
|
38243
38607
|
lineHeight: memberInfoLineHeight,
|
|
38244
38608
|
color: memberInfoTextColor || textSecondary
|
|
38245
|
-
}, hideUserPresence && hideUserPresence(directChannelUser) ? '' :
|
|
38609
|
+
}, hideUserPresence && hideUserPresence(currentDirectUser || directChannelUser) ? '' : (currentDirectUser === null || currentDirectUser === void 0 ? void 0 : currentDirectUser.presence) && (currentDirectUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : currentDirectUser.presence.lastActiveAt && userLastActiveDateFormat(currentDirectUser.presence.lastActiveAt)))) : (/*#__PURE__*/React__default.createElement(SubTitle, {
|
|
38246
38610
|
fontSize: memberInfoFontSize,
|
|
38247
38611
|
lineHeight: memberInfoLineHeight,
|
|
38248
38612
|
color: memberInfoTextColor || textSecondary
|
|
@@ -42188,9 +42552,15 @@ var ChannelMembersItem = function ChannelMembersItem(_ref) {
|
|
|
42188
42552
|
isDirectChannel = _ref.isDirectChannel;
|
|
42189
42553
|
var _useColor = useColors(),
|
|
42190
42554
|
textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY];
|
|
42555
|
+
var presenceRef = React.useRef(null);
|
|
42556
|
+
var onScreen = useIsOnScreen(presenceRef, isDirectChannel);
|
|
42557
|
+
usePresenceSubscription(isDirectChannel && directChannelUser ? [directChannelUser.id] : [], {
|
|
42558
|
+
enabled: onScreen
|
|
42559
|
+
});
|
|
42191
42560
|
var updatedUser = useUpdatedUser(directChannelUser);
|
|
42192
42561
|
var directChannelUserUpdated = isDirectChannel ? updatedUser : directChannelUser;
|
|
42193
42562
|
return /*#__PURE__*/React__default.createElement(ChannelMembers, {
|
|
42563
|
+
ref: presenceRef,
|
|
42194
42564
|
color: textSecondary
|
|
42195
42565
|
}, isDirectChannel && directChannelUserUpdated ? (hideUserPresence && hideUserPresence(directChannelUserUpdated) ? '' : directChannelUserUpdated.presence && directChannelUserUpdated.presence.state === USER_PRESENCE_STATUS.ONLINE) ? 'Online' : directChannelUserUpdated && directChannelUserUpdated.presence && directChannelUserUpdated.presence.lastActiveAt && userLastActiveDateFormat(directChannelUserUpdated.presence.lastActiveAt) : (channel === null || channel === void 0 ? void 0 : channel.memberCount) + " " + (channel.type === DEFAULT_CHANNEL_TYPE.BROADCAST || channel.type === DEFAULT_CHANNEL_TYPE.PUBLIC ? (channel === null || channel === void 0 ? void 0 : channel.memberCount) > 1 ? 'subscribers' : 'subscriber' : (channel === null || channel === void 0 ? void 0 : channel.memberCount) > 1 ? 'members' : 'member') + " ");
|
|
42196
42566
|
};
|
|
@@ -50228,21 +50598,48 @@ var ReadMoreLink = styled__default.span(_templateObject0$f || (_templateObject0$
|
|
|
50228
50598
|
|
|
50229
50599
|
var _templateObject$M, _templateObject2$I, _templateObject3$C, _templateObject4$w, _templateObject5$s, _templateObject6$n, _templateObject7$l, _templateObject8$j, _templateObject9$h, _templateObject0$g;
|
|
50230
50600
|
var reactionsPrevLength = 0;
|
|
50231
|
-
function
|
|
50232
|
-
var
|
|
50233
|
-
|
|
50234
|
-
|
|
50235
|
-
|
|
50236
|
-
|
|
50237
|
-
|
|
50238
|
-
|
|
50239
|
-
|
|
50240
|
-
|
|
50241
|
-
|
|
50242
|
-
|
|
50243
|
-
|
|
50244
|
-
|
|
50245
|
-
|
|
50601
|
+
var ReactionPresenceItem = function ReactionPresenceItem(_ref) {
|
|
50602
|
+
var reaction = _ref.reaction,
|
|
50603
|
+
currentUserId = _ref.currentUserId,
|
|
50604
|
+
contactsMap = _ref.contactsMap,
|
|
50605
|
+
getFromContacts = _ref.getFromContacts,
|
|
50606
|
+
textPrimary = _ref.textPrimary,
|
|
50607
|
+
textSecondary = _ref.textSecondary,
|
|
50608
|
+
backgroundHovered = _ref.backgroundHovered,
|
|
50609
|
+
onSelect = _ref.onSelect;
|
|
50610
|
+
var updatedUser = useUpdatedUser(reaction.user);
|
|
50611
|
+
return /*#__PURE__*/React__default.createElement(ReactionItem$1, {
|
|
50612
|
+
"data-presence-user-id": reaction.user.id,
|
|
50613
|
+
key: reaction.id,
|
|
50614
|
+
hoverBackgroundColor: backgroundHovered,
|
|
50615
|
+
onClick: onSelect
|
|
50616
|
+
}, /*#__PURE__*/React__default.createElement(AvatarWrapper, null, /*#__PURE__*/React__default.createElement(Avatar, {
|
|
50617
|
+
name: updatedUser.firstName || updatedUser.id,
|
|
50618
|
+
image: updatedUser.avatarUrl,
|
|
50619
|
+
size: 40,
|
|
50620
|
+
textSize: 14,
|
|
50621
|
+
setDefaultAvatar: true
|
|
50622
|
+
})), /*#__PURE__*/React__default.createElement(UserNamePresence$1, null, /*#__PURE__*/React__default.createElement(MemberName$1, {
|
|
50623
|
+
color: textPrimary
|
|
50624
|
+
}, makeUsername(updatedUser.id === currentUserId ? updatedUser : contactsMap[updatedUser.id], updatedUser, getFromContacts)), /*#__PURE__*/React__default.createElement(SubTitle, {
|
|
50625
|
+
color: textSecondary
|
|
50626
|
+
}, updatedUser.presence && updatedUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : updatedUser.presence && updatedUser.presence.lastActiveAt && userLastActiveDateFormat(updatedUser.presence.lastActiveAt))), /*#__PURE__*/React__default.createElement(ReactionKey, null, reaction.key));
|
|
50627
|
+
};
|
|
50628
|
+
function ReactionsPopup(_ref2) {
|
|
50629
|
+
var messageId = _ref2.messageId,
|
|
50630
|
+
handleReactionsPopupClose = _ref2.handleReactionsPopupClose,
|
|
50631
|
+
handleAddDeleteEmoji = _ref2.handleAddDeleteEmoji,
|
|
50632
|
+
bottomPosition = _ref2.bottomPosition,
|
|
50633
|
+
horizontalPositions = _ref2.horizontalPositions,
|
|
50634
|
+
anchorTop = _ref2.anchorTop,
|
|
50635
|
+
anchorBottom = _ref2.anchorBottom,
|
|
50636
|
+
reactionTotals = _ref2.reactionTotals,
|
|
50637
|
+
reactionsDetailsPopupBorderRadius = _ref2.reactionsDetailsPopupBorderRadius,
|
|
50638
|
+
reactionsDetailsPopupHeaderItemsStyle = _ref2.reactionsDetailsPopupHeaderItemsStyle,
|
|
50639
|
+
_ref2$popupZIndex = _ref2.popupZIndex,
|
|
50640
|
+
popupZIndex = _ref2$popupZIndex === void 0 ? 12 : _ref2$popupZIndex,
|
|
50641
|
+
rtlDirection = _ref2.rtlDirection,
|
|
50642
|
+
openUserProfile = _ref2.openUserProfile;
|
|
50246
50643
|
var _useColor = useColors(),
|
|
50247
50644
|
accentColor = _useColor[THEME_COLORS.ACCENT],
|
|
50248
50645
|
textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
|
|
@@ -50252,8 +50649,12 @@ function ReactionsPopup(_ref) {
|
|
|
50252
50649
|
surface1 = _useColor[THEME_COLORS.SURFACE_1],
|
|
50253
50650
|
backgroundHovered = _useColor[THEME_COLORS.BACKGROUND_HOVERED];
|
|
50254
50651
|
var popupRef = React.useRef(null);
|
|
50652
|
+
var reactionsListRef = React.useRef(null);
|
|
50255
50653
|
var scoresRef = React.useRef(null);
|
|
50256
50654
|
var reactions = useSelector(reactionsListSelector, reactRedux.shallowEqual);
|
|
50655
|
+
useOnScreenUserIds(reactionsListRef, reactions.map(function (reaction) {
|
|
50656
|
+
return reaction.user.id;
|
|
50657
|
+
}));
|
|
50257
50658
|
var messageInputHeight = useSelector(sendMessageInputHeightSelector, reactRedux.shallowEqual);
|
|
50258
50659
|
var reactionsHasNext = useSelector(reactionsHasNextSelector, reactRedux.shallowEqual);
|
|
50259
50660
|
var reactionsLoadingState = useSelector(reactionsLoadingStateSelector, reactRedux.shallowEqual);
|
|
@@ -50262,10 +50663,10 @@ function ReactionsPopup(_ref) {
|
|
|
50262
50663
|
var _useState = React.useState('all'),
|
|
50263
50664
|
activeTabKey = _useState[0],
|
|
50264
50665
|
setActiveTabKey = _useState[1];
|
|
50265
|
-
var reactionTotalsSignature = reactionTotals.map(function (
|
|
50266
|
-
var key =
|
|
50267
|
-
count =
|
|
50268
|
-
score =
|
|
50666
|
+
var reactionTotalsSignature = reactionTotals.map(function (_ref3) {
|
|
50667
|
+
var key = _ref3.key,
|
|
50668
|
+
count = _ref3.count,
|
|
50669
|
+
score = _ref3.score;
|
|
50269
50670
|
return key + ":" + count + ":" + score;
|
|
50270
50671
|
}).join('|');
|
|
50271
50672
|
var reactionTotalsSignatureRef = React.useRef(reactionTotalsSignature);
|
|
@@ -50423,6 +50824,7 @@ function ReactionsPopup(_ref) {
|
|
|
50423
50824
|
backgroundColor: surface1
|
|
50424
50825
|
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(TabKey, null, reaction.key), reaction.count));
|
|
50425
50826
|
}))), /*#__PURE__*/React__default.createElement(ReactionsList, {
|
|
50827
|
+
ref: reactionsListRef,
|
|
50426
50828
|
className: isScrolling ? 'show-scrollbar' : '',
|
|
50427
50829
|
scoresHeight: scoresHeight,
|
|
50428
50830
|
onScroll: handleReactionsListScroll,
|
|
@@ -50434,10 +50836,16 @@ function ReactionsPopup(_ref) {
|
|
|
50434
50836
|
return setIsScrolling(false);
|
|
50435
50837
|
}
|
|
50436
50838
|
}, reactions.map(function (reaction) {
|
|
50437
|
-
return /*#__PURE__*/React__default.createElement(
|
|
50839
|
+
return /*#__PURE__*/React__default.createElement(ReactionPresenceItem, {
|
|
50438
50840
|
key: reaction.id,
|
|
50439
|
-
|
|
50440
|
-
|
|
50841
|
+
reaction: reaction,
|
|
50842
|
+
currentUserId: user.id,
|
|
50843
|
+
contactsMap: contactsMap,
|
|
50844
|
+
getFromContacts: getFromContacts,
|
|
50845
|
+
textPrimary: textPrimary,
|
|
50846
|
+
textSecondary: textSecondary,
|
|
50847
|
+
backgroundHovered: backgroundHovered,
|
|
50848
|
+
onSelect: function onSelect() {
|
|
50441
50849
|
if (reaction.user.id === user.id) {
|
|
50442
50850
|
handleAddDeleteEmoji(reaction.key);
|
|
50443
50851
|
} else {
|
|
@@ -50445,17 +50853,7 @@ function ReactionsPopup(_ref) {
|
|
|
50445
50853
|
handleReactionsPopupClose();
|
|
50446
50854
|
}
|
|
50447
50855
|
}
|
|
50448
|
-
}
|
|
50449
|
-
name: reaction.user.firstName || reaction.user.id,
|
|
50450
|
-
image: reaction.user.avatarUrl,
|
|
50451
|
-
size: 40,
|
|
50452
|
-
textSize: 14,
|
|
50453
|
-
setDefaultAvatar: true
|
|
50454
|
-
})), /*#__PURE__*/React__default.createElement(UserNamePresence$1, null, /*#__PURE__*/React__default.createElement(MemberName$1, {
|
|
50455
|
-
color: textPrimary
|
|
50456
|
-
}, makeUsername(reaction.user.id === user.id ? reaction.user : contactsMap[reaction.user.id], reaction.user, getFromContacts)), /*#__PURE__*/React__default.createElement(SubTitle, {
|
|
50457
|
-
color: textSecondary
|
|
50458
|
-
}, reaction.user.presence && reaction.user.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : reaction.user.presence && reaction.user.presence.lastActiveAt && userLastActiveDateFormat(reaction.user.presence.lastActiveAt))), /*#__PURE__*/React__default.createElement(ReactionKey, null, reaction.key));
|
|
50856
|
+
});
|
|
50459
50857
|
}))), document.body);
|
|
50460
50858
|
}
|
|
50461
50859
|
var Container$j = styled__default.div(_templateObject$M || (_templateObject$M = _taggedTemplateLiteralLoose(["\n width: 340px;\n height: ", "px;\n //overflow: ", ";\n overflow: hidden;\n max-height: 320px;\n background: ", ";\n //border: 1px solid #dfe0eb;\n box-shadow:\n 0 6px 24px -6px rgba(15, 34, 67, 0.12),\n 0px 1px 3px rgba(24, 23, 37, 0.14);\n box-sizing: border-box;\n //box-shadow: 0 0 12px rgba(0, 0, 0, 0.08);\n border-radius: ", ";\n visibility: ", ";\n transition: all 0.2s;\n\n direction: initial;\n &::after {\n content: '';\n position: absolute;\n width: 12px;\n height: 12px;\n\n right: ", ";\n left: ", ";\n top: ", ";\n bottom: ", ";\n transform: rotate(45deg);\n box-shadow: ", ";\n border-radius: 2px;\n visibility: ", ";\n transition-delay: 150ms;\n transition-property: visibility;\n\n background: ", ";\n }\n"])), function (props) {
|
|
@@ -54412,33 +54810,10 @@ var LENGTH_LIMIT = 75;
|
|
|
54412
54810
|
var AtSignMentionsRegex = new RegExp('(^|\\s|\\()(' + '[' + TRIGGERS + ']' + '((?:' + VALID_CHARS + VALID_JOINS + '){0,' + LENGTH_LIMIT + '})' + ')$');
|
|
54413
54811
|
var ALIAS_LENGTH_LIMIT = 50;
|
|
54414
54812
|
var AtSignMentionsRegexAliasRegex = new RegExp('(^|\\s|\\()(' + '[' + TRIGGERS + ']' + '((?:' + VALID_CHARS + '){0,' + ALIAS_LENGTH_LIMIT + '})' + ')$');
|
|
54415
|
-
var mentionsCache = new Map();
|
|
54416
|
-
var membersMap = {};
|
|
54417
54813
|
function useMentionLookupService(mentionString, contactsMap, userId, members, getFromContacts) {
|
|
54418
|
-
|
|
54419
|
-
|
|
54420
|
-
|
|
54421
|
-
membersMap = React.useMemo(function () {
|
|
54422
|
-
mentionsCache.clear();
|
|
54423
|
-
return members.reduce(function (acc, member) {
|
|
54424
|
-
acc[member.id] = member;
|
|
54425
|
-
return acc;
|
|
54426
|
-
}, {});
|
|
54427
|
-
}, [members]);
|
|
54428
|
-
React.useEffect(function () {
|
|
54429
|
-
var cachedResults = mentionsCache.get(mentionString);
|
|
54430
|
-
if (mentionString == null) {
|
|
54431
|
-
setResults([]);
|
|
54432
|
-
return;
|
|
54433
|
-
}
|
|
54434
|
-
if (cachedResults === null) {
|
|
54435
|
-
return;
|
|
54436
|
-
} else if (cachedResults !== undefined) {
|
|
54437
|
-
setResults(cachedResults);
|
|
54438
|
-
return;
|
|
54439
|
-
}
|
|
54440
|
-
mentionsCache.set(mentionString, null);
|
|
54441
|
-
var searchedMembers = [].concat(members).filter(function (member) {
|
|
54814
|
+
return React.useMemo(function () {
|
|
54815
|
+
if (mentionString === null) return [];
|
|
54816
|
+
return members.filter(function (member) {
|
|
54442
54817
|
var displayName = makeUsername(contactsMap[member.id], member, getFromContacts);
|
|
54443
54818
|
return displayName && member.id !== userId && displayName.split(' ').find(function (namePart) {
|
|
54444
54819
|
return namePart[0] === '~' ? namePart.slice(1).toLowerCase().startsWith(mentionString.toLowerCase()) : namePart.toLowerCase().startsWith(mentionString.toLowerCase());
|
|
@@ -54452,10 +54827,7 @@ function useMentionLookupService(mentionString, contactsMap, userId, members, ge
|
|
|
54452
54827
|
presence: member.presence
|
|
54453
54828
|
};
|
|
54454
54829
|
});
|
|
54455
|
-
|
|
54456
|
-
setResults(searchedMembers);
|
|
54457
|
-
}, [mentionString, members]);
|
|
54458
|
-
return results;
|
|
54830
|
+
}, [mentionString, members, contactsMap, userId, getFromContacts]);
|
|
54459
54831
|
}
|
|
54460
54832
|
function checkForAtSignMentions(text, minMatchLength) {
|
|
54461
54833
|
var match = AtSignMentionsRegex.exec(text);
|
|
@@ -54498,6 +54870,13 @@ function MentionsTypeaheadMenuItem(_ref) {
|
|
|
54498
54870
|
onClick = _ref.onClick,
|
|
54499
54871
|
onMouseEnter = _ref.onMouseEnter,
|
|
54500
54872
|
option = _ref.option;
|
|
54873
|
+
var currentUser = useUpdatedUser({
|
|
54874
|
+
id: option.id,
|
|
54875
|
+
firstName: option.name,
|
|
54876
|
+
lastName: '',
|
|
54877
|
+
state: '',
|
|
54878
|
+
presence: option.presence
|
|
54879
|
+
});
|
|
54501
54880
|
var _useColor = useColors(),
|
|
54502
54881
|
textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
|
|
54503
54882
|
textSecondary = _useColor[THEME_COLORS.TEXT_SECONDARY],
|
|
@@ -54507,6 +54886,7 @@ function MentionsTypeaheadMenuItem(_ref) {
|
|
|
54507
54886
|
className += ' selected';
|
|
54508
54887
|
}
|
|
54509
54888
|
return /*#__PURE__*/React__default.createElement(MemberItem, {
|
|
54889
|
+
"data-presence-user-id": option.id,
|
|
54510
54890
|
key: option.id,
|
|
54511
54891
|
tabIndex: -1,
|
|
54512
54892
|
className: className,
|
|
@@ -54527,7 +54907,7 @@ function MentionsTypeaheadMenuItem(_ref) {
|
|
|
54527
54907
|
color: textPrimary
|
|
54528
54908
|
}, option.name), /*#__PURE__*/React__default.createElement(SubTitle, {
|
|
54529
54909
|
color: textSecondary
|
|
54530
|
-
},
|
|
54910
|
+
}, currentUser.presence && currentUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : currentUser.presence && currentUser.presence.lastActiveAt && userLastActiveDateFormat(currentUser.presence.lastActiveAt))));
|
|
54531
54911
|
}
|
|
54532
54912
|
function MentionsContainer(_ref2) {
|
|
54533
54913
|
var queryString = _ref2.queryString,
|
|
@@ -54553,6 +54933,9 @@ function MentionsContainer(_ref2) {
|
|
|
54553
54933
|
return channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channelId];
|
|
54554
54934
|
}, [channelsMembersHasNext === null || channelsMembersHasNext === void 0 ? void 0 : channelsMembersHasNext[channelId]]);
|
|
54555
54935
|
var mentionsListRef = React.useRef(null);
|
|
54936
|
+
useOnScreenUserIds(mentionsListRef, options.map(function (option) {
|
|
54937
|
+
return option.id;
|
|
54938
|
+
}));
|
|
54556
54939
|
var contRef = React.useRef();
|
|
54557
54940
|
var handleKeyDown = function handleKeyDown(event) {
|
|
54558
54941
|
var code = event.code;
|
|
@@ -54653,10 +55036,15 @@ function MentionsPlugin(_ref3) {
|
|
|
54653
55036
|
channelId = _ref3.channelId;
|
|
54654
55037
|
var _useLexicalComposerCo = LexicalComposerContext.useLexicalComposerContext(),
|
|
54655
55038
|
editor = _useLexicalComposerCo[0];
|
|
54656
|
-
var
|
|
54657
|
-
queryString =
|
|
54658
|
-
setQueryString =
|
|
55039
|
+
var _useState = React.useState(null),
|
|
55040
|
+
queryString = _useState[0],
|
|
55041
|
+
setQueryString = _useState[1];
|
|
54659
55042
|
var results = useMentionLookupService(queryString, contactsMap, userId, members, getFromContacts);
|
|
55043
|
+
var membersById = React.useMemo(function () {
|
|
55044
|
+
return new Map(members.map(function (member) {
|
|
55045
|
+
return [member.id, member];
|
|
55046
|
+
}));
|
|
55047
|
+
}, [members]);
|
|
54660
55048
|
var checkForSlashTriggerMatch = LexicalTypeaheadMenuPlugin.useBasicTypeaheadTriggerMatch('/', {
|
|
54661
55049
|
minLength: 0
|
|
54662
55050
|
});
|
|
@@ -54664,7 +55052,7 @@ function MentionsPlugin(_ref3) {
|
|
|
54664
55052
|
return results.map(function (result) {
|
|
54665
55053
|
return new MentionTypeaheadOption(result.name, result.id, result.presence, result.avatar);
|
|
54666
55054
|
});
|
|
54667
|
-
}, [results
|
|
55055
|
+
}, [results]);
|
|
54668
55056
|
var handleOnOpen = function handleOnOpen() {
|
|
54669
55057
|
var menuElement = document.getElementById('typeahead-menu');
|
|
54670
55058
|
if (menuElement) {
|
|
@@ -54673,7 +55061,7 @@ function MentionsPlugin(_ref3) {
|
|
|
54673
55061
|
};
|
|
54674
55062
|
var onSelectOption = React.useCallback(function (selectedOption, nodeToReplace, closeMenu) {
|
|
54675
55063
|
if (selectedOption) {
|
|
54676
|
-
setMentionMember(
|
|
55064
|
+
setMentionMember(membersById.get(selectedOption.id));
|
|
54677
55065
|
editor.update(function () {
|
|
54678
55066
|
var mentionNode = $createMentionNode(_extends({}, selectedOption, {
|
|
54679
55067
|
name: "@" + selectedOption.name
|
|
@@ -54688,7 +55076,7 @@ function MentionsPlugin(_ref3) {
|
|
|
54688
55076
|
} else {
|
|
54689
55077
|
closeMenu();
|
|
54690
55078
|
}
|
|
54691
|
-
}, [editor, setMentionMember]);
|
|
55079
|
+
}, [editor, setMentionMember, membersById]);
|
|
54692
55080
|
var checkForMentionMatch = React.useCallback(function (text) {
|
|
54693
55081
|
var slashMatch = checkForSlashTriggerMatch(text, editor);
|
|
54694
55082
|
if (slashMatch !== null) {
|
|
@@ -63145,27 +63533,38 @@ var QrHint = styled__default.p(_templateObject13$a || (_templateObject13$a = _ta
|
|
|
63145
63533
|
});
|
|
63146
63534
|
|
|
63147
63535
|
var _templateObject$1b, _templateObject2$17, _templateObject3$Z, _templateObject4$Q, _templateObject5$M, _templateObject6$F, _templateObject7$B, _templateObject8$y, _templateObject9$s, _templateObject0$p, _templateObject1$j, _templateObject10$h, _templateObject11$e, _templateObject12$d, _templateObject13$b;
|
|
63148
|
-
var
|
|
63536
|
+
var MemberPresence = function MemberPresence(_ref) {
|
|
63537
|
+
var member = _ref.member,
|
|
63538
|
+
color = _ref.color,
|
|
63539
|
+
fontSize = _ref.fontSize;
|
|
63540
|
+
var currentMember = useUpdatedUser(member);
|
|
63541
|
+
return /*#__PURE__*/React__default.createElement(SubTitle, {
|
|
63542
|
+
color: color,
|
|
63543
|
+
margin: '1px 0 0',
|
|
63544
|
+
fontSize: fontSize
|
|
63545
|
+
}, currentMember.presence && currentMember.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : currentMember.presence && currentMember.presence.lastActiveAt && userLastActiveDateFormat(currentMember.presence.lastActiveAt));
|
|
63546
|
+
};
|
|
63547
|
+
var Members = function Members(_ref2) {
|
|
63149
63548
|
var _members$find;
|
|
63150
|
-
var channel =
|
|
63151
|
-
members =
|
|
63152
|
-
checkActionPermission =
|
|
63153
|
-
CustomLoadErrorState =
|
|
63154
|
-
|
|
63155
|
-
showChangeMemberRole =
|
|
63156
|
-
|
|
63157
|
-
showMakeMemberAdmin =
|
|
63158
|
-
|
|
63159
|
-
showKickMember =
|
|
63160
|
-
|
|
63161
|
-
showKickAndBlockMember =
|
|
63162
|
-
hoverBackgroundColor =
|
|
63163
|
-
addMemberFontSize =
|
|
63164
|
-
addMemberIcon =
|
|
63165
|
-
memberNameFontSize =
|
|
63166
|
-
memberAvatarSize =
|
|
63167
|
-
memberPresenceFontSize =
|
|
63168
|
-
QRCodeIcon =
|
|
63549
|
+
var channel = _ref2.channel,
|
|
63550
|
+
members = _ref2.members,
|
|
63551
|
+
checkActionPermission = _ref2.checkActionPermission,
|
|
63552
|
+
CustomLoadErrorState = _ref2.CustomLoadErrorState,
|
|
63553
|
+
_ref2$showChangeMembe = _ref2.showChangeMemberRole,
|
|
63554
|
+
showChangeMemberRole = _ref2$showChangeMembe === void 0 ? true : _ref2$showChangeMembe,
|
|
63555
|
+
_ref2$showMakeMemberA = _ref2.showMakeMemberAdmin,
|
|
63556
|
+
showMakeMemberAdmin = _ref2$showMakeMemberA === void 0 ? true : _ref2$showMakeMemberA,
|
|
63557
|
+
_ref2$showKickMember = _ref2.showKickMember,
|
|
63558
|
+
showKickMember = _ref2$showKickMember === void 0 ? true : _ref2$showKickMember,
|
|
63559
|
+
_ref2$showKickAndBloc = _ref2.showKickAndBlockMember,
|
|
63560
|
+
showKickAndBlockMember = _ref2$showKickAndBloc === void 0 ? true : _ref2$showKickAndBloc,
|
|
63561
|
+
hoverBackgroundColor = _ref2.hoverBackgroundColor,
|
|
63562
|
+
addMemberFontSize = _ref2.addMemberFontSize,
|
|
63563
|
+
addMemberIcon = _ref2.addMemberIcon,
|
|
63564
|
+
memberNameFontSize = _ref2.memberNameFontSize,
|
|
63565
|
+
memberAvatarSize = _ref2.memberAvatarSize,
|
|
63566
|
+
memberPresenceFontSize = _ref2.memberPresenceFontSize,
|
|
63567
|
+
QRCodeIcon = _ref2.QRCodeIcon;
|
|
63169
63568
|
var _useColor = useColors(),
|
|
63170
63569
|
accentColor = _useColor[THEME_COLORS.ACCENT],
|
|
63171
63570
|
textPrimary = _useColor[THEME_COLORS.TEXT_PRIMARY],
|
|
@@ -63176,6 +63575,10 @@ var Members = function Members(_ref) {
|
|
|
63176
63575
|
iconInactive = _useColor[THEME_COLORS.ICON_INACTIVE],
|
|
63177
63576
|
surface1 = _useColor[THEME_COLORS.SURFACE_1];
|
|
63178
63577
|
var dispatch = useDispatch();
|
|
63578
|
+
var membersListRef = React__default.useRef(null);
|
|
63579
|
+
useOnScreenUserIds(membersListRef, members.map(function (member) {
|
|
63580
|
+
return member.id;
|
|
63581
|
+
}));
|
|
63179
63582
|
var getFromContacts = getShowOnlyContactUsers();
|
|
63180
63583
|
var _useState = React.useState(null),
|
|
63181
63584
|
selectedMember = _useState[0],
|
|
@@ -63324,7 +63727,9 @@ var Members = function Members(_ref) {
|
|
|
63324
63727
|
var myPriority = rolePriority(currentUserRole);
|
|
63325
63728
|
return typeof memberPriority === 'number' && typeof myPriority === 'number' && memberPriority < myPriority;
|
|
63326
63729
|
};
|
|
63327
|
-
return /*#__PURE__*/React__default.createElement(Container$t, null, /*#__PURE__*/React__default.createElement(ActionsMenu$1, null, /*#__PURE__*/React__default.createElement(MembersList,
|
|
63730
|
+
return /*#__PURE__*/React__default.createElement(Container$t, null, /*#__PURE__*/React__default.createElement(ActionsMenu$1, null, /*#__PURE__*/React__default.createElement(MembersList, {
|
|
63731
|
+
ref: membersListRef
|
|
63732
|
+
}, checkActionPermission('addMember') && (/*#__PURE__*/React__default.createElement(MemberItem$1, {
|
|
63328
63733
|
key: 1,
|
|
63329
63734
|
onClick: handleAddMemberPopup,
|
|
63330
63735
|
color: textPrimary,
|
|
@@ -63356,10 +63761,11 @@ var Members = function Members(_ref) {
|
|
|
63356
63761
|
width: '35%',
|
|
63357
63762
|
height: '12px'
|
|
63358
63763
|
})));
|
|
63359
|
-
}), !!members.length && members.map(function (member
|
|
63764
|
+
}), !!members.length && members.map(function (member) {
|
|
63360
63765
|
return /*#__PURE__*/React__default.createElement(MemberItem$1, {
|
|
63766
|
+
"data-presence-user-id": member.id,
|
|
63361
63767
|
addMemberIconColor: iconInactive,
|
|
63362
|
-
key: member.id
|
|
63768
|
+
key: member.id,
|
|
63363
63769
|
color: textPrimary,
|
|
63364
63770
|
hoverBackground: hoverBackgroundColor || backgroundHovered,
|
|
63365
63771
|
onClick: function onClick() {
|
|
@@ -63380,11 +63786,11 @@ var Members = function Members(_ref) {
|
|
|
63380
63786
|
}, "Owner")) : member.role === 'admin' ? (/*#__PURE__*/React__default.createElement(RoleBadge, {
|
|
63381
63787
|
color: accentColor,
|
|
63382
63788
|
backgroundColor: backgroundFocused
|
|
63383
|
-
}, "Admin")) : ''), /*#__PURE__*/React__default.createElement(
|
|
63789
|
+
}, "Admin")) : ''), /*#__PURE__*/React__default.createElement(MemberPresence, {
|
|
63790
|
+
member: member,
|
|
63384
63791
|
color: textSecondary,
|
|
63385
|
-
margin: '1px 0 0',
|
|
63386
63792
|
fontSize: memberPresenceFontSize
|
|
63387
|
-
}
|
|
63793
|
+
})), !noMemberEditPermissions && member.role !== 'owner' && currentUserRole && outranks(member.role) && member.id !== user.id && (/*#__PURE__*/React__default.createElement(DropDown, {
|
|
63388
63794
|
isSelect: true,
|
|
63389
63795
|
forceClose: !!(closeMenu && closeMenu !== member.id),
|
|
63390
63796
|
watchToggleState: function watchToggleState(state) {
|
|
@@ -64146,6 +64552,8 @@ var Details = function Details(_ref) {
|
|
|
64146
64552
|
var directChannelUser = isDirectChannel && (activeChannel.members.find(function (member) {
|
|
64147
64553
|
return member.id !== user.id;
|
|
64148
64554
|
}) || (activeChannel === null || activeChannel === void 0 ? void 0 : (_activeChannel$member = activeChannel.members) === null || _activeChannel$member === void 0 ? void 0 : _activeChannel$member[0]));
|
|
64555
|
+
var currentDirectUser = useUpdatedUser(directChannelUser || null);
|
|
64556
|
+
usePresenceSubscription(isDirectChannel && !isSelfChannel && directChannelUser ? [directChannelUser.id] : []);
|
|
64149
64557
|
var handleMembersListScroll = function handleMembersListScroll(event) {
|
|
64150
64558
|
if (event.target.scrollTop >= event.target.scrollHeight - event.target.offsetHeight - 100) {
|
|
64151
64559
|
if (activeTab === channelDetailsTabs.member) {
|
|
@@ -64303,7 +64711,7 @@ var Details = function Details(_ref) {
|
|
|
64303
64711
|
}, "+" + directChannelUser.id, copiedPhone && (/*#__PURE__*/React__default.createElement(CopiedTooltip, {
|
|
64304
64712
|
backgroundColor: tooltipBackground,
|
|
64305
64713
|
color: textOnPrimary
|
|
64306
|
-
}, "Copied")))) : hideUserPresence &&
|
|
64714
|
+
}, "Copied")))) : hideUserPresence && currentDirectUser && hideUserPresence(currentDirectUser) ? '' : currentDirectUser && currentDirectUser.presence && (currentDirectUser.presence.state === USER_PRESENCE_STATUS.ONLINE ? 'Online' : currentDirectUser.presence.lastActiveAt && userLastActiveDateFormat(currentDirectUser.presence.lastActiveAt)))) : (/*#__PURE__*/React__default.createElement(SubTitle, {
|
|
64307
64715
|
color: textSecondary,
|
|
64308
64716
|
fontSize: channelMembersFontSize,
|
|
64309
64717
|
lineHeight: channelMembersLineHeight
|