stream-chat-react 9.1.2 → 9.1.5
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 +225 -162
- 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 +1 -1
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +3 -6
- package/dist/components/Message/Message.d.ts.map +1 -1
- package/dist/components/Message/Message.js +2 -5
- package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/components/Message/hooks/useUserRole.js +17 -3
- package/dist/components/Message/utils.d.ts +1 -2
- package/dist/components/Message/utils.d.ts.map +1 -1
- package/dist/components/Message/utils.js +18 -23
- package/dist/components/MessageActions/MessageActionsBox.js +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +0 -2
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +11 -8
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts +1 -1
- package/dist/components/MessageList/hooks/usePrependMessagesCount.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/usePrependMessagesCount.js +3 -2
- package/dist/components/Thread/Thread.d.ts +6 -5
- package/dist/components/Thread/Thread.d.ts.map +1 -1
- package/dist/components/Thread/Thread.js +9 -16
- package/dist/css/index.css +1 -1
- package/dist/index.cjs.js +60 -50
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Message.scss +1 -1
- package/dist/stories/hello.stories.d.ts +1 -0
- package/dist/stories/hello.stories.d.ts.map +1 -1
- package/dist/stories/hello.stories.js +10 -1
- package/dist/stories/toggle-message-actions.stories.d.ts +3 -0
- package/dist/stories/toggle-message-actions.stories.d.ts.map +1 -0
- package/dist/stories/toggle-message-actions.stories.js +36 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -6
package/dist/index.cjs.js
CHANGED
|
@@ -2866,12 +2866,26 @@ var useUserRole = function (message, onlySenderCanEdit, disableQuotedMessages) {
|
|
|
2866
2866
|
var _a, _b, _c;
|
|
2867
2867
|
var _d = useChannelStateContext('useUserRole'), channel = _d.channel, _e = _d.channelCapabilities, channelCapabilities = _e === void 0 ? {} : _e, channelConfig = _d.channelConfig;
|
|
2868
2868
|
var client = useChatContext('useUserRole').client;
|
|
2869
|
+
/**
|
|
2870
|
+
* @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
|
|
2871
|
+
* `isAdmin` will be removed in future release. See `channelCapabilities`.
|
|
2872
|
+
*/
|
|
2869
2873
|
var isAdmin = ((_a = client.user) === null || _a === void 0 ? void 0 : _a.role) === 'admin' || channel.state.membership.role === 'admin';
|
|
2870
|
-
|
|
2874
|
+
/**
|
|
2875
|
+
* @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
|
|
2876
|
+
* `isOwner` will be removed in future release. See `channelCapabilities`.
|
|
2877
|
+
*/
|
|
2871
2878
|
var isOwner = channel.state.membership.role === 'owner';
|
|
2872
|
-
|
|
2879
|
+
/**
|
|
2880
|
+
* @deprecated as it relies on `membership.role` check which is already deprecated and shouldn't be used anymore.
|
|
2881
|
+
* `isModerator` will be removed in future release. See `channelCapabilities`.
|
|
2882
|
+
*/
|
|
2883
|
+
var isModerator = ((_b = client.user) === null || _b === void 0 ? void 0 : _b.role) === 'channel_moderator' ||
|
|
2873
2884
|
channel.state.membership.role === 'channel_moderator' ||
|
|
2874
|
-
channel.state.membership.role === 'moderator'
|
|
2885
|
+
channel.state.membership.role === 'moderator' ||
|
|
2886
|
+
channel.state.membership.is_moderator === true ||
|
|
2887
|
+
channel.state.membership.channel_role === 'channel_moderator';
|
|
2888
|
+
var isMyMessage = client.userID === ((_c = message.user) === null || _c === void 0 ? void 0 : _c.id);
|
|
2875
2889
|
var canEdit = (!onlySenderCanEdit && channelCapabilities['update-any-message']) ||
|
|
2876
2890
|
(isMyMessage && channelCapabilities['update-own-message']);
|
|
2877
2891
|
var canDelete = channelCapabilities['delete-any-message'] ||
|
|
@@ -3092,18 +3106,9 @@ var showMessageActionsBox = function (actions, inThread) {
|
|
|
3092
3106
|
}
|
|
3093
3107
|
return true;
|
|
3094
3108
|
};
|
|
3095
|
-
var
|
|
3109
|
+
var areMessagesEqual = function (prevMessage, nextMessage) {
|
|
3096
3110
|
var _a, _b, _c, _d, _e, _f;
|
|
3097
|
-
|
|
3098
|
-
var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
|
|
3099
|
-
if (prevMessageUI !== nextMessageUI)
|
|
3100
|
-
return false;
|
|
3101
|
-
if (prevProps.endOfGroup !== nextProps.endOfGroup)
|
|
3102
|
-
return false;
|
|
3103
|
-
if (nextProps.showDetailedReactions !== prevProps.showDetailedReactions) {
|
|
3104
|
-
return false;
|
|
3105
|
-
}
|
|
3106
|
-
var messagesAreEqual = prevMessage.deleted_at === nextMessage.deleted_at &&
|
|
3111
|
+
return prevMessage.deleted_at === nextMessage.deleted_at &&
|
|
3107
3112
|
((_a = prevMessage.latest_reactions) === null || _a === void 0 ? void 0 : _a.length) === ((_b = nextMessage.latest_reactions) === null || _b === void 0 ? void 0 : _b.length) &&
|
|
3108
3113
|
((_c = prevMessage.own_reactions) === null || _c === void 0 ? void 0 : _c.length) === ((_d = nextMessage.own_reactions) === null || _d === void 0 ? void 0 : _d.length) &&
|
|
3109
3114
|
prevMessage.pinned === nextMessage.pinned &&
|
|
@@ -3113,9 +3118,22 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
3113
3118
|
prevMessage.type === nextMessage.type &&
|
|
3114
3119
|
prevMessage.updated_at === nextMessage.updated_at &&
|
|
3115
3120
|
((_e = prevMessage.user) === null || _e === void 0 ? void 0 : _e.updated_at) === ((_f = nextMessage.user) === null || _f === void 0 ? void 0 : _f.updated_at);
|
|
3121
|
+
};
|
|
3122
|
+
var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
3123
|
+
var prevMessage = prevProps.message, prevMessageUI = prevProps.Message;
|
|
3124
|
+
var nextMessage = nextProps.message, nextMessageUI = nextProps.Message;
|
|
3125
|
+
if (prevMessageUI !== nextMessageUI)
|
|
3126
|
+
return false;
|
|
3127
|
+
if (prevProps.endOfGroup !== nextProps.endOfGroup)
|
|
3128
|
+
return false;
|
|
3129
|
+
if (nextProps.showDetailedReactions !== prevProps.showDetailedReactions) {
|
|
3130
|
+
return false;
|
|
3131
|
+
}
|
|
3132
|
+
var messagesAreEqual = areMessagesEqual(prevMessage, nextMessage);
|
|
3116
3133
|
if (!messagesAreEqual)
|
|
3117
3134
|
return false;
|
|
3118
|
-
var deepEqualProps = deepequal__default['default'](nextProps.
|
|
3135
|
+
var deepEqualProps = deepequal__default['default'](nextProps.messageActions, prevProps.messageActions) &&
|
|
3136
|
+
deepequal__default['default'](nextProps.readBy, prevProps.readBy) &&
|
|
3119
3137
|
deepequal__default['default'](nextProps.highlighted, prevProps.highlighted) &&
|
|
3120
3138
|
deepequal__default['default'](nextProps.groupStyles, prevProps.groupStyles) && // last 3 messages can have different group styles
|
|
3121
3139
|
deepequal__default['default'](nextProps.mutes, prevProps.mutes) &&
|
|
@@ -3126,7 +3144,7 @@ var areMessagePropsEqual = function (prevProps, nextProps) {
|
|
|
3126
3144
|
);
|
|
3127
3145
|
};
|
|
3128
3146
|
var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
3129
|
-
var _a, _b, _c, _d
|
|
3147
|
+
var _a, _b, _c, _d;
|
|
3130
3148
|
var prevLastReceivedId = prevProps.lastReceivedId, prevMessage = prevProps.message;
|
|
3131
3149
|
var nextLastReceivedId = nextProps.lastReceivedId, nextMessage = nextProps.message;
|
|
3132
3150
|
if (prevProps.editing !== nextProps.editing)
|
|
@@ -3146,16 +3164,7 @@ var areMessageUIPropsEqual = function (prevProps, nextProps) {
|
|
|
3146
3164
|
prevLastReceivedId !== nextLastReceivedId) {
|
|
3147
3165
|
return false;
|
|
3148
3166
|
}
|
|
3149
|
-
return (prevMessage
|
|
3150
|
-
((_e = prevMessage.latest_reactions) === null || _e === void 0 ? void 0 : _e.length) === ((_f = nextMessage.latest_reactions) === null || _f === void 0 ? void 0 : _f.length) &&
|
|
3151
|
-
((_g = prevMessage.own_reactions) === null || _g === void 0 ? void 0 : _g.length) === ((_h = nextMessage.own_reactions) === null || _h === void 0 ? void 0 : _h.length) &&
|
|
3152
|
-
prevMessage.pinned === nextMessage.pinned &&
|
|
3153
|
-
prevMessage.reply_count === nextMessage.reply_count &&
|
|
3154
|
-
prevMessage.status === nextMessage.status &&
|
|
3155
|
-
prevMessage.text === nextMessage.text &&
|
|
3156
|
-
prevMessage.type === nextMessage.type &&
|
|
3157
|
-
prevMessage.updated_at === nextMessage.updated_at &&
|
|
3158
|
-
((_j = prevMessage.user) === null || _j === void 0 ? void 0 : _j.updated_at) === ((_k = nextMessage.user) === null || _k === void 0 ? void 0 : _k.updated_at));
|
|
3167
|
+
return areMessagesEqual(prevMessage, nextMessage);
|
|
3159
3168
|
};
|
|
3160
3169
|
var messageHasReactions = function (message) { return !!(message === null || message === void 0 ? void 0 : message.latest_reactions) && !!message.latest_reactions.length; };
|
|
3161
3170
|
var messageHasAttachments = function (message) { return !!(message === null || message === void 0 ? void 0 : message.attachments) && !!message.attachments.length; };
|
|
@@ -3315,7 +3324,7 @@ var UnMemoizedMessageActionsBox = function (props) {
|
|
|
3315
3324
|
return (React__default['default'].createElement("div", { className: "str-chat__message-actions-box\n " + (open ? 'str-chat__message-actions-box--open' : '') + "\n " + (mine ? 'str-chat__message-actions-box--mine' : '') + "\n " + (reverse ? 'str-chat__message-actions-box--reverse' : '') + "\n ", "data-testid": 'message-actions-box', ref: checkIfReverse },
|
|
3316
3325
|
React__default['default'].createElement("div", { "aria-label": 'Message Options', className: 'str-chat__message-actions-list', role: 'listbox' },
|
|
3317
3326
|
customMessageActions && (React__default['default'].createElement(CustomMessageActionsList, { customMessageActions: customMessageActions, message: message })),
|
|
3318
|
-
messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 &&
|
|
3327
|
+
messageActions.indexOf(MESSAGE_ACTIONS.quote) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleQuote, role: 'option' }, t('Reply'))),
|
|
3319
3328
|
messageActions.indexOf(MESSAGE_ACTIONS.pin) > -1 && !message.parent_id && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handlePin, role: 'option' }, !message.pinned ? t('Pin') : t('Unpin'))),
|
|
3320
3329
|
messageActions.indexOf(MESSAGE_ACTIONS.flag) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleFlag, role: 'option' }, t('Flag'))),
|
|
3321
3330
|
messageActions.indexOf(MESSAGE_ACTIONS.mute) > -1 && (React__default['default'].createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', onClick: handleMute, role: 'option' }, isUserMuted() ? t('Unmute') : t('Mute'))),
|
|
@@ -6530,19 +6539,16 @@ var ChannelInner = function (props) {
|
|
|
6530
6539
|
}
|
|
6531
6540
|
});
|
|
6532
6541
|
}); };
|
|
6533
|
-
var createMessagePreview = function (text, attachments, parent, mentioned_users) {
|
|
6534
|
-
var clientSideID = client.userID + "-" + nanoid.nanoid();
|
|
6535
|
-
return __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: clientSideID, mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
|
|
6536
|
-
};
|
|
6537
6542
|
var sendMessage = function (_a, customMessageData) {
|
|
6538
|
-
var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c,
|
|
6543
|
+
var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, parent = _a.parent, _d = _a.text, text = _d === void 0 ? '' : _d;
|
|
6539
6544
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
6540
6545
|
var messagePreview;
|
|
6546
|
+
var _e;
|
|
6541
6547
|
return __generator(this, function (_f) {
|
|
6542
6548
|
switch (_f.label) {
|
|
6543
6549
|
case 0:
|
|
6544
6550
|
channel.state.filterErrorMessages();
|
|
6545
|
-
messagePreview =
|
|
6551
|
+
messagePreview = __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: (_e = customMessageData === null || customMessageData === void 0 ? void 0 : customMessageData.id) !== null && _e !== void 0 ? _e : client.userID + "-" + nanoid.nanoid(), mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
|
|
6546
6552
|
updateMessage(messagePreview);
|
|
6547
6553
|
return [4 /*yield*/, doSendMessage(messagePreview, customMessageData)];
|
|
6548
6554
|
case 1:
|
|
@@ -7676,7 +7682,7 @@ var UnMemoizedChannelList = function (props) {
|
|
|
7676
7682
|
*/
|
|
7677
7683
|
var ChannelList = React__default['default'].memo(UnMemoizedChannelList);
|
|
7678
7684
|
|
|
7679
|
-
var version = '9.1.
|
|
7685
|
+
var version = '9.1.5';
|
|
7680
7686
|
|
|
7681
7687
|
var useChat = function (_a) {
|
|
7682
7688
|
var _b, _c;
|
|
@@ -8076,7 +8082,7 @@ var MessageWithContext = function (props) {
|
|
|
8076
8082
|
canReact: canReact,
|
|
8077
8083
|
canReply: canReply,
|
|
8078
8084
|
});
|
|
8079
|
-
}, [canDelete, canEdit, canFlag, canMute, canPin, canQuote, canReact, canReply]);
|
|
8085
|
+
}, [messageActions, canDelete, canEdit, canFlag, canMute, canPin, canQuote, canReact, canReply]);
|
|
8080
8086
|
props.canPin; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8081
8087
|
props.messageActions; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
8082
8088
|
props.onlySenderCanEdit; // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
@@ -9095,9 +9101,10 @@ function useNewMessageNotification(messages, currentUserId, hasMoreNewer) {
|
|
|
9095
9101
|
return { atBottom: atBottom, newMessagesNotification: newMessagesNotification, setNewMessagesNotification: setNewMessagesNotification };
|
|
9096
9102
|
}
|
|
9097
9103
|
|
|
9098
|
-
function usePrependedMessagesCount(messages) {
|
|
9104
|
+
function usePrependedMessagesCount(messages, hasDateSeparator) {
|
|
9099
9105
|
var _a;
|
|
9100
|
-
var
|
|
9106
|
+
var firstRealMessageIndex = hasDateSeparator ? 1 : 0;
|
|
9107
|
+
var currentFirstMessageId = (_a = messages === null || messages === void 0 ? void 0 : messages[firstRealMessageIndex]) === null || _a === void 0 ? void 0 : _a.id;
|
|
9101
9108
|
var firstMessageId = React.useRef(currentFirstMessageId);
|
|
9102
9109
|
var earliestMessageId = React.useRef(currentFirstMessageId);
|
|
9103
9110
|
var previousNumItemsPrepended = React.useRef(0);
|
|
@@ -9277,7 +9284,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9277
9284
|
window.removeEventListener('blur', resetNewMessagesReceivedInBackground);
|
|
9278
9285
|
};
|
|
9279
9286
|
}, [scrollToBottomIfConfigured]);
|
|
9280
|
-
var numItemsPrepended = usePrependedMessagesCount(processedMessages);
|
|
9287
|
+
var numItemsPrepended = usePrependedMessagesCount(processedMessages, !disableDateSeparator);
|
|
9281
9288
|
/**
|
|
9282
9289
|
* Logic to update the key of the virtuoso component when the list jumps to a new location.
|
|
9283
9290
|
*/
|
|
@@ -9285,7 +9292,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9285
9292
|
var firstMessageId = React.useRef();
|
|
9286
9293
|
React.useEffect(function () {
|
|
9287
9294
|
var _a;
|
|
9288
|
-
var continuousSet = messages
|
|
9295
|
+
var continuousSet = messages === null || messages === void 0 ? void 0 : messages.find(function (message) { return message.id === firstMessageId.current; });
|
|
9289
9296
|
if (!continuousSet) {
|
|
9290
9297
|
setMessageSetKey(+new Date());
|
|
9291
9298
|
}
|
|
@@ -9325,15 +9332,18 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9325
9332
|
var endOfGroup = shouldGroupByUser && ((_f = message.user) === null || _f === void 0 ? void 0 : _f.id) !== ((_h = (_g = messageList[streamMessageIndex + 1]) === null || _g === void 0 ? void 0 : _g.user) === null || _h === void 0 ? void 0 : _h.id);
|
|
9326
9333
|
return (React__default['default'].createElement(Message, { closeReactionSelectorOnClick: closeReactionSelectorOnClick, customMessageActions: props.customMessageActions, endOfGroup: endOfGroup, firstOfGroup: firstOfGroup, groupedByUser: groupedByUser, message: message, Message: MessageUIComponent, messageActions: props.messageActions }));
|
|
9327
9334
|
}, [customMessageRenderer, shouldGroupByUser, numItemsPrepended]);
|
|
9335
|
+
var Item = React.useMemo(function () {
|
|
9336
|
+
// using 'display: inline-block'
|
|
9337
|
+
// traps CSS margins of the item elements, preventing incorrect item measurements
|
|
9338
|
+
var Item = function (props) { return (React__default['default'].createElement("div", __assign({}, props, { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage) || 'str-chat__virtual-list-message-wrapper' }))); };
|
|
9339
|
+
return Item;
|
|
9340
|
+
}, [customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage]);
|
|
9328
9341
|
var virtuosoComponents = React.useMemo(function () {
|
|
9329
9342
|
var EmptyPlaceholder = function () { return (React__default['default'].createElement(React__default['default'].Fragment, null, EmptyStateIndicator$1 && React__default['default'].createElement(EmptyStateIndicator$1, { listType: 'message' }))); };
|
|
9330
9343
|
var Header = function () {
|
|
9331
9344
|
return loadingMore ? (React__default['default'].createElement("div", { className: 'str-chat__virtual-list__loading' },
|
|
9332
9345
|
React__default['default'].createElement(LoadingIndicator$1, { size: 20 }))) : (React__default['default'].createElement(React__default['default'].Fragment, null));
|
|
9333
9346
|
};
|
|
9334
|
-
var virtualMessageClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualMessage) || 'str-chat__virtual-list-message-wrapper';
|
|
9335
|
-
// using 'display: inline-block' traps CSS margins of the item elements, preventing incorrect item measurements
|
|
9336
|
-
var Item = function (props) { return React__default['default'].createElement("div", __assign({}, props, { className: virtualMessageClass })); };
|
|
9337
9347
|
var Footer = function () {
|
|
9338
9348
|
return TypingIndicator ? React__default['default'].createElement(TypingIndicator, { avatarSize: 24 }) : React__default['default'].createElement(React__default['default'].Fragment, null);
|
|
9339
9349
|
};
|
|
@@ -9373,15 +9383,15 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
9373
9383
|
return null;
|
|
9374
9384
|
return (React__default['default'].createElement(React__default['default'].Fragment, null,
|
|
9375
9385
|
React__default['default'].createElement("div", { className: (customClasses === null || customClasses === void 0 ? void 0 : customClasses.virtualizedMessageList) || 'str-chat__virtual-list' },
|
|
9376
|
-
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents,
|
|
9386
|
+
React__default['default'].createElement(reactVirtuoso.Virtuoso, __assign({ atBottomStateChange: atBottomStateChange, components: virtuosoComponents, computeItemKey: function (index) {
|
|
9387
|
+
return processedMessages[numItemsPrepended + index - PREPEND_OFFSET].id;
|
|
9388
|
+
}, endReached: endReached, firstItemIndex: PREPEND_OFFSET - numItemsPrepended, followOutput: followOutput, increaseViewportBy: { bottom: 200, top: 0 }, initialTopMostItemIndex: calculateInitialTopMostItemIndex(processedMessages, highlightedMessageId), itemContent: function (i) { return messageRenderer(processedMessages, i); }, itemSize: fractionalItemSize, key: messageSetKey, overscan: overscan, ref: virtuoso, startReached: startReached, style: { overflowX: 'hidden' }, totalCount: processedMessages.length }, additionalVirtuosoProps, (scrollSeekPlaceHolder ? { scrollSeek: scrollSeekPlaceHolder } : {}), (defaultItemHeight ? { defaultItemHeight: defaultItemHeight } : {})))),
|
|
9377
9389
|
React__default['default'].createElement(MessageListNotifications$1, { hasNewMessages: newMessagesNotification, isNotAtLatestMessageSet: hasMoreNewer, MessageNotification: MessageNotification$1, notifications: notifications, scrollToBottom: scrollToBottom }),
|
|
9378
9390
|
giphyPreviewMessage && React__default['default'].createElement(GiphyPreviewMessage$1, { message: giphyPreviewMessage })));
|
|
9379
9391
|
};
|
|
9380
9392
|
/**
|
|
9381
9393
|
* The VirtualizedMessageList component renders a list of messages in a virtualized list.
|
|
9382
9394
|
* It is a consumer of the React contexts set in [Channel](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Channel/Channel.tsx).
|
|
9383
|
-
*
|
|
9384
|
-
* **Note**: It works well when there are thousands of messages in a channel, it has a shortcoming though - the message UI should have a fixed height.
|
|
9385
9395
|
*/
|
|
9386
9396
|
function VirtualizedMessageList(props) {
|
|
9387
9397
|
var _a = useChannelActionContext('VirtualizedMessageList'), jumpToLatestMessage = _a.jumpToLatestMessage, loadMore = _a.loadMore, loadMoreNewer = _a.loadMoreNewer;
|
|
@@ -9421,11 +9431,11 @@ var DefaultThreadStart = function () {
|
|
|
9421
9431
|
return React__default['default'].createElement("div", { className: 'str-chat__thread-start' }, t('Start of a new thread'));
|
|
9422
9432
|
};
|
|
9423
9433
|
var ThreadInner = function (props) {
|
|
9424
|
-
var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, virtualized = props.virtualized;
|
|
9425
|
-
var
|
|
9426
|
-
var
|
|
9434
|
+
var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, virtualized = props.virtualized;
|
|
9435
|
+
var _e = useChannelStateContext('Thread'), thread = _e.thread, threadHasMore = _e.threadHasMore, threadLoadingMore = _e.threadLoadingMore, threadMessages = _e.threadMessages;
|
|
9436
|
+
var _f = useChannelActionContext('Thread'), closeThread = _f.closeThread, loadMoreThread = _f.loadMoreThread, sendMessage = _f.sendMessage;
|
|
9427
9437
|
var customClasses = useChatContext('Thread').customClasses;
|
|
9428
|
-
var
|
|
9438
|
+
var _g = useComponentContext('Thread'), ContextInput = _g.ThreadInput, ContextMessage = _g.Message, _h = _g.ThreadHeader, ThreadHeader = _h === void 0 ? DefaultThreadHeader : _h, _j = _g.ThreadStart, ThreadStart = _j === void 0 ? DefaultThreadStart : _j, _k = _g.VirtualMessage, VirtualMessage = _k === void 0 ? FixedHeightMessage : _k;
|
|
9429
9439
|
var messageList = React.useRef(null);
|
|
9430
9440
|
var ThreadInput = PropInput || (additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) || ContextInput || MessageInputSmall;
|
|
9431
9441
|
var ThreadMessage = PropMessage || (additionalMessageListProps === null || additionalMessageListProps === void 0 ? void 0 : additionalMessageListProps.Message);
|
|
@@ -9457,7 +9467,7 @@ var ThreadInner = function (props) {
|
|
|
9457
9467
|
React__default['default'].createElement("div", { className: 'str-chat__thread-list', ref: messageList },
|
|
9458
9468
|
React__default['default'].createElement(Message, __assign({ initialMessage: true, message: thread, Message: ThreadMessage || FallbackMessage, threadList: true }, additionalParentMessageProps)),
|
|
9459
9469
|
React__default['default'].createElement(ThreadStart, null),
|
|
9460
|
-
React__default['default'].createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
|
|
9470
|
+
React__default['default'].createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messageActions: messageActions, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
|
|
9461
9471
|
React__default['default'].createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
|
|
9462
9472
|
};
|
|
9463
9473
|
|