stream-chat-react 10.10.1 → 10.11.0
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/dist/browser.full-bundle.js +192 -101
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +5 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +27 -8
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +6 -2
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +19 -7
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +6 -2
- package/dist/components/ChannelList/utils.d.ts +1 -8
- package/dist/components/ChannelList/utils.d.ts.map +1 -1
- package/dist/components/ChannelList/utils.js +1 -35
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +10 -3
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.js +17 -21
- package/dist/components/MessageInput/CooldownTimer.js +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +5 -2
- package/dist/context/MessageContext.d.ts +3 -1
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/TranslationContext.d.ts +1 -1
- package/dist/context/TranslationContext.d.ts.map +1 -1
- package/dist/i18n/Streami18n.d.ts +9 -3
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/Streami18n.js +18 -11
- package/dist/index.cjs.js +178 -101
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/utils/getChannel.d.ts +20 -0
- package/dist/utils/getChannel.d.ts.map +1 -0
- package/dist/utils/getChannel.js +58 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
package/dist/index.cjs.js
CHANGED
|
@@ -14,6 +14,8 @@ var i18n = require('i18next');
|
|
|
14
14
|
var updateLocale = require('dayjs/plugin/updateLocale');
|
|
15
15
|
var localeData = require('dayjs/plugin/localeData');
|
|
16
16
|
var relativeTime = require('dayjs/plugin/relativeTime');
|
|
17
|
+
var utc = require('dayjs/plugin/utc');
|
|
18
|
+
var timezone = require('dayjs/plugin/timezone');
|
|
17
19
|
require('dayjs/locale/de');
|
|
18
20
|
require('dayjs/locale/es');
|
|
19
21
|
require('dayjs/locale/fr');
|
|
@@ -88,6 +90,8 @@ var i18n__default = /*#__PURE__*/_interopDefaultLegacy(i18n);
|
|
|
88
90
|
var updateLocale__default = /*#__PURE__*/_interopDefaultLegacy(updateLocale);
|
|
89
91
|
var localeData__default = /*#__PURE__*/_interopDefaultLegacy(localeData);
|
|
90
92
|
var relativeTime__default = /*#__PURE__*/_interopDefaultLegacy(relativeTime);
|
|
93
|
+
var utc__default = /*#__PURE__*/_interopDefaultLegacy(utc);
|
|
94
|
+
var timezone__default = /*#__PURE__*/_interopDefaultLegacy(timezone);
|
|
91
95
|
var ImageGallery__default = /*#__PURE__*/_interopDefaultLegacy(ImageGallery);
|
|
92
96
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
93
97
|
var linkify__namespace = /*#__PURE__*/_interopNamespace(linkify);
|
|
@@ -609,6 +613,8 @@ var Cancel="İptal";var Close="Kapat";var Delete="Sil";var Delivered="İletildi"
|
|
|
609
613
|
var defaultNS = 'translation';
|
|
610
614
|
var defaultLng = 'en';
|
|
611
615
|
Dayjs__default["default"].extend(updateLocale__default["default"]);
|
|
616
|
+
Dayjs__default["default"].extend(utc__default["default"]);
|
|
617
|
+
Dayjs__default["default"].extend(timezone__default["default"]);
|
|
612
618
|
Dayjs__default["default"].updateLocale('de', {
|
|
613
619
|
calendar: {
|
|
614
620
|
lastDay: '[gestern um] LT',
|
|
@@ -777,6 +783,9 @@ var en_locale = {
|
|
|
777
783
|
var isDayJs = function (dateTimeParser) {
|
|
778
784
|
return dateTimeParser.extend !== undefined;
|
|
779
785
|
};
|
|
786
|
+
var supportsTz = function (dateTimeParser) {
|
|
787
|
+
return dateTimeParser.tz !== undefined;
|
|
788
|
+
};
|
|
780
789
|
/**
|
|
781
790
|
* Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.
|
|
782
791
|
* Instance of this class should be provided to Chat component to handle translations.
|
|
@@ -1020,6 +1029,7 @@ var Streami18n = /** @class */ (function () {
|
|
|
1020
1029
|
this.logger = finalOptions.logger;
|
|
1021
1030
|
this.currentLanguage = finalOptions.language;
|
|
1022
1031
|
this.DateTimeParser = finalOptions.DateTimeParser;
|
|
1032
|
+
this.timezone = finalOptions.timezone;
|
|
1023
1033
|
try {
|
|
1024
1034
|
if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {
|
|
1025
1035
|
this.DateTimeParser.extend(LocalizedFormat__default["default"]);
|
|
@@ -1069,19 +1079,18 @@ var Streami18n = /** @class */ (function () {
|
|
|
1069
1079
|
"register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)");
|
|
1070
1080
|
}
|
|
1071
1081
|
this.tDateTimeParser = function (timestamp) {
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
*/
|
|
1076
|
-
if (isDayJs(_this.DateTimeParser)) {
|
|
1077
|
-
return _this.DateTimeParser(timestamp).locale(defaultLng);
|
|
1078
|
-
}
|
|
1079
|
-
return _this.DateTimeParser(timestamp).locale(defaultLng);
|
|
1080
|
-
}
|
|
1082
|
+
var language = finalOptions.disableDateTimeTranslations || !_this.localeExists(_this.currentLanguage)
|
|
1083
|
+
? defaultLng
|
|
1084
|
+
: _this.currentLanguage;
|
|
1081
1085
|
if (isDayJs(_this.DateTimeParser)) {
|
|
1082
|
-
return _this.DateTimeParser
|
|
1086
|
+
return supportsTz(_this.DateTimeParser)
|
|
1087
|
+
? _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language)
|
|
1088
|
+
: _this.DateTimeParser(timestamp).locale(language);
|
|
1089
|
+
}
|
|
1090
|
+
if (supportsTz(_this.DateTimeParser) && _this.timezone) {
|
|
1091
|
+
return _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language);
|
|
1083
1092
|
}
|
|
1084
|
-
return _this.DateTimeParser(timestamp).locale(
|
|
1093
|
+
return _this.DateTimeParser(timestamp).locale(language);
|
|
1085
1094
|
};
|
|
1086
1095
|
}
|
|
1087
1096
|
/**
|
|
@@ -30422,7 +30431,7 @@ var CooldownTimer = function (_a) {
|
|
|
30422
30431
|
}, 1000);
|
|
30423
30432
|
return function () { return clearInterval(countdownInterval); };
|
|
30424
30433
|
});
|
|
30425
|
-
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds
|
|
30434
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds));
|
|
30426
30435
|
};
|
|
30427
30436
|
|
|
30428
30437
|
var useCommandTrigger = function () {
|
|
@@ -31138,9 +31147,12 @@ var useCooldownTimer = function () {
|
|
|
31138
31147
|
}, [messages, (_a = client.user) === null || _a === void 0 ? void 0 : _a.id, latestMessageDatesByChannels, channel.cid]);
|
|
31139
31148
|
React.useEffect(function () {
|
|
31140
31149
|
var timeSinceOwnLastMessage = ownLatestMessageDate
|
|
31141
|
-
?
|
|
31150
|
+
? // prevent negative values
|
|
31151
|
+
Math.max(0, (new Date().getTime() - ownLatestMessageDate.getTime()) / 1000)
|
|
31142
31152
|
: undefined;
|
|
31143
|
-
setCooldownRemaining(!skipCooldown &&
|
|
31153
|
+
setCooldownRemaining(!skipCooldown &&
|
|
31154
|
+
typeof timeSinceOwnLastMessage !== 'undefined' &&
|
|
31155
|
+
cooldownInterval > timeSinceOwnLastMessage
|
|
31144
31156
|
? Math.round(cooldownInterval - timeSinceOwnLastMessage)
|
|
31145
31157
|
: 0);
|
|
31146
31158
|
}, [cooldownInterval, ownLatestMessageDate, skipCooldown]);
|
|
@@ -32575,6 +32587,13 @@ var MessageSimpleWithContext = function (props) {
|
|
|
32575
32587
|
if (message.deleted_at || message.type === 'deleted') {
|
|
32576
32588
|
return React__default["default"].createElement(MessageDeleted$1, { message: message });
|
|
32577
32589
|
}
|
|
32590
|
+
/** FIXME: isReactionEnabled should be removed with next major version and a proper centralized permissions logic should be put in place
|
|
32591
|
+
* With the current permissions implementation it would be sth like:
|
|
32592
|
+
* const messageActions = getMessageActions();
|
|
32593
|
+
* const canReact = messageActions.includes(MESSAGE_ACTIONS.react);
|
|
32594
|
+
*/
|
|
32595
|
+
var canReact = isReactionEnabled;
|
|
32596
|
+
var canShowReactions = hasReactions;
|
|
32578
32597
|
var showMetadata = !groupedByUser || endOfGroup;
|
|
32579
32598
|
var showReplyCountButton = !threadList && !!message.reply_count;
|
|
32580
32599
|
var allowRetry = message.status === 'failed' && message.errorStatusCode !== 403;
|
|
@@ -32584,7 +32603,7 @@ var MessageSimpleWithContext = function (props) {
|
|
|
32584
32603
|
'pinned-message': message.pinned,
|
|
32585
32604
|
'str-chat__message--has-attachment': hasAttachment,
|
|
32586
32605
|
'str-chat__message--highlighted': highlighted,
|
|
32587
|
-
'str-chat__message--with-reactions str-chat__message-with-thread-link':
|
|
32606
|
+
'str-chat__message--with-reactions str-chat__message-with-thread-link': canShowReactions,
|
|
32588
32607
|
'str-chat__message-send-can-be-retried': (message === null || message === void 0 ? void 0 : message.status) === 'failed' && (message === null || message === void 0 ? void 0 : message.errorStatusCode) !== 403,
|
|
32589
32608
|
'str-chat__virtual-message__wrapper--end': endOfGroup,
|
|
32590
32609
|
'str-chat__virtual-message__wrapper--first': firstOfGroup,
|
|
@@ -32601,8 +32620,8 @@ var MessageSimpleWithContext = function (props) {
|
|
|
32601
32620
|
}), "data-testid": 'message-inner', onClick: allowRetry ? function () { return handleRetry(message); } : undefined, onKeyUp: allowRetry ? function () { return handleRetry(message); } : undefined },
|
|
32602
32621
|
React__default["default"].createElement(MessageOptions$1, null),
|
|
32603
32622
|
React__default["default"].createElement("div", { className: 'str-chat__message-reactions-host' },
|
|
32604
|
-
|
|
32605
|
-
showDetailedReactions &&
|
|
32623
|
+
canShowReactions && React__default["default"].createElement(ReactionsList$1, { reverse: true }),
|
|
32624
|
+
showDetailedReactions && canReact && React__default["default"].createElement(ReactionSelector$1, { ref: reactionSelectorRef })),
|
|
32606
32625
|
React__default["default"].createElement("div", { className: 'str-chat__message-bubble' },
|
|
32607
32626
|
((_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) && !message.quoted_message ? (React__default["default"].createElement(Attachment, { actionHandler: handleAction, attachments: message.attachments })) : null,
|
|
32608
32627
|
React__default["default"].createElement(MessageText, { message: message, renderText: renderText }),
|
|
@@ -32883,6 +32902,64 @@ var makeAddNotifications = function (setNotifications, notificationTimeouts) { r
|
|
|
32883
32902
|
notificationTimeouts.push(timeout);
|
|
32884
32903
|
}; };
|
|
32885
32904
|
|
|
32905
|
+
/**
|
|
32906
|
+
* prevent from duplicate invocation of channel.watch()
|
|
32907
|
+
* when events 'notification.message_new' and 'notification.added_to_channel' arrive at the same time
|
|
32908
|
+
*/
|
|
32909
|
+
var WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL = {};
|
|
32910
|
+
/**
|
|
32911
|
+
* Calls channel.watch() if it was not already recently called. Waits for watch promise to resolve even if it was invoked previously.
|
|
32912
|
+
* @param client
|
|
32913
|
+
* @param members
|
|
32914
|
+
* @param type
|
|
32915
|
+
* @param id
|
|
32916
|
+
* @param channel
|
|
32917
|
+
*/
|
|
32918
|
+
var getChannel = function (_a) {
|
|
32919
|
+
var channel = _a.channel, client = _a.client, id = _a.id, members = _a.members, type = _a.type;
|
|
32920
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
32921
|
+
var theChannel, originalCid, queryPromise;
|
|
32922
|
+
return __generator(this, function (_b) {
|
|
32923
|
+
switch (_b.label) {
|
|
32924
|
+
case 0:
|
|
32925
|
+
if (!channel && !type) {
|
|
32926
|
+
throw new Error('Channel or channel type have to be provided to query a channel.');
|
|
32927
|
+
}
|
|
32928
|
+
theChannel = channel || client.channel(type, id, { members: members });
|
|
32929
|
+
originalCid = (theChannel === null || theChannel === void 0 ? void 0 : theChannel.id)
|
|
32930
|
+
? theChannel.cid
|
|
32931
|
+
: members && members.length
|
|
32932
|
+
? generateChannelTempCid(theChannel.type, members)
|
|
32933
|
+
: undefined;
|
|
32934
|
+
if (!originalCid) {
|
|
32935
|
+
throw new Error('Channel ID or channel members array have to be provided to query a channel.');
|
|
32936
|
+
}
|
|
32937
|
+
queryPromise = WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid];
|
|
32938
|
+
if (!queryPromise) return [3 /*break*/, 2];
|
|
32939
|
+
return [4 /*yield*/, queryPromise];
|
|
32940
|
+
case 1:
|
|
32941
|
+
_b.sent();
|
|
32942
|
+
return [3 /*break*/, 4];
|
|
32943
|
+
case 2:
|
|
32944
|
+
WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid] = theChannel.watch();
|
|
32945
|
+
return [4 /*yield*/, WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid]];
|
|
32946
|
+
case 3:
|
|
32947
|
+
_b.sent();
|
|
32948
|
+
delete WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[originalCid];
|
|
32949
|
+
_b.label = 4;
|
|
32950
|
+
case 4: return [2 /*return*/, theChannel];
|
|
32951
|
+
}
|
|
32952
|
+
});
|
|
32953
|
+
});
|
|
32954
|
+
};
|
|
32955
|
+
// Channels created without ID need to be referenced by an identifier until the back-end generates the final ID.
|
|
32956
|
+
var generateChannelTempCid = function (channelType, members) {
|
|
32957
|
+
if (!members)
|
|
32958
|
+
return;
|
|
32959
|
+
var membersStr = __spreadArray([], members, true).sort().join(',');
|
|
32960
|
+
return "".concat(channelType, ":!members-").concat(membersStr);
|
|
32961
|
+
};
|
|
32962
|
+
|
|
32886
32963
|
var useChannelContainerClasses = function (_a) {
|
|
32887
32964
|
var _b, _c, _d;
|
|
32888
32965
|
var customClasses = _a.customClasses;
|
|
@@ -33125,22 +33202,40 @@ var ChannelInner = function (props) {
|
|
|
33125
33202
|
markRead();
|
|
33126
33203
|
};
|
|
33127
33204
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
33128
|
-
var config, e_1;
|
|
33129
|
-
|
|
33130
|
-
|
|
33205
|
+
var members, _i, _a, member, userId, _b, user, user_id, config, e_1;
|
|
33206
|
+
var _c;
|
|
33207
|
+
return __generator(this, function (_d) {
|
|
33208
|
+
switch (_d.label) {
|
|
33131
33209
|
case 0:
|
|
33132
33210
|
if (!!channel.initialized) return [3 /*break*/, 4];
|
|
33133
|
-
|
|
33211
|
+
_d.label = 1;
|
|
33134
33212
|
case 1:
|
|
33135
|
-
|
|
33136
|
-
|
|
33213
|
+
_d.trys.push([1, 3, , 4]);
|
|
33214
|
+
members = [];
|
|
33215
|
+
if (!channel.id && ((_c = channel.data) === null || _c === void 0 ? void 0 : _c.members)) {
|
|
33216
|
+
for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
|
|
33217
|
+
member = _a[_i];
|
|
33218
|
+
userId = void 0;
|
|
33219
|
+
if (typeof member === 'string') {
|
|
33220
|
+
userId = member;
|
|
33221
|
+
}
|
|
33222
|
+
else if (typeof member === 'object') {
|
|
33223
|
+
_b = member, user = _b.user, user_id = _b.user_id;
|
|
33224
|
+
userId = user_id || (user === null || user === void 0 ? void 0 : user.id);
|
|
33225
|
+
}
|
|
33226
|
+
if (userId) {
|
|
33227
|
+
members.push(userId);
|
|
33228
|
+
}
|
|
33229
|
+
}
|
|
33230
|
+
}
|
|
33231
|
+
return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members })];
|
|
33137
33232
|
case 2:
|
|
33138
|
-
|
|
33233
|
+
_d.sent();
|
|
33139
33234
|
config = channel.getConfig();
|
|
33140
33235
|
setChannelConfig(config);
|
|
33141
33236
|
return [3 /*break*/, 4];
|
|
33142
33237
|
case 3:
|
|
33143
|
-
e_1 =
|
|
33238
|
+
e_1 = _d.sent();
|
|
33144
33239
|
dispatch({ error: e_1, type: 'setError' });
|
|
33145
33240
|
errored = true;
|
|
33146
33241
|
return [3 /*break*/, 4];
|
|
@@ -33872,52 +33967,6 @@ var useChannelUpdatedListener = function (setChannels, customHandler, forceUpdat
|
|
|
33872
33967
|
}, [customHandler]);
|
|
33873
33968
|
};
|
|
33874
33969
|
|
|
33875
|
-
/**
|
|
33876
|
-
* prevent from duplicate invocation of channel.watch()
|
|
33877
|
-
* when events 'notification.message_new' and 'notification.added_to_channel' arrive at the same time
|
|
33878
|
-
*/
|
|
33879
|
-
var WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL = {};
|
|
33880
|
-
/**
|
|
33881
|
-
* Calls channel.watch() if it was not already recently called. Waits for watch promise to resolve even if it was invoked previously.
|
|
33882
|
-
* @param client
|
|
33883
|
-
* @param type
|
|
33884
|
-
* @param id
|
|
33885
|
-
*/
|
|
33886
|
-
var getChannel = function (client, type, id) { return __awaiter(void 0, void 0, void 0, function () {
|
|
33887
|
-
var channel, queryPromise;
|
|
33888
|
-
return __generator(this, function (_a) {
|
|
33889
|
-
switch (_a.label) {
|
|
33890
|
-
case 0:
|
|
33891
|
-
channel = client.channel(type, id);
|
|
33892
|
-
queryPromise = WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid];
|
|
33893
|
-
if (!queryPromise) return [3 /*break*/, 2];
|
|
33894
|
-
return [4 /*yield*/, queryPromise];
|
|
33895
|
-
case 1:
|
|
33896
|
-
_a.sent();
|
|
33897
|
-
return [3 /*break*/, 4];
|
|
33898
|
-
case 2:
|
|
33899
|
-
WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid] = channel.watch();
|
|
33900
|
-
return [4 /*yield*/, WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid]];
|
|
33901
|
-
case 3:
|
|
33902
|
-
_a.sent();
|
|
33903
|
-
WATCH_QUERY_IN_PROGRESS_FOR_CHANNEL[channel.cid] = undefined;
|
|
33904
|
-
_a.label = 4;
|
|
33905
|
-
case 4: return [2 /*return*/, channel];
|
|
33906
|
-
}
|
|
33907
|
-
});
|
|
33908
|
-
}); };
|
|
33909
|
-
var MAX_QUERY_CHANNELS_LIMIT = 30;
|
|
33910
|
-
var moveChannelUp = function (_a) {
|
|
33911
|
-
var activeChannel = _a.activeChannel, channels = _a.channels, cid = _a.cid;
|
|
33912
|
-
// get index of channel to move up
|
|
33913
|
-
var channelIndex = channels.findIndex(function (channel) { return channel.cid === cid; });
|
|
33914
|
-
if (!activeChannel && channelIndex <= 0)
|
|
33915
|
-
return channels;
|
|
33916
|
-
// get channel to move up
|
|
33917
|
-
var channel = activeChannel || channels[channelIndex];
|
|
33918
|
-
return uniqBy__default["default"](__spreadArray([channel], channels, true), 'cid');
|
|
33919
|
-
};
|
|
33920
|
-
|
|
33921
33970
|
var useChannelVisibleListener = function (setChannels, customHandler) {
|
|
33922
33971
|
var client = useChatContext('useChannelVisibleListener').client;
|
|
33923
33972
|
React.useEffect(function () {
|
|
@@ -33931,7 +33980,11 @@ var useChannelVisibleListener = function (setChannels, customHandler) {
|
|
|
33931
33980
|
return [3 /*break*/, 3];
|
|
33932
33981
|
case 1:
|
|
33933
33982
|
if (!(event.type && event.channel_type && event.channel_id)) return [3 /*break*/, 3];
|
|
33934
|
-
return [4 /*yield*/, getChannel(
|
|
33983
|
+
return [4 /*yield*/, getChannel({
|
|
33984
|
+
client: client,
|
|
33985
|
+
id: event.channel_id,
|
|
33986
|
+
type: event.channel_type,
|
|
33987
|
+
})];
|
|
33935
33988
|
case 2:
|
|
33936
33989
|
channel_1 = _a.sent();
|
|
33937
33990
|
setChannels(function (channels) { return uniqBy__default["default"](__spreadArray([channel_1], channels, true), 'cid'); });
|
|
@@ -33962,6 +34015,18 @@ var useConnectionRecoveredListener = function (forceUpdate) {
|
|
|
33962
34015
|
}, []);
|
|
33963
34016
|
};
|
|
33964
34017
|
|
|
34018
|
+
var MAX_QUERY_CHANNELS_LIMIT = 30;
|
|
34019
|
+
var moveChannelUp = function (_a) {
|
|
34020
|
+
var activeChannel = _a.activeChannel, channels = _a.channels, cid = _a.cid;
|
|
34021
|
+
// get index of channel to move up
|
|
34022
|
+
var channelIndex = channels.findIndex(function (channel) { return channel.cid === cid; });
|
|
34023
|
+
if (!activeChannel && channelIndex <= 0)
|
|
34024
|
+
return channels;
|
|
34025
|
+
// get channel to move up
|
|
34026
|
+
var channel = activeChannel || channels[channelIndex];
|
|
34027
|
+
return uniqBy__default["default"](__spreadArray([channel], channels, true), 'cid');
|
|
34028
|
+
};
|
|
34029
|
+
|
|
33965
34030
|
var useMessageNewListener = function (setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels) {
|
|
33966
34031
|
if (lockChannelOrder === void 0) { lockChannelOrder = false; }
|
|
33967
34032
|
if (allowNewMessagesFromUnfilteredChannels === void 0) { allowNewMessagesFromUnfilteredChannels = true; }
|
|
@@ -34009,20 +34074,32 @@ var useNotificationAddedToChannelListener = function (setChannels, customHandler
|
|
|
34009
34074
|
React.useEffect(function () {
|
|
34010
34075
|
var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
34011
34076
|
var channel_1;
|
|
34012
|
-
var _a;
|
|
34013
|
-
return __generator(this, function (
|
|
34014
|
-
switch (
|
|
34077
|
+
var _a, _b;
|
|
34078
|
+
return __generator(this, function (_c) {
|
|
34079
|
+
switch (_c.label) {
|
|
34015
34080
|
case 0:
|
|
34016
34081
|
if (!(customHandler && typeof customHandler === 'function')) return [3 /*break*/, 1];
|
|
34017
34082
|
customHandler(setChannels, event);
|
|
34018
34083
|
return [3 /*break*/, 3];
|
|
34019
34084
|
case 1:
|
|
34020
34085
|
if (!(allowNewMessagesFromUnfilteredChannels && ((_a = event.channel) === null || _a === void 0 ? void 0 : _a.type))) return [3 /*break*/, 3];
|
|
34021
|
-
return [4 /*yield*/, getChannel(
|
|
34086
|
+
return [4 /*yield*/, getChannel({
|
|
34087
|
+
client: client,
|
|
34088
|
+
id: event.channel.id,
|
|
34089
|
+
members: (_b = event.channel.members) === null || _b === void 0 ? void 0 : _b.reduce(function (acc, _a) {
|
|
34090
|
+
var user = _a.user, user_id = _a.user_id;
|
|
34091
|
+
var userId = user_id || (user === null || user === void 0 ? void 0 : user.id);
|
|
34092
|
+
if (userId) {
|
|
34093
|
+
acc.push(userId);
|
|
34094
|
+
}
|
|
34095
|
+
return acc;
|
|
34096
|
+
}, []),
|
|
34097
|
+
type: event.channel.type,
|
|
34098
|
+
})];
|
|
34022
34099
|
case 2:
|
|
34023
|
-
channel_1 =
|
|
34100
|
+
channel_1 = _c.sent();
|
|
34024
34101
|
setChannels(function (channels) { return uniqBy__default["default"](__spreadArray([channel_1], channels, true), 'cid'); });
|
|
34025
|
-
|
|
34102
|
+
_c.label = 3;
|
|
34026
34103
|
case 3: return [2 /*return*/];
|
|
34027
34104
|
}
|
|
34028
34105
|
});
|
|
@@ -34049,7 +34126,11 @@ var useNotificationMessageNewListener = function (setChannels, customHandler, al
|
|
|
34049
34126
|
return [3 /*break*/, 3];
|
|
34050
34127
|
case 1:
|
|
34051
34128
|
if (!(allowNewMessagesFromUnfilteredChannels && ((_a = event.channel) === null || _a === void 0 ? void 0 : _a.type))) return [3 /*break*/, 3];
|
|
34052
|
-
return [4 /*yield*/, getChannel(
|
|
34129
|
+
return [4 /*yield*/, getChannel({
|
|
34130
|
+
client: client,
|
|
34131
|
+
id: event.channel.id,
|
|
34132
|
+
type: event.channel.type,
|
|
34133
|
+
})];
|
|
34053
34134
|
case 2:
|
|
34054
34135
|
channel_1 = _b.sent();
|
|
34055
34136
|
setChannels(function (channels) { return uniqBy__default["default"](__spreadArray([channel_1], channels, true), 'cid'); });
|
|
@@ -34806,7 +34887,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
34806
34887
|
*/
|
|
34807
34888
|
var ChannelList = React__default["default"].memo(UnMemoizedChannelList);
|
|
34808
34889
|
|
|
34809
|
-
var version = '10.
|
|
34890
|
+
var version = '10.11.0';
|
|
34810
34891
|
|
|
34811
34892
|
var useChat = function (_a) {
|
|
34812
34893
|
var _b, _c;
|
|
@@ -35458,7 +35539,7 @@ notifications) {
|
|
|
35458
35539
|
var reactionHandlerWarning = "Reaction handler was called, but it is missing one of its required arguments.\nMake sure the ChannelAction and ChannelState contexts are properly set and the hook is initialized with a valid message.";
|
|
35459
35540
|
var useReactionHandler = function (message) {
|
|
35460
35541
|
var updateMessage = useChannelActionContext('useReactionHandler').updateMessage;
|
|
35461
|
-
var
|
|
35542
|
+
var _a = useChannelStateContext('useReactionHandler'), channel = _a.channel, channelCapabilities = _a.channelCapabilities;
|
|
35462
35543
|
var client = useChatContext('useReactionHandler').client;
|
|
35463
35544
|
var createMessagePreview = React.useCallback(function (add, reaction, message) {
|
|
35464
35545
|
var _a, _b;
|
|
@@ -35482,7 +35563,7 @@ var useReactionHandler = function (message) {
|
|
|
35482
35563
|
? __spreadArray([reaction], ((message === null || message === void 0 ? void 0 : message.own_reactions) || []), true) : (_b = message === null || message === void 0 ? void 0 : message.own_reactions) === null || _b === void 0 ? void 0 : _b.filter(function (item) { return item.type !== reaction.type; });
|
|
35483
35564
|
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_counts: newReactionCounts, reaction_scores: newReactionCounts });
|
|
35484
35565
|
}, [client.user, client.userID]);
|
|
35485
|
-
var
|
|
35566
|
+
var createReactionPreview = function (type) {
|
|
35486
35567
|
var _a;
|
|
35487
35568
|
return ({
|
|
35488
35569
|
message_id: message === null || message === void 0 ? void 0 : message.id,
|
|
@@ -35494,33 +35575,32 @@ var useReactionHandler = function (message) {
|
|
|
35494
35575
|
};
|
|
35495
35576
|
var toggleReaction = throttle__default["default"](function (id, type, add) { return __awaiter(void 0, void 0, void 0, function () {
|
|
35496
35577
|
var newReaction, tempMessage, messageResponse, _a;
|
|
35497
|
-
|
|
35498
|
-
|
|
35499
|
-
switch (_c.label) {
|
|
35578
|
+
return __generator(this, function (_b) {
|
|
35579
|
+
switch (_b.label) {
|
|
35500
35580
|
case 0:
|
|
35501
|
-
if (!message ||
|
|
35581
|
+
if (!message || !channelCapabilities['send-reaction'])
|
|
35502
35582
|
return [2 /*return*/];
|
|
35503
|
-
newReaction =
|
|
35583
|
+
newReaction = createReactionPreview(type);
|
|
35504
35584
|
tempMessage = createMessagePreview(add, newReaction, message);
|
|
35505
|
-
|
|
35585
|
+
_b.label = 1;
|
|
35506
35586
|
case 1:
|
|
35507
|
-
|
|
35587
|
+
_b.trys.push([1, 6, , 7]);
|
|
35508
35588
|
updateMessage(tempMessage);
|
|
35509
35589
|
if (!add) return [3 /*break*/, 3];
|
|
35510
35590
|
return [4 /*yield*/, channel.sendReaction(id, { type: type })];
|
|
35511
35591
|
case 2:
|
|
35512
|
-
_a =
|
|
35592
|
+
_a = _b.sent();
|
|
35513
35593
|
return [3 /*break*/, 5];
|
|
35514
35594
|
case 3: return [4 /*yield*/, channel.deleteReaction(id, type)];
|
|
35515
35595
|
case 4:
|
|
35516
|
-
_a =
|
|
35517
|
-
|
|
35596
|
+
_a = _b.sent();
|
|
35597
|
+
_b.label = 5;
|
|
35518
35598
|
case 5:
|
|
35519
35599
|
messageResponse = _a;
|
|
35520
35600
|
updateMessage(messageResponse.message);
|
|
35521
35601
|
return [3 /*break*/, 7];
|
|
35522
35602
|
case 6:
|
|
35523
|
-
|
|
35603
|
+
_b.sent();
|
|
35524
35604
|
// revert to the original message if the API call fails
|
|
35525
35605
|
updateMessage(message);
|
|
35526
35606
|
return [3 /*break*/, 7];
|
|
@@ -35575,12 +35655,10 @@ var useReactionHandler = function (message) {
|
|
|
35575
35655
|
}); };
|
|
35576
35656
|
};
|
|
35577
35657
|
var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef, closeReactionSelectorOnClick) {
|
|
35578
|
-
var _a;
|
|
35579
|
-
var _b =
|
|
35580
|
-
var _d = React.useState(false), showDetailedReactions = _d[0], setShowDetailedReactions = _d[1];
|
|
35658
|
+
var _a = useChannelStateContext('useReactionClick').channelCapabilities, channelCapabilities = _a === void 0 ? {} : _a;
|
|
35659
|
+
var _b = React.useState(false), showDetailedReactions = _b[0], setShowDetailedReactions = _b[1];
|
|
35581
35660
|
var hasListener = React.useRef(false);
|
|
35582
|
-
var
|
|
35583
|
-
var isReactionEnabled = ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction']) || isFrozen;
|
|
35661
|
+
var isReactionEnabled = channelCapabilities['send-reaction'];
|
|
35584
35662
|
var messageDeleted = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
|
|
35585
35663
|
var closeDetailedReactions = React.useCallback(function (event) {
|
|
35586
35664
|
var _a;
|
|
@@ -35628,9 +35706,8 @@ var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef
|
|
|
35628
35706
|
}
|
|
35629
35707
|
}, [messageDeleted, closeDetailedReactions, messageWrapperRef]);
|
|
35630
35708
|
var onReactionListClick = function (event) {
|
|
35631
|
-
|
|
35632
|
-
|
|
35633
|
-
}
|
|
35709
|
+
var _a;
|
|
35710
|
+
(_a = event === null || event === void 0 ? void 0 : event.stopPropagation) === null || _a === void 0 ? void 0 : _a.call(event);
|
|
35634
35711
|
setShowDetailedReactions(function (prev) { return !prev; });
|
|
35635
35712
|
};
|
|
35636
35713
|
return {
|