stream-chat-react 10.10.2 → 10.12.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 +181 -70
- 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/ChannelPreview/ChannelPreview.d.ts +3 -0
- package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +6 -1
- package/dist/components/ChannelPreview/hooks/index.d.ts +1 -0
- package/dist/components/ChannelPreview/hooks/index.d.ts.map +1 -1
- package/dist/components/ChannelPreview/hooks/index.js +1 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +17 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts.map +1 -0
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js +58 -0
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +4 -3
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +52 -31
- 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 +167 -70
- package/dist/index.cjs.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
|
@@ -9993,6 +9993,24 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
9993
9993
|
|
|
9994
9994
|
var relativeTime = relativeTime$1.exports;
|
|
9995
9995
|
|
|
9996
|
+
var utc$1 = {exports: {}};
|
|
9997
|
+
|
|
9998
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
9999
|
+
(function (module, exports) {
|
|
10000
|
+
!function(t,i){module.exports=i();}(commonjsGlobal,function(){return function(t,i,e){var s=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments})},s.utc=function(t){var i=e(this.toDate(),{locale:this.$L,utc:!0});return t?i.add(this.utcOffset(),"minute"):i},s.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var f=s.parse;s.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),f.call(this,t);};var n=s.init;s.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds();}else n.call(this);};var u=s.utcOffset;s.utcOffset=function(t,i){var e=this.$utils().u;if(e(t))return this.$u?0:e(this.$offset)?u.call(this):this.$offset;var s=Math.abs(t)<=16?60*t:t,f=this;if(i)return f.$offset=s,f.$u=0===t,f;if(0!==t){var n=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(f=this.local().add(s+n,"minute")).$offset=s,f.$x.$localOffset=n;}else f=this.utc();return f};var o=s.format;s.format=function(t){var i=t||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return o.call(this,i)},s.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},s.isUTC=function(){return !!this.$u},s.toISOString=function(){return this.toDate().toISOString()},s.toString=function(){return this.toDate().toUTCString()};var r=s.toDate;s.toDate=function(t){return "s"===t&&this.$offset?e(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():r.call(this)};var a=s.diff;s.diff=function(t,i,s){if(t&&this.$u===t.$u)return a.call(this,t,i,s);var f=this.local(),n=e(t).local();return a.call(f,n,i,s)};}});
|
|
10001
|
+
} (utc$1));
|
|
10002
|
+
|
|
10003
|
+
var utc = utc$1.exports;
|
|
10004
|
+
|
|
10005
|
+
var timezone$1 = {exports: {}};
|
|
10006
|
+
|
|
10007
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
10008
|
+
(function (module, exports) {
|
|
10009
|
+
!function(t,e){module.exports=e();}(commonjsGlobal,function(){var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,r){var o,u=r().utcOffset(),a=function(t,n,i){void 0===i&&(i={});var r=new Date(t);return function(t,n){void 0===n&&(n={});var i=n.timeZoneName||"short",r=t+"|"+i,o=e[r];return o||(o=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:i}),e[r]=o),o}(n,i).formatToParts(r)},f=function(e,n){for(var i=a(e,n),o=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(o[c]=parseInt(m,10));}var d=o[3],v=24===d?0:d,h=o[0]+"-"+o[1]+"-"+o[2]+" "+v+":"+o[4]+":"+o[5]+":000",l=+e;return (r.utc(h).valueOf()-(l-=l%1e3))/6e4},s=i.prototype;s.tz=function(t,e){void 0===t&&(t=o);var n=this.utcOffset(),i=this.toDate().toLocaleString("en-US",{timeZone:t}),a=Math.round((this.toDate()-new Date(i))/1e3/60),f=r(i).$set("millisecond",this.$ms).utcOffset(u-a,!0);if(e){var s=f.utcOffset();f=f.add(n-s,"minute");}return f.$x.$timezone=t,f},s.offsetName=function(t){var e=this.$x.$timezone||r.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find(function(t){return "timezonename"===t.type.toLowerCase()});return n&&n.value};var m=s.startOf;s.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return m.call(this,t,e);var n=r(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return m.call(n,t,e).tz(this.$x.$timezone,!0)},r.tz=function(t,e,n){var i=n&&e,u=n||e||o,a=f(+r(),u);if("string"!=typeof t)return r(t).tz(u);var s=function(t,e,n){var i=t-60*e*1e3,r=f(i,n);if(e===r)return [i,e];var o=f(i-=60*(r-e)*1e3,n);return r===o?[i,r]:[t-60*Math.min(r,o)*1e3,Math.max(r,o)]}(r.utc(t,i).valueOf(),a,u),m=s[0],c=s[1],d=r(m).utcOffset(c);return d.$x.$timezone=u,d},r.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},r.tz.setDefault=function(t){o=t;};}});
|
|
10010
|
+
} (timezone$1));
|
|
10011
|
+
|
|
10012
|
+
var timezone = timezone$1.exports;
|
|
10013
|
+
|
|
9996
10014
|
var de$3 = {exports: {}};
|
|
9997
10015
|
|
|
9998
10016
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
@@ -10080,6 +10098,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
10080
10098
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var defaultNS = 'translation';
|
|
10081
10099
|
var defaultLng = 'en';
|
|
10082
10100
|
dayjs_minExports.extend(updateLocale);
|
|
10101
|
+
dayjs_minExports.extend(utc);
|
|
10102
|
+
dayjs_minExports.extend(timezone);
|
|
10083
10103
|
dayjs_minExports.updateLocale('de', {
|
|
10084
10104
|
calendar: {
|
|
10085
10105
|
lastDay: '[gestern um] LT',
|
|
@@ -10248,6 +10268,9 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
10248
10268
|
var isDayJs = function (dateTimeParser) {
|
|
10249
10269
|
return dateTimeParser.extend !== undefined;
|
|
10250
10270
|
};
|
|
10271
|
+
var supportsTz = function (dateTimeParser) {
|
|
10272
|
+
return dateTimeParser.tz !== undefined;
|
|
10273
|
+
};
|
|
10251
10274
|
/**
|
|
10252
10275
|
* Wrapper around [i18next](https://www.i18next.com/) class for Stream related translations.
|
|
10253
10276
|
* Instance of this class should be provided to Chat component to handle translations.
|
|
@@ -10491,6 +10514,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
10491
10514
|
this.logger = finalOptions.logger;
|
|
10492
10515
|
this.currentLanguage = finalOptions.language;
|
|
10493
10516
|
this.DateTimeParser = finalOptions.DateTimeParser;
|
|
10517
|
+
this.timezone = finalOptions.timezone;
|
|
10494
10518
|
try {
|
|
10495
10519
|
if (this.DateTimeParser && isDayJs(this.DateTimeParser)) {
|
|
10496
10520
|
this.DateTimeParser.extend(localizedFormat);
|
|
@@ -10540,19 +10564,18 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
10540
10564
|
"register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)");
|
|
10541
10565
|
}
|
|
10542
10566
|
this.tDateTimeParser = function (timestamp) {
|
|
10543
|
-
|
|
10544
|
-
|
|
10545
|
-
|
|
10546
|
-
*/
|
|
10547
|
-
if (isDayJs(_this.DateTimeParser)) {
|
|
10548
|
-
return _this.DateTimeParser(timestamp).locale(defaultLng);
|
|
10549
|
-
}
|
|
10550
|
-
return _this.DateTimeParser(timestamp).locale(defaultLng);
|
|
10551
|
-
}
|
|
10567
|
+
var language = finalOptions.disableDateTimeTranslations || !_this.localeExists(_this.currentLanguage)
|
|
10568
|
+
? defaultLng
|
|
10569
|
+
: _this.currentLanguage;
|
|
10552
10570
|
if (isDayJs(_this.DateTimeParser)) {
|
|
10553
|
-
return _this.DateTimeParser
|
|
10571
|
+
return supportsTz(_this.DateTimeParser)
|
|
10572
|
+
? _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language)
|
|
10573
|
+
: _this.DateTimeParser(timestamp).locale(language);
|
|
10574
|
+
}
|
|
10575
|
+
if (supportsTz(_this.DateTimeParser) && _this.timezone) {
|
|
10576
|
+
return _this.DateTimeParser(timestamp).tz(_this.timezone).locale(language);
|
|
10554
10577
|
}
|
|
10555
|
-
return _this.DateTimeParser(timestamp).locale(
|
|
10578
|
+
return _this.DateTimeParser(timestamp).locale(language);
|
|
10556
10579
|
};
|
|
10557
10580
|
}
|
|
10558
10581
|
/**
|
|
@@ -42937,7 +42960,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
42937
42960
|
}, 1000);
|
|
42938
42961
|
return function () { return clearInterval(countdownInterval); };
|
|
42939
42962
|
});
|
|
42940
|
-
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds
|
|
42963
|
+
return (React__default["default"].createElement("div", { className: 'str-chat__message-input-cooldown', "data-testid": 'cooldown-timer' }, seconds));
|
|
42941
42964
|
};
|
|
42942
42965
|
|
|
42943
42966
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useCommandTrigger = function () {
|
|
@@ -43653,9 +43676,12 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
43653
43676
|
}, [messages, (_a = client.user) === null || _a === void 0 ? void 0 : _a.id, latestMessageDatesByChannels, channel.cid]);
|
|
43654
43677
|
React$2.useEffect(function () {
|
|
43655
43678
|
var timeSinceOwnLastMessage = ownLatestMessageDate
|
|
43656
|
-
?
|
|
43679
|
+
? // prevent negative values
|
|
43680
|
+
Math.max(0, (new Date().getTime() - ownLatestMessageDate.getTime()) / 1000)
|
|
43657
43681
|
: undefined;
|
|
43658
|
-
setCooldownRemaining(!skipCooldown &&
|
|
43682
|
+
setCooldownRemaining(!skipCooldown &&
|
|
43683
|
+
typeof timeSinceOwnLastMessage !== 'undefined' &&
|
|
43684
|
+
cooldownInterval > timeSinceOwnLastMessage
|
|
43659
43685
|
? Math.round(cooldownInterval - timeSinceOwnLastMessage)
|
|
43660
43686
|
: 0);
|
|
43661
43687
|
}, [cooldownInterval, ownLatestMessageDate, skipCooldown]);
|
|
@@ -45098,6 +45124,13 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
45098
45124
|
if (message.deleted_at || message.type === 'deleted') {
|
|
45099
45125
|
return React__default["default"].createElement(MessageDeleted$1, { message: message });
|
|
45100
45126
|
}
|
|
45127
|
+
/** FIXME: isReactionEnabled should be removed with next major version and a proper centralized permissions logic should be put in place
|
|
45128
|
+
* With the current permissions implementation it would be sth like:
|
|
45129
|
+
* const messageActions = getMessageActions();
|
|
45130
|
+
* const canReact = messageActions.includes(MESSAGE_ACTIONS.react);
|
|
45131
|
+
*/
|
|
45132
|
+
var canReact = isReactionEnabled;
|
|
45133
|
+
var canShowReactions = hasReactions;
|
|
45101
45134
|
var showMetadata = !groupedByUser || endOfGroup;
|
|
45102
45135
|
var showReplyCountButton = !threadList && !!message.reply_count;
|
|
45103
45136
|
var allowRetry = message.status === 'failed' && message.errorStatusCode !== 403;
|
|
@@ -45107,7 +45140,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
45107
45140
|
'pinned-message': message.pinned,
|
|
45108
45141
|
'str-chat__message--has-attachment': hasAttachment,
|
|
45109
45142
|
'str-chat__message--highlighted': highlighted,
|
|
45110
|
-
'str-chat__message--with-reactions str-chat__message-with-thread-link':
|
|
45143
|
+
'str-chat__message--with-reactions str-chat__message-with-thread-link': canShowReactions,
|
|
45111
45144
|
'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,
|
|
45112
45145
|
'str-chat__virtual-message__wrapper--end': endOfGroup,
|
|
45113
45146
|
'str-chat__virtual-message__wrapper--first': firstOfGroup,
|
|
@@ -45124,8 +45157,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
45124
45157
|
}), "data-testid": 'message-inner', onClick: allowRetry ? function () { return handleRetry(message); } : undefined, onKeyUp: allowRetry ? function () { return handleRetry(message); } : undefined },
|
|
45125
45158
|
React__default["default"].createElement(MessageOptions$1, null),
|
|
45126
45159
|
React__default["default"].createElement("div", { className: 'str-chat__message-reactions-host' },
|
|
45127
|
-
|
|
45128
|
-
showDetailedReactions &&
|
|
45160
|
+
canShowReactions && React__default["default"].createElement(ReactionsList$1, { reverse: true }),
|
|
45161
|
+
showDetailedReactions && canReact && React__default["default"].createElement(ReactionSelector$1, { ref: reactionSelectorRef })),
|
|
45129
45162
|
React__default["default"].createElement("div", { className: 'str-chat__message-bubble' },
|
|
45130
45163
|
((_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,
|
|
45131
45164
|
React__default["default"].createElement(MessageText, { message: message, renderText: renderText }),
|
|
@@ -46801,6 +46834,63 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46801
46834
|
return muted;
|
|
46802
46835
|
};
|
|
46803
46836
|
|
|
46837
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};exports.MessageDeliveryStatus = void 0;
|
|
46838
|
+
(function (MessageDeliveryStatus) {
|
|
46839
|
+
MessageDeliveryStatus["DELIVERED"] = "delivered";
|
|
46840
|
+
MessageDeliveryStatus["READ"] = "read";
|
|
46841
|
+
})(exports.MessageDeliveryStatus || (exports.MessageDeliveryStatus = {}));
|
|
46842
|
+
var useMessageDeliveryStatus = function (_a) {
|
|
46843
|
+
var channel = _a.channel, lastMessage = _a.lastMessage;
|
|
46844
|
+
var client = useChatContext().client;
|
|
46845
|
+
var _b = React$2.useState(), messageDeliveryStatus = _b[0], setMessageDeliveryStatus = _b[1];
|
|
46846
|
+
var isOwnMessage = React$2.useCallback(function (message) { var _a; return client.user && ((_a = message === null || message === void 0 ? void 0 : message.user) === null || _a === void 0 ? void 0 : _a.id) === client.user.id; }, [client]);
|
|
46847
|
+
React$2.useEffect(function () {
|
|
46848
|
+
var lastMessageIsOwn = isOwnMessage(lastMessage);
|
|
46849
|
+
if (!(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.created_at) || !lastMessageIsOwn)
|
|
46850
|
+
return;
|
|
46851
|
+
var lastMessageCreatedAtDate = typeof lastMessage.created_at === 'string'
|
|
46852
|
+
? new Date(lastMessage.created_at)
|
|
46853
|
+
: lastMessage.created_at;
|
|
46854
|
+
var channelReadByOthersAfterLastMessageUpdate = Object.values(channel.state.read).some(function (_a) {
|
|
46855
|
+
var channelLastMarkedReadDate = _a.last_read, user = _a.user;
|
|
46856
|
+
var ignoreOwnReadStatus = client.user && user.id !== client.user.id;
|
|
46857
|
+
return ignoreOwnReadStatus && lastMessageCreatedAtDate < channelLastMarkedReadDate;
|
|
46858
|
+
});
|
|
46859
|
+
setMessageDeliveryStatus(channelReadByOthersAfterLastMessageUpdate
|
|
46860
|
+
? exports.MessageDeliveryStatus.READ
|
|
46861
|
+
: exports.MessageDeliveryStatus.DELIVERED);
|
|
46862
|
+
}, [channel.state.read, client, isOwnMessage, lastMessage]);
|
|
46863
|
+
React$2.useEffect(function () {
|
|
46864
|
+
var handleMessageNew = function (event) {
|
|
46865
|
+
// the last message is not mine, so do not show the delivery status
|
|
46866
|
+
if (!isOwnMessage(event.message)) {
|
|
46867
|
+
return setMessageDeliveryStatus(undefined);
|
|
46868
|
+
}
|
|
46869
|
+
return setMessageDeliveryStatus(exports.MessageDeliveryStatus.DELIVERED);
|
|
46870
|
+
};
|
|
46871
|
+
channel.on('message.new', handleMessageNew);
|
|
46872
|
+
return function () {
|
|
46873
|
+
channel.off('message.new', handleMessageNew);
|
|
46874
|
+
};
|
|
46875
|
+
}, [channel, client, isOwnMessage]);
|
|
46876
|
+
React$2.useEffect(function () {
|
|
46877
|
+
if (!isOwnMessage(lastMessage))
|
|
46878
|
+
return;
|
|
46879
|
+
var handleMarkRead = function (event) {
|
|
46880
|
+
var _a, _b;
|
|
46881
|
+
if (((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) !== ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id))
|
|
46882
|
+
setMessageDeliveryStatus(exports.MessageDeliveryStatus.READ);
|
|
46883
|
+
};
|
|
46884
|
+
channel.on('message.read', handleMarkRead);
|
|
46885
|
+
return function () {
|
|
46886
|
+
channel.off('message.read', handleMarkRead);
|
|
46887
|
+
};
|
|
46888
|
+
}, [channel, client, lastMessage, isOwnMessage]);
|
|
46889
|
+
return {
|
|
46890
|
+
messageDeliveryStatus: messageDeliveryStatus,
|
|
46891
|
+
};
|
|
46892
|
+
};
|
|
46893
|
+
|
|
46804
46894
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var ChannelPreview = function (props) {
|
|
46805
46895
|
var channel = props.channel, _a = props.Preview, Preview = _a === void 0 ? ChannelPreviewMessenger : _a, channelUpdateCount = props.channelUpdateCount;
|
|
46806
46896
|
var _b = useChatContext('ChannelPreview'), activeChannel = _b.channel, client = _b.client, setActiveChannel = _b.setActiveChannel;
|
|
@@ -46808,6 +46898,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46808
46898
|
var _d = useChannelPreviewInfo({ channel: channel }), displayImage = _d.displayImage, displayTitle = _d.displayTitle;
|
|
46809
46899
|
var _e = React$2.useState(channel.state.messages[channel.state.messages.length - 1]), lastMessage = _e[0], setLastMessage = _e[1];
|
|
46810
46900
|
var _f = React$2.useState(0), unread = _f[0], setUnread = _f[1];
|
|
46901
|
+
var messageDeliveryStatus = useMessageDeliveryStatus({
|
|
46902
|
+
channel: channel,
|
|
46903
|
+
lastMessage: lastMessage,
|
|
46904
|
+
}).messageDeliveryStatus;
|
|
46811
46905
|
var isActive = (activeChannel === null || activeChannel === void 0 ? void 0 : activeChannel.cid) === channel.cid;
|
|
46812
46906
|
var muted = useIsChannelMuted(channel).muted;
|
|
46813
46907
|
React$2.useEffect(function () {
|
|
@@ -46847,24 +46941,29 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46847
46941
|
if (!Preview)
|
|
46848
46942
|
return null;
|
|
46849
46943
|
var latestMessage = getLatestMessagePreview(channel, t, userLanguage);
|
|
46850
|
-
return (React__default["default"].createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, setActiveChannel: setActiveChannel, unread: unread })));
|
|
46944
|
+
return (React__default["default"].createElement(Preview, __assign({}, props, { active: isActive, displayImage: displayImage, displayTitle: displayTitle, lastMessage: lastMessage, latestMessage: latestMessage, messageDeliveryStatus: messageDeliveryStatus, setActiveChannel: setActiveChannel, unread: unread })));
|
|
46851
46945
|
};
|
|
46852
46946
|
|
|
46853
46947
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var isChannel = function (output) { return output.cid != null; };
|
|
46854
46948
|
|
|
46855
46949
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChannelSearch = function (_a) {
|
|
46856
|
-
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchForChannels, searchForChannels =
|
|
46857
|
-
var
|
|
46858
|
-
var
|
|
46859
|
-
var
|
|
46860
|
-
var
|
|
46861
|
-
var
|
|
46950
|
+
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchDebounceIntervalMs, searchDebounceIntervalMs = _e === void 0 ? 300 : _e, _f = _a.searchForChannels, searchForChannels = _f === void 0 ? false : _f, searchFunction = _a.searchFunction, searchQueryParams = _a.searchQueryParams, setChannels = _a.setChannels;
|
|
46951
|
+
var _g = useChatContext('useChannelSearch'), client = _g.client, setActiveChannel = _g.setActiveChannel, themeVersion = _g.themeVersion;
|
|
46952
|
+
var _h = React$2.useState(false), inputIsFocused = _h[0], setInputIsFocused = _h[1];
|
|
46953
|
+
var _j = React$2.useState(''), query = _j[0], setQuery = _j[1];
|
|
46954
|
+
var _k = React$2.useState([]), results = _k[0], setResults = _k[1];
|
|
46955
|
+
var _l = React$2.useState(false), searching = _l[0], setSearching = _l[1];
|
|
46956
|
+
var searchQueryPromiseInProgress = React$2.useRef();
|
|
46957
|
+
var shouldIgnoreQueryResults = React$2.useRef(false);
|
|
46862
46958
|
var inputRef = React$2.useRef(null);
|
|
46863
46959
|
var searchBarRef = React$2.useRef(null);
|
|
46864
46960
|
var clearState = React$2.useCallback(function () {
|
|
46865
46961
|
setQuery('');
|
|
46866
46962
|
setResults([]);
|
|
46867
46963
|
setSearching(false);
|
|
46964
|
+
if (searchQueryPromiseInProgress.current) {
|
|
46965
|
+
shouldIgnoreQueryResults.current = true;
|
|
46966
|
+
}
|
|
46868
46967
|
}, []);
|
|
46869
46968
|
var activateSearch = React$2.useCallback(function () {
|
|
46870
46969
|
setInputIsFocused(true);
|
|
@@ -46947,45 +47046,56 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46947
47046
|
});
|
|
46948
47047
|
}); }, [clearSearchOnClickOutside, client, exitSearch, onSelectResult, setActiveChannel, setChannels]);
|
|
46949
47048
|
var getChannels = React$2.useCallback(function (text) { return __awaiter(void 0, void 0, void 0, function () {
|
|
46950
|
-
var
|
|
47049
|
+
var results, userQueryPromise, users, channelQueryPromise, _a, channels, users, error_1;
|
|
46951
47050
|
var _b, _c, _d, _e, _f, _g;
|
|
46952
47051
|
return __generator(this, function (_h) {
|
|
46953
47052
|
switch (_h.label) {
|
|
46954
47053
|
case 0:
|
|
46955
|
-
|
|
46956
|
-
return [2 /*return*/];
|
|
46957
|
-
setSearching(true);
|
|
47054
|
+
results = [];
|
|
46958
47055
|
_h.label = 1;
|
|
46959
47056
|
case 1:
|
|
46960
47057
|
_h.trys.push([1, 6, , 7]);
|
|
46961
|
-
|
|
47058
|
+
userQueryPromise = client.queryUsers(__assign({ $or: [{ id: { $autocomplete: text } }, { name: { $autocomplete: text } }], id: { $ne: client.userID } }, (_b = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _b === void 0 ? void 0 : _b.filters), __assign({ id: 1 }, (_c = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _c === void 0 ? void 0 : _c.sort), __assign({ limit: 8 }, (_d = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.userFilters) === null || _d === void 0 ? void 0 : _d.options));
|
|
47059
|
+
if (!!searchForChannels) return [3 /*break*/, 3];
|
|
47060
|
+
searchQueryPromiseInProgress.current = userQueryPromise;
|
|
47061
|
+
return [4 /*yield*/, searchQueryPromiseInProgress.current];
|
|
46962
47062
|
case 2:
|
|
46963
|
-
userResponse = _h.sent();
|
|
46964
|
-
if (!searchForChannels) return [3 /*break*/, 4];
|
|
46965
|
-
channelResponse = client.queryChannels(__assign({ name: { $autocomplete: text } }, (_e = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _e === void 0 ? void 0 : _e.filters), ((_f = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _f === void 0 ? void 0 : _f.sort) || {}, __assign({ limit: 5 }, (_g = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _g === void 0 ? void 0 : _g.options));
|
|
46966
|
-
return [4 /*yield*/, Promise.all([channelResponse, userResponse])];
|
|
46967
|
-
case 3:
|
|
46968
|
-
_a = _h.sent(), channels = _a[0], users_1 = _a[1].users;
|
|
46969
|
-
setResults(__spreadArray(__spreadArray([], channels, true), users_1, true));
|
|
46970
|
-
setSearching(false);
|
|
46971
|
-
return [2 /*return*/];
|
|
46972
|
-
case 4: return [4 /*yield*/, Promise.resolve(userResponse)];
|
|
46973
|
-
case 5:
|
|
46974
47063
|
users = (_h.sent()).users;
|
|
46975
|
-
|
|
46976
|
-
return [3 /*break*/,
|
|
47064
|
+
results = users;
|
|
47065
|
+
return [3 /*break*/, 5];
|
|
47066
|
+
case 3:
|
|
47067
|
+
channelQueryPromise = client.queryChannels(__assign({ name: { $autocomplete: text } }, (_e = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _e === void 0 ? void 0 : _e.filters), ((_f = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _f === void 0 ? void 0 : _f.sort) || {}, __assign({ limit: 5 }, (_g = searchQueryParams === null || searchQueryParams === void 0 ? void 0 : searchQueryParams.channelFilters) === null || _g === void 0 ? void 0 : _g.options));
|
|
47068
|
+
searchQueryPromiseInProgress.current = Promise.all([
|
|
47069
|
+
channelQueryPromise,
|
|
47070
|
+
userQueryPromise,
|
|
47071
|
+
]);
|
|
47072
|
+
return [4 /*yield*/, searchQueryPromiseInProgress.current];
|
|
47073
|
+
case 4:
|
|
47074
|
+
_a = _h.sent(), channels = _a[0], users = _a[1].users;
|
|
47075
|
+
results = __spreadArray(__spreadArray([], channels, true), users, true);
|
|
47076
|
+
_h.label = 5;
|
|
47077
|
+
case 5: return [3 /*break*/, 7];
|
|
46977
47078
|
case 6:
|
|
46978
47079
|
error_1 = _h.sent();
|
|
46979
|
-
clearState();
|
|
46980
47080
|
console.error(error_1);
|
|
46981
47081
|
return [3 /*break*/, 7];
|
|
46982
47082
|
case 7:
|
|
46983
47083
|
setSearching(false);
|
|
47084
|
+
if (!shouldIgnoreQueryResults.current) {
|
|
47085
|
+
setResults(results);
|
|
47086
|
+
}
|
|
47087
|
+
else {
|
|
47088
|
+
shouldIgnoreQueryResults.current = false;
|
|
47089
|
+
}
|
|
47090
|
+
searchQueryPromiseInProgress.current = undefined;
|
|
46984
47091
|
return [2 /*return*/];
|
|
46985
47092
|
}
|
|
46986
47093
|
});
|
|
46987
|
-
}); }, [client,
|
|
46988
|
-
var
|
|
47094
|
+
}); }, [client, searchForChannels, searchQueryParams]);
|
|
47095
|
+
var scheduleGetChannels = React$2.useCallback(lodash_debounce(getChannels, searchDebounceIntervalMs), [
|
|
47096
|
+
getChannels,
|
|
47097
|
+
searchDebounceIntervalMs,
|
|
47098
|
+
]);
|
|
46989
47099
|
var onSearch = React$2.useCallback(function (event) {
|
|
46990
47100
|
event.preventDefault();
|
|
46991
47101
|
if (disabled)
|
|
@@ -46997,12 +47107,17 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
46997
47107
|
setSearching: setSearching,
|
|
46998
47108
|
}, event);
|
|
46999
47109
|
}
|
|
47000
|
-
else {
|
|
47110
|
+
else if (event.target.value) {
|
|
47111
|
+
setSearching(true);
|
|
47001
47112
|
setQuery(event.target.value);
|
|
47002
|
-
|
|
47113
|
+
scheduleGetChannels(event.target.value);
|
|
47114
|
+
}
|
|
47115
|
+
else if (!event.target.value) {
|
|
47116
|
+
clearState();
|
|
47117
|
+
scheduleGetChannels.cancel();
|
|
47003
47118
|
}
|
|
47004
47119
|
onSearchCallback === null || onSearchCallback === void 0 ? void 0 : onSearchCallback(event);
|
|
47005
|
-
}, [disabled,
|
|
47120
|
+
}, [clearState, disabled, scheduleGetChannels, onSearchCallback, searchFunction]);
|
|
47006
47121
|
return {
|
|
47007
47122
|
activateSearch: activateSearch,
|
|
47008
47123
|
clearState: clearState,
|
|
@@ -47407,7 +47522,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
47407
47522
|
|
|
47408
47523
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};
|
|
47409
47524
|
|
|
47410
|
-
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.
|
|
47525
|
+
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var version$1 = '10.12.0';
|
|
47411
47526
|
|
|
47412
47527
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};var useChat = function (_a) {
|
|
47413
47528
|
var _b, _c;
|
|
@@ -48075,7 +48190,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
48075
48190
|
window.StreamChat.StreamChat=StreamChat;window.StreamChat.logChatPromiseExecution=logChatPromiseExecution;window.StreamChat.Channel=Channel;window.ICAL=window.ICAL||{};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.";
|
|
48076
48191
|
var useReactionHandler = function (message) {
|
|
48077
48192
|
var updateMessage = useChannelActionContext('useReactionHandler').updateMessage;
|
|
48078
|
-
var
|
|
48193
|
+
var _a = useChannelStateContext('useReactionHandler'), channel = _a.channel, channelCapabilities = _a.channelCapabilities;
|
|
48079
48194
|
var client = useChatContext('useReactionHandler').client;
|
|
48080
48195
|
var createMessagePreview = React$2.useCallback(function (add, reaction, message) {
|
|
48081
48196
|
var _a, _b;
|
|
@@ -48099,7 +48214,7 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
48099
48214
|
? __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; });
|
|
48100
48215
|
return __assign(__assign({}, message), { latest_reactions: newReactions || message.latest_reactions, own_reactions: newOwnReactions, reaction_counts: newReactionCounts, reaction_scores: newReactionCounts });
|
|
48101
48216
|
}, [client.user, client.userID]);
|
|
48102
|
-
var
|
|
48217
|
+
var createReactionPreview = function (type) {
|
|
48103
48218
|
var _a;
|
|
48104
48219
|
return ({
|
|
48105
48220
|
message_id: message === null || message === void 0 ? void 0 : message.id,
|
|
@@ -48111,33 +48226,32 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
48111
48226
|
};
|
|
48112
48227
|
var toggleReaction = lodash_throttle(function (id, type, add) { return __awaiter(void 0, void 0, void 0, function () {
|
|
48113
48228
|
var newReaction, tempMessage, messageResponse, _a;
|
|
48114
|
-
|
|
48115
|
-
|
|
48116
|
-
switch (_c.label) {
|
|
48229
|
+
return __generator(this, function (_b) {
|
|
48230
|
+
switch (_b.label) {
|
|
48117
48231
|
case 0:
|
|
48118
|
-
if (!message ||
|
|
48232
|
+
if (!message || !channelCapabilities['send-reaction'])
|
|
48119
48233
|
return [2 /*return*/];
|
|
48120
|
-
newReaction =
|
|
48234
|
+
newReaction = createReactionPreview(type);
|
|
48121
48235
|
tempMessage = createMessagePreview(add, newReaction, message);
|
|
48122
|
-
|
|
48236
|
+
_b.label = 1;
|
|
48123
48237
|
case 1:
|
|
48124
|
-
|
|
48238
|
+
_b.trys.push([1, 6, , 7]);
|
|
48125
48239
|
updateMessage(tempMessage);
|
|
48126
48240
|
if (!add) return [3 /*break*/, 3];
|
|
48127
48241
|
return [4 /*yield*/, channel.sendReaction(id, { type: type })];
|
|
48128
48242
|
case 2:
|
|
48129
|
-
_a =
|
|
48243
|
+
_a = _b.sent();
|
|
48130
48244
|
return [3 /*break*/, 5];
|
|
48131
48245
|
case 3: return [4 /*yield*/, channel.deleteReaction(id, type)];
|
|
48132
48246
|
case 4:
|
|
48133
|
-
_a =
|
|
48134
|
-
|
|
48247
|
+
_a = _b.sent();
|
|
48248
|
+
_b.label = 5;
|
|
48135
48249
|
case 5:
|
|
48136
48250
|
messageResponse = _a;
|
|
48137
48251
|
updateMessage(messageResponse.message);
|
|
48138
48252
|
return [3 /*break*/, 7];
|
|
48139
48253
|
case 6:
|
|
48140
|
-
|
|
48254
|
+
_b.sent();
|
|
48141
48255
|
// revert to the original message if the API call fails
|
|
48142
48256
|
updateMessage(message);
|
|
48143
48257
|
return [3 /*break*/, 7];
|
|
@@ -48192,12 +48306,10 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
48192
48306
|
}); };
|
|
48193
48307
|
};
|
|
48194
48308
|
var useReactionClick = function (message, reactionSelectorRef, messageWrapperRef, closeReactionSelectorOnClick) {
|
|
48195
|
-
var _a;
|
|
48196
|
-
var _b =
|
|
48197
|
-
var _d = React$2.useState(false), showDetailedReactions = _d[0], setShowDetailedReactions = _d[1];
|
|
48309
|
+
var _a = useChannelStateContext('useReactionClick').channelCapabilities, channelCapabilities = _a === void 0 ? {} : _a;
|
|
48310
|
+
var _b = React$2.useState(false), showDetailedReactions = _b[0], setShowDetailedReactions = _b[1];
|
|
48198
48311
|
var hasListener = React$2.useRef(false);
|
|
48199
|
-
var
|
|
48200
|
-
var isReactionEnabled = ((channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.reactions) !== false && channelCapabilities['send-reaction']) || isFrozen;
|
|
48312
|
+
var isReactionEnabled = channelCapabilities['send-reaction'];
|
|
48201
48313
|
var messageDeleted = !!(message === null || message === void 0 ? void 0 : message.deleted_at);
|
|
48202
48314
|
var closeDetailedReactions = React$2.useCallback(function (event) {
|
|
48203
48315
|
var _a;
|
|
@@ -48245,9 +48357,8 @@ var StreamChatReact = (function (exports, React$2, streamChat, ReactDOM) {
|
|
|
48245
48357
|
}
|
|
48246
48358
|
}, [messageDeleted, closeDetailedReactions, messageWrapperRef]);
|
|
48247
48359
|
var onReactionListClick = function (event) {
|
|
48248
|
-
|
|
48249
|
-
|
|
48250
|
-
}
|
|
48360
|
+
var _a;
|
|
48361
|
+
(_a = event === null || event === void 0 ? void 0 : event.stopPropagation) === null || _a === void 0 ? void 0 : _a.call(event);
|
|
48251
48362
|
setShowDetailedReactions(function (prev) { return !prev; });
|
|
48252
48363
|
};
|
|
48253
48364
|
return {
|